数字图像 陷波滤波器 设置F(0,0)=0 代码
时间: 2024-04-21 13:07:13 浏览: 79
图像的notch陷波滤波器+代码仿真操作视频
以下是Python代码示例:
```python
import numpy as np
import cv2
def notch_filter(img, f0=(0,0), radius=30):
h, w = img.shape[:2]
# create meshgrid for distance calculation
x, y = np.meshgrid(np.arange(w), np.arange(h))
# calculate distance from center
d = np.sqrt((x - f0[1])**2 + (y - f0[0])**2)
# create notch filter
H = 1 / (1 + (d / radius)**2)
# set center to 0
H[f0[0], f0[1]] = 0
# apply filter
img_fft = np.fft.fft2(img)
img_fft_filtered = img_fft * H
img_filtered = np.fft.ifft2(img_fft_filtered).real
return img_filtered
# load image
img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
# apply notch filter
img_filtered = notch_filter(img, f0=(0,0))
# show results
cv2.imshow('Original', img)
cv2.imshow('Filtered', img_filtered)
cv2.waitKey()
cv2.destroyAllWindows()
```
该函数使用FFT计算图像的频域表示,并根据提供的F(0,0)和半径创建一个带有陷波的滤波器。然后将该滤波器应用于图像的频域表示,并使用逆FFT将其转换回空间域。最后返回滤波后的图像。在这个例子中,我们将F(0,0)设置为(0,0)。
阅读全文