c OpenCV;如何将二维数组转换为IplImage?

时间:2014-04-04 10:00:58

标签: c opencv iplimage

我正在使用c-api并且是OpenCV的新手。

假设我有二维数组,包括;红色[] [],绿色[] [],蓝色[] []。我想将2-d数组中的3个转换为IplImage并将其保存为.png文件。但是,从我的系统中我不能使用CvMat。

你能帮我解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:2)

如果您正在使用C ++,请使用C ++ API:

cv::Mat image = cv::Mat::zeros(w,h, CV_8UC3);
for(int x=0;x<w;x++)
   for(int y=0;y<h;y++)
        image.at<cv::Vec3b>(y,x) = cv::Vec3b(red[x][y], blue[x][y], green[x][y]);
cv::imwrite("image.png", image);

但是如果你真的想拥有c-api,那么从cv :: Mat到IplImage的转换就可以了:

IplImage *frameConverted = new IplImage(image);

如果您不再需要frameConverted,请记住释放内存。