【CV】一文讲懂图像处理中的低通、高通、带阻和带通滤波器
空間域和頻域濾波器通常分為四種類型的濾波器——低通、高通、帶阻和帶通濾波器。在本文中,我們為每一種濾波器提供了注釋、代碼示例和圖像輸出。
濾波器類型
低通濾波器:只允許通過低頻細節,衰減高頻細節。例如:平滑濾波器。
高通濾波器:只允許通過高頻細節,衰減低頻細節。例如:銳化蒙版濾波器。
帶阻濾波器:衰減一定頻率范圍內的信號。允許低于某個閾值或高于另一個閾值的頻率通過。
帶通濾波器:只允許特定頻帶內的信號通過,允許高于低閾值和低于高個閾值的頻率通過。
我們可以將不同濾波器用如下的公式來表示
其中δ(x, y)是單位脈沖核
使用Zone板來展示不同濾波器的效果
Zone板是用于測試過濾器特性的一種測試板,有很多中版本。本文我們使用如下方程生成我們的要用的Zone板。
其中 x,y 是遞增步長0.0275,取值范圍在[-8.2, 8.2]的一組數,最終形成一個 597x597 的圖像,樣子如下所示
具體的代碼如下:
def zone(x, y):return 0.5 * (1 + math.cos(x * x + y * y))SIZE = 597 image = np.zeros((SIZE, SIZE))start = -8.2 end = 8.2 step = 0.0275def dist_center(y, x):global SIZEcenter = SIZE / 2return math.sqrt( (x - center)**2 + (y - center)**2)for y in range(0, SIZE):for x in range(0, SIZE):if dist_center(y, x) > 300:continuey_val = start + y * stepx_val = start + x * stepimage[y, x] = zone(x_val, y_val)接下來我們將通過代碼展示如何使用各種濾波器,以及展示每個濾波器對Zone板的處理結果。
低通濾波器
kernel_size = 15lowpass_kernel_gaussian = gkern(kernel_size) lowpass_kernel_gaussian = lowpass_kernel_gaussian / lowpass_kernel_gaussian.sum()lowpass_kernel_box = np.ones((kernel_size, kernel_size)) lowpass_kernel_box = lowpass_kernel_box / (kernel_size * kernel_size)lowpass_image_gaussian = cv2.filter2D(image, -1, lowpass_kernel_gaussian) lowpass_image_box = cv2.filter2D(image, -1, lowpass_kernel_box)高通濾波器
在空間域中,可以通過從圖像本身中減去低通濾波圖像來獲得高通濾波圖像(如非銳化掩模)
highpass_image_gaussian = image - lowpass_image_gaussian highpass_image_gaussian = np.absolute(highpass_image_gaussian)highpass_image_box = image - lowpass_image_box highpass_image_box = np.absolute(highpass_image_box)帶阻濾波器
在空間域中,可以通過將低通濾波與高通濾波圖像(在不同閾值下)相加來獲得帶阻濾波圖像。
bandreject_image = lowpass_image_gaussian + highpass_image_box帶通濾波器
在空間域中,可以通過從圖像本身中減去帶阻濾波圖像來獲得帶通濾波圖像。
bandpass_image = image - bandreject_image bandpass_image = np.absolute(bandpass_image)最后,各位小伙伴可以比較一下不同濾波器對同一圖像的處理結果哦。仔細理解一下低通、高通、帶阻、帶通的含義。
往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【CV】一文讲懂图像处理中的低通、高通、带阻和带通滤波器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 位运算 权限控制_java 位
- 下一篇: video-js RTMP直播