vs szTitle[MAX_LOADSTRING] 怎么改
时间: 2023-05-20 15:04:21 浏览: 134
以下是用Python编写的程序,可读入图像Fig0464(a) (car_75DPI Moire).tif,并进行频域滤波:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读入图像
img = cv2.imread('Fig0464(a) (car_75DPI Moire).tif', 0)
# 进行傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
# 计算幅度谱
magnitude_spectrum = 20 * np.log(np.abs(fshift))
# 显示幅度谱
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()
# 保存幅度谱
cv2.imwrite('magnitude_spectrum.png', magnitude_spectrum)
# 计算类冲激的坐标位置
rows, cols = magnitude_spectrum.shape
crow, ccol = rows // 2, cols // 2
magnitude_spectrum[crow-2:crow+3, ccol-2:ccol+3] = 0
print("类冲激的坐标位置为:({}, {})".format(crow, ccol))
```
运行程序后,会显示输入图像和幅度谱,同时保存幅度谱为magnitude_spectrum.png文件。程序还会计算幅度谱中类冲激的坐标位置,并输出到控制台。
注意:本程序中的傅里叶变换使用的是numpy.fft库,而不是OpenCV中的cv2.dft函数。如果需要使用cv2.dft函数,需要对输入图像进行填充。
阅读全文