python编写一段程序,读入图像 Fig0464(a)(car_75DPI Moire).tif,进行如下频域滤波。 (1)观察并显示该图像的幅度谱 ,记录幅度谱中 “类沖激”的坐标位置为x=54.1 y=43.9,x=54.1 y=84.4,x=56.7 y=164.2,x=56.7 y=205.6,x=110.9 y=40.1,x=110.9 y=81.0,x=113.0 y=161.2,x=113.0 y=202.6,使用 notchfunc函数构造陷波滤波器 (3)陷波滤波器和幅度谱相乘,用plt.imshow显示结果,进行傅立叶反变换用plt.imshow显示结果
时间: 2023-05-21 12:07:36 浏览: 112
很高兴为您服务!以下是Python程序的代码:
```python
import numpy as np
import cv2
import matplotlib.pyplot as plt
def notchfunc(size, x, y, r):
H = np.ones((size, size), np.float32)
for i in range(size):
for j in range(size):
dist = np.sqrt((i-x)**2 + (j-y)**2)
if dist <= r:
H[i, j] = 0
return H
#读入图像
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))
#找到“类冲激”的坐标位置
pos = [(54.1, 43.9), (54.1, 84.4), (56.7, 164.2), (56.7, 205.6), (110.9, 40.1), (110.9, 81.0), (113.0, 161.2), (113.0, 202.6)]
for p in pos:
x, y = p
print("坐标位置为: x={:.1f} y={:.1f}".format(x, y))
#构造陷波滤波器
size = img.shape[0]
H = notchfunc(size, 43.9, 54.1, 5) * notchfunc(size, 84.4, 54.1, 5) * notchfunc(size, 164.2, 56.7, 5) * notchfunc(size, 205.6, 56.7, 5) * notchfunc(size, 40.1, 110.9, 5) * notchfunc(size, 81.0, 110.9, 5) * notchfunc(size, 161.2, 113.0, 5) * notchfunc(size, 202.6, 113.0, 5)
#将陷波滤波器和幅度谱相乘
fshift_filtered = fshift * H
#将零频率移到左上角位置
fshift_filtered_unshifted = np.fft.ifftshift(fshift_filtered)
#进行傅里叶反变换
img_filtered = np.fft.ifft2(fshift_filtered_unshifted)
#将实部取出
img_filtered = np.real(img_filtered)
#显示结果
plt.subplot(121), plt.imshow(magnitude_spectrum, cmap='gray')
plt.title('Original Image Spectrum'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(img_filtered, cmap='gray')
plt.title('Image after HPF'), plt.xticks([]), plt.yticks([])
plt.show()
```
中文加密技术称为“中文文本加密技术”,可以使用一些古文字体或者对中文文字进行一定的转换,来达到加密的目的,比如替换为汉字拼音、拆分为偏旁部首等。这种加密技术具有较好的安全性和隐蔽性,适用于中文文本的加密保护。
关于lua closure factory 的完整代码,需要明确具体实现的功能和应用场景,这样才能为您提供正确的代码。
阅读全文