现在的位置: 首页 > 综合 > 正文

关于QImage和IplImage之间转换的实现

2013年09月01日 ⁄ 综合 ⁄ 共 1135字 ⁄ 字号 评论关闭

关于QImage和IplImage之间转换的实现

 

在嵌入式系统中实现qt和opencv的处理,最基础的就是QImage和IplImage之间的转换。这样两者就可以进行一起使用图像数据,从而达到利用qt显示和利用opencv处理的功能。

下面我将贴出代码:

QImage  ----->> IplImage

1.     QImage *IplImageToQImage(const IplImage *img)   

2.     {  

3.         QImage *image;  

4.         cvCvtColor(img,img,CV_BGR2RGB);  

5.         uchar *imgData=(uchar *)img->imageData;  

6.         image=new QImage(imgData,img->width,img->height,QImage::Format_RGB888);  

7.         return image;   

8.     }     

IplImage ------->>QImage

1.     IplImage *QImageToIplImage(const QImage * qImage)  

2.     {  

3.         int width = qImage->width();  

4.         int height = qImage->height();  

5.         CvSize Size;  

6.         Size.height = height;  

7.         Size.width = width;  

8.         IplImage *IplImageBuffer = cvCreateImage(Size, IPL_DEPTH_8U, 3);  

9.         for (int y = 0; y < height; ++y)  

10.      {  

11.          for (int x = 0; x < width; ++x)  

12.          {  

13.              QRgb rgb = qImage->pixel(x, y);  

14.              cvSet2D(IplImageBuffer, y, x, CV_RGB(qRed(rgb), qGreen(rgb), qBlue(rgb)));  

15.          }  

16.      }  

17.      return IplImageBuffer;   

18.  }  

 

抱歉!评论已关闭.