用MATLAB怎么让图像模糊处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用MATLAB怎么让图像模糊处理相关的知识,希望对你有一定的参考价值。

要先搞清楚模糊的图像是怎样模糊的,噪声还是像素低
噪声的话要考察是什么噪声
白噪声,可用二维高斯滤波器
椒盐噪声,求相邻像素点的平均值

像素低,可考虑插值
不求太精细做线形插值
精细一点可做多项式插值

但插值不会使图像变得高清,图像像素低意味着高频的细节少,任何插值都不能够加入没有的高频分量。插值只能使图像的像素点变多,使同样大小图像像素点更密而看上去平滑一些。
参考技术A 模糊处理的话用均值滤波就行了,调整滤波矩阵大小可以调整模糊程度。

OpenCV常用基本处理函数图像模糊

2D卷积操作

cv.filter2D() 可以让我们对一幅图像进行卷积操作,

图像模糊(图像平滑)
使用低通滤波器可以达到图像模糊的目的。这对与去除噪音很有帮助。其实就是去除图像中的高频成分(比如:噪音,边界)。所以边界也会被模糊一点。(当然,也有一些模糊技术不会模糊掉边界)。OpenCV 提供了四种模糊技术。

1.平均

只是用卷积框覆盖区域所有像素的平均值来代替中心元素

cv2.blur() 和 cv2.boxFilter() 来完这个任务

2.高斯模糊

把卷积核换成高斯核,方框不变,原来每个方框的值是相等的,现在里面的值是符合高斯分布

高斯滤波可以有效的从图像中去除高斯噪音。

#0 是指根据窗口大小( 5,5 )来计算高斯函数标准差
blur = cv2.GaussianBlur(img,(5,5),0)

 

3.中值模糊

用与卷积框对应像素的中值来替代中心像素的值。这个滤波器经常用来去除椒盐噪声;

前面的滤波器都是用计算得到的一个新值来取代中心像素的值,而中值滤波是用中心像素周围(也可以使他本身)的值来取代他

median = cv2.medianBlur(img,5)

4.双边滤波

函数 cv2.bilateralFilter() 能在保持边界清晰的情况下有效的去除噪音。

高斯滤波器是求中心点邻近区域像素的高斯加权平均值。这种高斯滤波器只考虑像素之间的空间关系,而不会考虑像素值之间的关系(像素的相似度)。

所以这种方法不会考虑一个像素是否位于边界。因此边界也会别模糊掉。双边滤波在同时使用空间高斯权重和灰度值相似性高斯权重。

以上是关于用MATLAB怎么让图像模糊处理的主要内容,如果未能解决你的问题,请参考以下文章

matlab中灰度图像矩阵的大小问题怎么操作?

matlab 灰度图像矩阵的大小问题(入门级)

图像增强基于模糊集的图像增强matlab源码

图像去雾基于matlab偏振水下模糊图像去雾含Matlab源码 396期

怎么用matlab把压缩成tiff

怎么用matlab对图像进行裁剪