c 开放式简历;如何将二维数组转换为 IplImage?

标签 c opencv iplimage

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

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

你能帮我解决这个问题吗

谢谢。

最佳答案

如果您使用的是 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,请记住释放内存。

关于c 开放式简历;如何将二维数组转换为 IplImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22859579/

相关文章:

opencv - 如何在 mac 10.6.8 上卸载 openCV?

opencv - 在OpenCV中使用libjpeg将IplImage压缩为JPEG

c - 如何检查void指针是否指向NULL?

c - 在内存地址读取数组

opencv - 在opencv中旋转裁剪

python - 如何在 Python 中从蒙版分割图像创建轮廓(粗细可控)?

java - JavaCV 的 cvResize 函数

c - 这些 Pointer 语句有何不同 *p = &i , h = &j?

c - 函数返回的动态数组的长度