1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 高通滤波器与低通滤波器

高通滤波器与低通滤波器

时间:2023-06-02 02:21:25

相关推荐

高通滤波器与低通滤波器

高通滤波器

以检测边缘的高通过滤器为例

这是个三乘三的核其元素总和为0,边缘检测时所有元素总和为0是很重要的,因为这类过滤器要计算的是相邻像素的差异或者说变化,要计算差异就需要将像素值相减,如果这些核值加起来不等于0,那就意味着计算出来的差,权重会有正负结果就是滤波后的图像亮度会相应地提高或降低,这就是卷积核元素相加为零的原因。

import numpy as npimport matplotlib.pyplot as pltimport cv2%matplotlib inlineimage = cv2.imread('1.png')image_copy = np.copy(image)image_copy = cv2.cvtColor(image_copy,cv2.COLOR_BGR2RGB)plt.imshow(image_copy)

gray = cv2.cvtColor(image_copy,cv2.COLOR_RGB2GRAY)plt.imshow(gray,cmap='gray')

sobel_x = np.array([[-1,0,1],[-2,0,2],[-1,0,1]]) #sobel filterfiltered = cv2.filter2D(gray,-1,sobel_x) #-1表示输入和输出类型一致plt.imshow(filtered,cmap='gray')

retval,binary_image = cv2.threshold(filtered,100,255,cv2.THRESH_BINARY)plt.imshow(binary_image,cmap='gray')print(retval) #不知道这个retval有什么用,输出看一下

低通滤波器

高通滤波器检测边缘时不仅会检测到噪声,而且还会强化它们,所以在高通滤波之前,需要先降噪。 低通滤器通常会取均值不像高通过滤器取的是差值,因此低通过滤器的元素加起来应该为1,这就能保留图像的亮度,确保图像不会变亮或变暗,但我们可以看到这个核的元素加起来等于9,所以我们需要进行归一化处理也就是将核值总和除以9

有时我们会想要个既能模糊图像 又能更好地保存图像边缘的过滤器,为此 我们可用高斯模糊,这或许是计算机视觉应用中最常用的低通过滤器了。高斯低通过滤器其实就是加权平均法 赋予中心像素最大的权重,但也会考虑到周围的像素 权重多少主要取决于周围像素有多接近中心像素

import numpy as npimport cv2import matplotlib.pyplot as plt%matplotlib inlineimage = cv2.imread('2.png')image_copy = np.copy(image)image_copy = cv2.cvtColor(image_copy,cv2.COLOR_BGR2RGB)plt.imshow(image_copy)

对图像进行高斯滤波,比较两者

gray = cv2.cvtColor(image_copy,cv2.COLOR_RGB2GRAY)gray_blur = cv2.GaussianBlur(gray,(5,5),0)f,(ax1,ax2) = plt.subplots(1,2,figsize=(20,10))ax1.set_title('original gray')ax1.imshow(gray,cmap='gray')ax2.set_title('blurred image')ax2.imshow(gray_blur,cmap='gray')

对未模糊处理的灰度图像和经过模糊处理的图像分别进行高通滤波操作 比较两者的效果

sobel_y = np.array([[2,1,2],[0,0,0],[-2,-1,-2]])filtered = cv2.filter2D(gray,-1,sobel_y)filtered_blurred = cv2.filter2D(gray_blur,-1,sobel_y)f,(ax1,ax2) = plt.subplots(1,2,figsize=(20,10))ax1.set_title('original gray')ax1.imshow(filtered,cmap='gray')ax2.set_title('blurred image')ax2.imshow(filtered_blurred,cmap='gray')

可以看到未模糊处理的图像,噪声更多 而模糊处理后的图像边缘检测效果更准确

通常来讲 对于这个图像以及其它诸多图像,我们都会先对图像进行小型低通滤波处理,比如应用高斯模糊 从而去除噪声,然后再用高通过滤器来检测边缘,所以在对图像进行滤波处理时 要牢牢记住这个顺序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。