调用该函数如下:
MatConvertImage(img,qImg);
void MatConvertImage(Mat& imgmat, IplImage* img)
{
cv::cvtColor(imgmat, imgmat, CV_BGR2GRAY);
uchar* p;
unsigned char* buf = new unsigned char[imgmat.rows*imgmat.cols];
for (int j=0; j< imgmat.rows; ++j)
{
p = imgmat.ptr<uchar>(j);
for(int i = 0; i < imgmat.cols; ++i)
{
buf[j*imgmat.cols+i] = p[i];
img->imageData[j*imgmat.cols+i]=(char)buf[j*imgmat.cols+i];
}
}
//delete[] p;
delete[] buf;
}
本文详细介绍了使用OpenCV库中的MatConvertImage函数进行图像转换及内存操作的过程,包括从彩色图像转换为灰度图像,并将转换后的图像数据复制到IplImage类型的图像中。代码示例清晰展示了如何实现这一过程,适用于图像处理领域的开发者。
6487

被折叠的 条评论
为什么被折叠?



