1. 程式人生 > >濾波器_理想高通濾波器python案例

濾波器_理想高通濾波器python案例

一:高通濾波

簡單粗暴理解為將影象中心化後移除中間部分低頻資訊
new_img=cv2.imread('person.jpg',0)
rows,cols=new_img.shape
crow,ccol=int(rows/2),int(cols/2)
mask1=np.ones((rows,cols),np.uint8)
mask2=np.ones((rows,cols),np.uint8)
mask1[crow-30:crow+30,ccol-30:ccol+30]=0
mask2[crow-10:crow+10,ccol-10:ccol+10]=0

f1=np.fft.fft2(new_img)
f1shift=np.fft.fftshift(f1)
f1shift_1=f1shift*mask1
f1shift_2=f1shift*mask2

f_ishift_1=np.fft.ifftshift(f1shift_1)
f_ishift_2=np.fft.ifftshift(f1shift_2)

img_back_1=np.fft.ifft2(f_ishift_1)
img_back_2=np.fft.ifft2(f_ishift_2)

img_back_1=np.abs(img_back_1)
img_back_2=np.abs(img_back_2)

plt.figure(figsize=(14,14))

plt.subplot(221),plt.imshow(new_img,cmap='gray'),plt.title('input image')
plt.subplot(222),plt.imshow(img_back_1,cmap='gray'),plt.title('output image r=30')
plt.subplot(223),plt.imshow(img_back_2,cmap='gray'),plt.title('output image r=10')

輸出結果為: 在這裡插入圖片描述