QT配合OpenCV完成图像处理时,经常使用QT显示OpenCV处理的图像数据,下面列出常用的一些转换函数,方便OpenCV与QT之间转换。
适用的OpenCV的版本:OpenCV3.X和OpenCV2.X版本。
(1) 将QImage图片转为opecv的qimage格式
IplImage *Widget::QImage_to_IplImage(const QImage * qImage)
{
int width = qImage->width();
int height = qImage->height();
CvSize Size;
Size.height = height;
Size.width = width;
IplImage *IplImageBuffer = cvCreateImage(Size, IPL_DEPTH_8U, 3);
for (int y = 0; y < height; ++y)
{
for (int x = 0; x < width; ++x)
{
QRgb rgb = qImage->pixel(x, y);
CV_IMAGE_ELEM( IplImageBuffer, uchar, y, x*3+0 ) = qBlue(rgb);
CV_IMAGE_ELEM( IplImageBuffer, uchar, y, x*3+1 ) = qGreen(rgb);
CV_IMAGE_ELEM( IplImageBuffe