用python编写程序,对彩色图像 container_wb.png 进行频域锐化,并显示为彩色图片
时间: 2024-05-09 12:18:31 浏览: 98
好的,这个问题可以回答。您可以使用Python的OpenCV库来实现频域锐化。下面是代码示例:
```python
import cv2
import numpy as np
# 读取彩色图像
img = cv2.imread('container_wb.png')
# 转换为YCrCb颜色空间
img_ycc = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
# 获取Y通道
y, cr, cb = cv2.split(img_ycc)
# 对Y通道进行频域变换
f = np.fft.fft2(y)
fshift = np.fft.fftshift(f)
# 构造高通滤波器
height, width = y.shape
crow, ccol = height // 2, width // 2
mask = np.zeros((height, width), np.uint8)
mask[crow - 30: crow + 30, ccol - 30: ccol + 30] = 1
fshift = fshift * mask
# 对Y通道进行逆变换,得到锐化后的图像
ishift = np.fft.ifftshift(fshift)
i = np.fft.ifft2(ishift)
y_sharp = np.abs(i)
# 将锐化后的Y通道和Cr Cb通道合并为彩色图像
img_ycc_sharp = cv2.merge((y_sharp, cr, cb))
img_sharp = cv2.cvtColor(img_ycc_sharp, cv2.COLOR_YCrCb2BGR)
# 显示锐化后的彩色图像
cv2.imshow('Sharpened Image', img_sharp)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在运行代码之前,请确保已经安装了OpenCV库并且有container_wb.png图片。这段代码会将图片进行频域锐化,并显示为彩色图片。
阅读全文