代替线条:
fshift = np.fft.fftshift(np.fft.fft2(img))
new = fshift * (h_Filter_Low_Pass)
g_ifft1 = (np.abs(np.fft.ifft2(np.fft.ifftshift(new)).real))
plt.subplot(),plt.imshow(g_ifft1, cmap = 'gray')
您可能需要使用:
img_color = cv2.imread('rocket.jpg')
b,g,r = cv2.split(img_color)
def g_ifft(x):
fshift = np.fft.fftshift(np.fft.fft2(x))
new = fshift * (h_Filter_Low_Pass)
g_ifft1 = (np.abs(np.fft.ifft2(np.fft.ifftshift(new)).real))
g_ifft1 = cv2.normalize(g_ifft1,None,0,255,cv2.NORM_MINMAX, cv2.CV_8U)
return g_ifft1
b,g,r = map(g_ifft, (b,g,r))
g_ifft1 = cv2.merge((b,g,r))
g_ifft1 = cv2.cvtColor(g_ifft1, cv2.COLOR_BGR2RGB)
plt.subplot(),plt.imshow(g_ifft1)
这会将图像分割为多个颜色通道,将过滤器分别应用于每个颜色通道,然后再次合并它们。(需要规范化步骤来转换数组
float64
到
uint8
合并前键入。)
输出示例: