C++ OpenCV如何实现模糊图像


这篇文章主要介绍了C++ OpenCV如何实现模糊图像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。模糊图像图像模糊是图像处理中最常用的也是比较简单的操作,使用该操作的原因之一就是为了给图像预处理时隆低嗓声.卷积就是叠加.卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。通俗的说:
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。用一个模板和一幅图像进行卷积,对于图像上的一个点,让模板的原点和该点重合,然后模板上的点和图像上对应的点相乘,然后各点的积相加,就得到了该点的卷积值。对图像上的每个点都这样处理。由于大多数模板都是对称的,所以模板不旋转。卷积是一种积分运算,用来求两个曲线重叠区域面积。可以看作加权求和,可以用来消除噪声、特征增强。
把一个点的像素值用它周围的点的像素值的加权平均代替。
卷积是一种线性运算,图像处理中常见的mask运算都是卷积,广泛应用于图像滤波。
卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价用图片来说明OpenCV中自带了4种模糊算法:
blur(均值模糊)GaussianBlur(高斯模糊)
medianBlur(中值模糊)
bilateralFilter( 香港云主机双边滤波)新建项目
新建一个项目opencv-0009,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法.并加载我们常用的那个图片显示出来均值模糊增加一个函数blur()然后运行效果高斯模糊
我们增加一个方法GaussianBlur()我们把原来的均值模糊size改为9*9, 高斯模糊也用9*9,然后都显示出来的效果最后边的是高斯模糊,图片上看不是非常清楚,其实如果仔细看对看出对比来,右边的高斯模糊轮廓能明显一些.中值模糊中值是统计排序的滤波嚣中值对椒盐噪声有很好的抑制作用中值模糊APImedianBlur(Mat src,Mat dst,ksize)ksize大小必须是大于1而且必须是奇数我们增加一个方法medianBlur()
我们把ksize设为9,然后看显示出来效果可以看出来最右边是我们的中值模糊,整体模糊的比较平均.
双边模糊双边模糊的特点:均值模糊无法克服边缘像素信息丢失缺陷,原因是均值滤波是基于平均权重.高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同.高斯双边模糊,是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变.双边模糊的APIbilateralFilter(src,dst,d=15,150,3);
15–计算的半径,半径之内的像数都会被纳入计算,如果提供-1,则根据sigma space的参数取值.150–sigma color,决定多少差值之内的像素会被计算3–sigma space,如果d的值大于0则声明无效,否则根据它来计算d值我们增加一个方法bilateralFilter()
因为我们的原图色差不大,所以我们把值调的大了一点,然后我们看看效果可以看到基本样子没变,只是把标红框的地方模糊了一下,轮廓还是非常明显的放大一点看一下感谢你能够认真阅读完这篇文章,希望小编分享的“C++ OpenCV如何实现模糊图像”这篇文章对大家有帮助,同时也希望大家多多支持开发云,关注开发云行业资讯频道,更多相关知识等着你来学习!

相关推荐: python如何爬取知乎并做数据分析

python如何爬取知乎并做数据分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最近用 python 爬虫抓取了知乎用户个人资料(公开信息),去重之后有300+万条记录,为了得到这些数据,还不小…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/29 20:25
下一篇 08/29 20:25

相关推荐