这几天在做图像处理的东西,程序整体框架是Qt,但其中图像处理的部分用的是OpenCV,显然如果要创建图像每次需要将IplImage转换为QImage,如果逐像素copy效率太低,所以可以整个copy,网上有介绍说直接用数据指针,但由于QT在不同平台下实现不同,这样不一定能成功,所以代码如下:
IplImage* pDestImg = cvCreateImage(cvGetSize(m_pSrcGrayImg),IPL_DEPTH_8U,1);
cvCanny(m_pSrcGrayImg,pDestImg,ui.m_pHighSld->value(),ui.m_pLowSld->value());
QImage destImg((unsigned char*)(pDestImg->imageData),m_SrcImg.width(),m_SrcImg.height(),QImage::Format_Indexed8);
关键是格式要设对。