dct提取图像高频成分的代码
时间: 2024-05-08 13:20:56 浏览: 7
以下是使用DCT提取图像高频成分的代码示例,该示例使用Python和OpenCV库:
```python
import cv2
import numpy as np
# 读入图像
img = cv2.imread('image.jpg', 0)
# 对图像进行DCT变换
dct = cv2.dct(np.float32(img))
# 保留高频成分
keep_fraction = 0.1
dct_highfreq = dct.copy()
r, c = dct.shape
# 将DCT系数的高频部分赋值为0
dct_highfreq[int(r*keep_fraction):r, int(c*keep_fraction):c] = 0
# 对图像进行IDCT变换
idct = cv2.idct(dct_highfreq)
# 显示原图和高频成分提取后的图像
cv2.imshow('Original Image', img)
cv2.imshow('High-Frequency Component', idct)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先读入一个灰度图像并将其转换为浮点数格式。然后,我们使用OpenCV中的`cv2.dct`函数对图像进行DCT变换。接下来,我们保留图像的高频成分,方法是将DCT系数的高频部分赋值为0。最后,我们使用`cv2.idct`函数对图像进行IDCT变换,并将原图像和高频成分提取后的图像显示出来。
请注意,`keep_fraction`变量控制保留的高频成分的比例。该值越小,则保留的高频成分越少,输出图像则越模糊。