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

posted @ 2014-12-14 16:20  龙泽一狼  阅读(272)  评论(0编辑  收藏  举报