要使用OpenCV实现二维傅里叶变换,可以按照以下步骤进行操作:

  1. 导入必要的库:
import cv2
import numpy as np
  1. 加载图像并将其转换为灰度图像:
image = cv2.imread('input.jpg', 0)
  1. 使用OpenCV的dft函数进行二维傅里叶变换:
dft = cv2.dft(np.float32(image), flags=cv2.DFT_COMPLEX_OUTPUT)
  1. 将低频部分移到图像的中心:
dft_shift = np.fft.fftshift(dft)
  1. 计算幅度谱:
magnitude_spectrum = 20 * np.log(cv2.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1]))
  1. 将幅度谱进行归一化处理:
magnitude_spectrum = cv2.normalize(magnitude_spectrum, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U)
  1. 显示原始图像和幅度谱:
cv2.imshow('Input Image', image)
cv2.imshow('Magnitude Spectrum', magnitude_spectrum)
cv2.waitKey(0)
cv2.destroyAllWindows()

完整的代码如下:

import cv2
import numpy as np

image = cv2.imread('input.jpg', 0)

dft = cv2.dft(np.float32(image), flags=cv2.DFT_COMPLEX_OUTPUT)
dft_shift = np.fft.fftshift(dft)

magnitude_spectrum = 20 * np.log(cv2.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1]))
magnitude_spectrum = cv2.normalize(magnitude_spectrum, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U)

cv2.imshow('Input Image', image)
cv2.imshow('Magnitude Spectrum', magnitude_spectrum)
cv2.waitKey(0)
cv2.destroyAllWindows()

请确保已将图像文件命名为'input.jpg'并与代码文件位于同一目录下。

OpenCV 二维傅里叶变换实现步骤及代码示例

原文地址: https://www.cveoy.top/t/topic/quJ3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录