本文涉及傅立叶变换:
代码如下:
#读取图片,cv2.IMREAD_GRAYSCALE可以只提取灰度信息
img = cv2.imread("colorCheck.jpg",cv2.IMREAD_GRAYSCALE)
#傅里叶变化得到各个频率的复数结果并且把低频数据移到中间
f=np.fft.fft2(img)
fshift=np.fft.fftshift(f)
result=20*np.log(np.abs(fshift))
#高通滤波器,低频信息为比如草原图片中的草,高频数据为图像的边缘信息,如草的边缘细节
rows,cols=img.shape
crow,ccol=int(rows/2),int(cols/2)
fshift[crow-30:crow+30,ccol-30:ccol+30]=0
#逆傅里叶变换,得到图片
ifshift=np.fft.ifftshift(fshift)
img_fft=np.fft.ifft2(ifshift)
img_fft=np.abs(img_fft)
#显示图片
plt.imshow(img_fft,cmap="gray")
plt.show()
版权声明:本文为qq_30503573原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。