Qt中通过控件平滑处理图像并且显示在Label标签中

接着上一个例子Qt中通过控件在Label标签中显示一张静态图片我又加入了平滑处理图像并且显示处理后图像的功能

先上具体效果图:

image

对应的样式如下

image

接着我们来讲一下会用到的一个重要知识点:IplImage转成QImage格式

首先我们要知道在opencv中如果用IplImage定义一副图像的话他的格式一般我们定义的是3通道,24位深度的彩色图像,但是三原色排列是按照BGR排列的

但是QT中定义的QImage的3通道24位深度的彩色图像的确实RGB彩图,所以我们需要将IplImage图像转换成为QImage图像,然后通过Label标签将处理后的图像显示出来,这时我们采用的方法是将QImage转换为QPixmap图像;

我们可以通过下面这段代码来实现:

//从OpenCv的Iplimage格式转换成Qt中Qimage格式

    IplImage* temp=NULL;                                       //定义一个临时转换的图像
    temp=cvCloneImage(Smooth_image);                          //临时图像就是克隆的你用CV平滑处理过后的图像
    cvCvtColor(Smooth_image,temp,CV_BGR2RGB);                 //将BGR转成RGB
    uchar* imgData = (uchar*)(temp->imageData);                 
    QImage *qImg1=new QImage(imgData,temp->width,temp->height,QImage::Format_RGB888); //获取QImage图像,QImage::Format_RGB888格式为
image 
 
或者可以封装成下面的子函数

QImage* IplToQImg(const IplImage *cvImg)
{
if(!cvImg)
return NULL;
IplImage* temp=NULL;
temp=cvCloneImage(cvImg);
cvCvtColor(cvImg,temp,CV_BGR2RGB);
uchar* imgData = (uchar*)(temp->imageData);
QImage *qImg=new QImage(imgData,temp->width,temp->height,QImage::Format_RGB888);
return qImg;
cvReleaseImage(&temp);
delete imgData;
}

这样便于随时调用,因为这是经常用到的函数。

接下来我们就可以完成我们的目标完成高斯模糊,这个相对比较成熟,可以参考下这位博主写的

http://blog.csdn.net/augusdi/article/details/8762971

今天就写到这,源码地址为http://download.csdn.net/detail/u014020344/9313483

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值