在Opencv2.X以上的处理中,大部分处理都是以Mat为主,而对于习惯了1.X的童鞋来说,有时候会带来不便,希望能采用1.X的形式来处理。经过试验,介绍一种简单的Mat与IplImage*类型间的转换:
示例代码是需要mat转换为img:
Mat mat,mat1; // mat1是临时变量
IplImage * img;
mat1=mat.clone();// 包括数据的深度复制,以防对mat数据的更改
img=cvCreateImage(cvSize(mat.cols,mat.rows),8,3); //根据实际进行初始化
img.imageData=(char*)mat1.data;
如此,Img就拥有了与mat一样的数据,在需要IplImage*类型的数据时,使用img
另外还有一种方式,没经过试验,放在下面:
IplImage *frame;
Mat frmImg;
frame=&IplImage(frmImg);