OpenCV和图像处理(二)

本文深入探讨了OpenCV中的图像滤波技术,包括均值、高斯、中值、双边滤波及拉普拉斯滤波等,并介绍了时域与频域滤波的概念。此外,还讲解了图像金字塔的构建及其应用,以及模板匹配在单对象和多对象匹配中的实现。
摘要由CSDN通过智能技术生成

本文以下OpenCV都简写成"cv2"的形式,所有img都默认为一张图片
关联文章:
OpenCV和图像处理(一)

OpenCV和图像处理(三)

OpenCV和图像处理(四)

OpenCV和图像处理(五)

OpenCV和图像处理(六)

四、图像滤波
0、了解OpenCV卷积操作
kernel = np.array([[1, 1, 0], [1, 0, -1], [0, -1, -1]], np.float32)  # 定义一个核
result = cv2.filter2D(src, -1, kernel=kernel)
r'''
和深度学习不同,OpenCV的卷积核是自己设置的,而深度学习可以自行学习到。
cv2.filter2D(src, ddepth, kernel)是常用的三个参数
	src:指输入的图像
	ddepth:
		表示目标图像的所需深度,它包含有关图像中存储的数据类型的信息,
		unsigned char(CV_8U),signed char(CV_8S),unsigned short(CV_16U)等,
		当ddepth=-1时,表示输出图像与原图像有相同的深度。
	kernel:就是自己设置的核
'''
1、常见滤波种类

滤波器可以分为:高通、低通、带通(中通)和带阻

滤波按照空间可分为 时域滤波频域滤波

2、时域滤波

时域滤波常用的有均值滤波、高斯滤波、中值滤波、双边滤波、拉普拉斯高通滤波和USM锐化操作

2-1:均值滤波

均值滤波字面上理解就是平均值,其卷积核(3x3为例)如下:
1 9 [ 1 1 1 1 1 1 1 1 1 ] \frac{1}{9} \left[ \begin{matrix} 1&1&1\\ 1&1&1\\ 1&1&1 \end{matrix} \right] 91111111111

result = cv2.blur(img, (5,5)) # ksize=(5,5)
2-2:高斯滤波

高斯滤波的卷积核类似一个二维的高斯函数,其卷积核(3x3为例)如下:
[ 1 2 1 2 4 2 1 2 1 ] \left[ \begin{matrix} 1&2&1\\ 2&4&2\\ 1&2&1 \end{matrix} \right] 121242121

result = cv2.GaussianBlur(img, (5, 5), 0) # ksize是tuple,和下面中值作对比...
r'''
(5, 5)是ksize高斯内核大小,ksize.width和ksize.height可以不同,但它们都必须为正数和奇数,
	  也可以为零,然后根据sigma计算得出。
0==>sigmaX:X方向上的高斯核标准偏差。
sigmaY:Y方向上的高斯核标准差。(上面没写)
	如果sigmaY为零,则将其设置为等于sigmaX;
	如果两个sigmas为零,则分别从ksize.width和ksize.height计算得出。
	为了完全控制结果,建议指定所有ksize,sigmaX和sigmaY。
'''
2-3:中值滤波

中值滤波将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。

result = cv2.medianBlur(img, 5) # 注意此时ksize是int,不是tuple
2-4:双边滤波

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理 。

result = cv2.bilateralFilter(img,9,75,75)
r'''
src:输入图像
d:过滤时周围每个像素领域的直径
sigmaColor:在color space中过滤sigma。参数越大,临近像素将会在越远的地方mix。
sigmaSpace:在coordinate space中过滤sigma。参数越大,那些颜色足够相近的的颜色的影响越大。
'''
2-5:拉普拉斯滤波

高通滤波需要自己定义一个滤波器,其卷积核(3x3为例)如下:
L a p l a c e = [ 0 − 1 0 − 1 5 − 1 0 − 1 0 ] Laplace=\left[ \begin{matrix} 0&-1&0\\ -1&5&-1\\ 0&-1&0 \end{matrix} \right] Laplace

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值