仅作为记录,大佬请跳过。
直接上代码
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
import os
import glob
# 读取图像
img_path = '/dataset/bscc/BCSS_cropped/test/positive'
imgs = glob.glob(os.path.join(img_path,'*.png'))
img = cv.imread(imgs[0], 0)
# 快速傅里叶变换算法得到频率分布
f = np.fft.fft2(img)
# 默认结果中心点位置是在左上角,
# 调用fftshift()函数转移到中间位置
fshift = np.fft.fftshift(f)
# fft结果是复数, 其绝对值结果是振幅
fimg = np.log(np.abs(fshift))
# 展示结果
plt.subplot(121), plt.imshow(img, 'gray'), plt.title('Original Fourier')
plt.axis('off')
plt.subplot(122), plt.imshow(fimg, 'gray'), plt.title('Fourier Fourier')
plt.axis('off')
plt.show()
展示
参考
感谢大佬博主文章:传送门