12.python-opencv图像傅里叶变换
第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克
第五章 python-opencv人脸马赛克
第六章 python-opencv人脸检测
第七章 python-opencv图像张贴
第八章 python-opencv轮廓绘制
第九章 python-opencv边缘检测
第十章 python-opencvpython-opencv边缘检测与人脸检测应用
第十一章 python-opencv直方图绘制与直方图均衡
前言
本文主要说明如何使用python-opencv将图像进行傅里叶变换,即将图像时域转换成频域。
完整代码
import numpy as np
import cv2
from matplotlib import pyplot as plt
# 加载图片
img = cv2.imread('./moon.jpg',0)
# 进行傅里叶变换,时域变频域
dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT)
# 将零零频率分量移动到频谱的中心
dft_shift = np.fft.fftshift(dft)
# 处理数值
magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))
# 创建显示窗口,显示第一张图片
plt.subplot(121)
plt.imshow(img, cmap = 'gray')
plt.title('Input Image')
plt.xticks([])
plt.yticks([])
# 创建显示窗口,显示第二张图片
plt.subplot(122)
plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum')
plt.xticks([])
plt.yticks([])
plt.show()