用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怎么让图像模糊处理的主要内容,如果未能解决你的问题,请参考以下文章