加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

关于QImage和IplImage之间转换的达成

发布时间:2021-11-25 21:49:56 所属栏目:教程 来源:互联网
导读:在嵌入式系统中实现qt和opencv的处理,最基础的就是QImage和IplImage之间的转换。这样两者就可以进行一起使用图像数据,从而达到利用qt显示和利用opencv处理的功能。 下面我将贴出代码: QImage ----- IplImage QImage *IplImageToQImage(const IplImage *img
在嵌入式系统中实现qt和opencv的处理,最基础的就是QImage和IplImage之间的转换。这样两者就可以进行一起使用图像数据,从而达到利用qt显示和利用opencv处理的功能。
 
下面我将贴出代码:
 
QImage   ----->> IplImage
 
QImage *IplImageToQImage(const IplImage *img)   
{   
    QImage *image;   
    cvCvtColor(img,img,CV_BGR2RGB);   
    uchar *imgData=(uchar *)img->imageData;   
    image=new QImage(imgData,img->width,img->height,QImage::Format_RGB888);   
    return image;   
}     
IplImage  ------->>QImage
 
IplImage *QImageToIplImage(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);   
            cvSet2D(IplImageBuffer, y, x, CV_RGB(qRed(rgb), qGreen(rgb), qBlue(rgb)));   
        }   
    }   
    return IplImageBuffer;   
}  

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读