opencv——高通滤波器

高通与低通滤波器在图像处理中的应用
本文介绍了高通滤波器(HPF)和低通滤波器(LPF)在图像处理中的作用。高通滤波器通过提升像素与周围像素的亮度差值来增强图像细节,而低通滤波器如高斯模糊,则用于去噪和平滑图像。通过对比不同内核大小的高通滤波器效果以及应用低通滤波器后的差值图像,展示了如何有效保留和突出图像特征。
#高通滤波器
#高通滤波器(High Pass Filter,HPF)是检测图像的某个区域,
#然后根据像素与周围像素的亮度差值来提升(boost)该像素的亮度的滤波器。
#高通滤波器是根据像素与邻近像素的亮度差值来提升该像素的亮度。
# 低通滤波器(Low Pass Filter,LPF)则是在像素与周围像素的亮度差值小于一个特定值时,平滑该像素的亮度。
# 它主要用于去噪和模糊化,例如,高斯模糊是最常用的模糊滤波器(平滑滤波器)之一,它是一个削弱高频信号强度的低通滤波器。

import cv2
import numpy as np
from scipy import ndimage



kernel_3x3 = np.array([
        [-1,-1,-1],
        [-1,8,-1],
        [-1,-1,-1]
])

kernel_5x5 = np.array([
        [-1,-1,-1,-1,-1],
        [-1, 1, 2, 1,-1],  
        [-1, 2, 4, 2,-1],  
        [-1, 1, 2, 1,-1],  
        [-1,-1,-1,-1,-1],    
])

img = cv2.imread(r'C:\Users\Owen\Pictures\lena.jpg',0)

k3 = ndimage.convolve(img,kernel_3x3)
k5 = ndimage.convolve(img,kernel_5x5)

blurred = cv2.GaussianBlur(img,(11,11),0)  #高斯模糊是一个削弱高频信号强度的低通滤波器
g_hpf = img - blurred  #原图与其相减,可保留更多的特征信息。

cv2.imshow("Gaussian blurred",blurred)
cv2.imshow("img",img)
cv2.imshow("3x3",k3)
cv2.imshow("5x5",k5)
cv2.imshow("g_hpf",g_hpf)

cv2.waitKey(0)
cv2.destroyAllWindows()

原图:
在这里插入图片描述
高斯模糊后:
在这里插入图片描述
应用低通滤波器(高斯模糊)后与原图像计算差值:
在这里插入图片描述
3x3内核:
在这里插入图片描述
5x5内核:
在这里插入图片描述
可以看出,应用低通滤波器(高斯模糊)后与原图像计算差值得到的图像,保留的特征最多,效果最好。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值