IplImage到CvMat的轉換

// opncvtest.cpp : 定義控制檯應用程序的入口點。
//
#include "stdafx.h"
#include<stdio.h>

#include <opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;
 
int _tmain(int argc, _TCHAR* argv[])
{
   // CvMat * mat = cvCreateMat(5,5,CV_8UC3);

	int data[80*100*3];
	for(int i=0;i<80;i++)
		for(int j=0;j<100;j++)
		{
			data[i*100*3+j*3] = (i * 3  + j)%256;
			data[i*100*3+j*3+1] = (i * 5  + j)%256;
			data[i*100*3+j*3+2] = (i * 7  + j)%256;
		}

	CvMat mat = cvMat(80,100,CV_8UC3,data);

	IplImage * img = cvCreateImage(cvGetSize(&mat),IPL_DEPTH_8U,3);

	cvGetImage(&mat,img);

	cvNamedWindow("1");
	cvShowImage("1",img);
	cvWaitKey(0);				
	return 0;
}

注意矩陣類型是CV_8UC3

對應的圖像類型確是IPL_DEPTH_8U

首先調用cvCreateImage來創建一個矩陣,然後通過調用cvGetImage把矩陣轉換爲IplImage

參考http://wenku.baidu.com/view/b51b04878762caaedd33d490.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章