调用该函数如下:
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;
}