IplImage与CvMat之间相互转化
1、IplImage转化为CvMat结构:
1 void main() 2 { 3 IplImage* src=cvLoadImage("2.jpg",CV_LOAD_IMAGE_UNCHANGED);//三通道的彩色图像 4 CvMat* mat=cvCreateMat(src->height,src->width,CV_32FC3); //注意这里的数据类型,不同数据类型,在访问CvMat数据元素也不一样 5 /*CvMat* mat=cvCreateMat(src->height,src->width,CV_32SC3); */ 6 cvConvert(src,mat); 7 for (int i=0;i<src->height/50;i++) 8 { 9 float* p=(float*)(mat->data.fl+i*mat->step/sizeof(float)); 10 /*int* p=(int*)(mat->data.i+i*mat->step/sizeof(int));*/ 11 for (int j=0;j<src->width/50;j++) 12 { 13 for (int k=0;k<3;k++) 14 { 15 std::cout<<(float)*(p++)<<'\t'; 16 /*std::cout<<(int)*(p++)<<'\t';*/ 17 } 18 std::cout<<std::endl; 19 } 20 } 21 getchar(); 22 }
2、同理利用cvConvert将CvMat转化为IplImage