首先看以下图,图像平滑(模糊)只是滤波中的一种操作,并不是整个滤波部分。
一、均值滤波
函数:
dst = cv.blur( src, ksize[, dst[, anchor[, borderType]]] )
src
:输入图像;
ksize
: 卷积核大小;
anchor
: 锚点位置设置,默认为卷积核的中心位置;
borderType
: 边界填充方法。
均值滤波是一种线性滤波器,处理思路也很简单,就是将一个窗口区域中的像素计算平均值,然后将窗口中计算得到的均值设置为锚点上的像素值。该算法有优点在于效率高,思路简单。同样,缺点也很明显,计算均值会将图像中的边缘信息以及特征信息“模糊”掉,会丢失很多特征。
例如使用3*3卷积核如下所示:
kernel=[111111111]
kernel=
\left[
\begin{matrix}
1 & 1 & 1\\
1 & 1 & 1 \\
1 & 1 & 1
\end{matrix}
\right]
kernel=⎣⎡111111111⎦⎤
代码演示:
img_lena = cv.imread("./img/lenaNoise.png")
# 均值滤波blur(src, ksize[, dst[, anchor[, borderType]]])
# ksize : 卷积核大小, anchor:需要进行替换值的锚点, borderType: 边界填充方法
def img_show(name, img):
cv.imshow(name, img)
cv.waitKey(0)
cv.destroyAllWindows()
blur = cv.blur(img_lena, (3,3))
#将原图像拼接进行比较
connect = np.hstack((img_lena, blur))
img_show("blur", connect)
原创文章 80获赞 22访问量 1万+
关注
私信
展开阅读全文
作者:一只工程狮