opencv3.x取消了Mat对于IplImage的转换,本人网上COPY代码用到IplImage故写了一下转换的方法
IplImage* MAT2IPLIMAGE3(Mat img){
int w = img.cols;
int h = img.rows;
IplImage* dst = cvCreateImage(cvSize(w, h), 8, 3);
for (int j = 0; j < w; ++j)
{
for (int i = 0; i < h; ++i)
{
int b = img.at<cv::Vec3b>(i, j)[0];
int g = img.at<cv::Vec3b>(i, j)[1];
int r = img.at<cv::Vec3b>(i, j)[2];
CV_IMAGE_ELEM(dst, uchar, i, j * 3 + 0) = b;
CV_IMAGE_ELEM(dst, uchar, i, j * 3 + 1) = g;
CV_IMAGE_ELEM(dst, uchar, i, j * 3 + 2) = r;
}
}
return dst;
}
IplImage* MAT2IPLIMAGE1(Mat img){
int w = img.cols;
int h = img.rows;
IplImage* dst = cvCreateImage(cvSize(w, h), 8, 1);
for (int j = 0; j < w; ++j)
{
for (int i = 0; i < h; ++i)
{
int p = img.at<uchar>(i, j);
CV_IMAGE_ELEM(dst, uchar, i, j * 1 + 0) = p;
}
}
return dst;
}