Python彩色图像二维离散小波变换:提取与展示LL、LH、HL、HH分量
要对彩色图像进行二维离散小波变换并展示四个分量,可以使用pywt库中的函数。以下是一个示例代码:
import cv2
import pywt
import numpy as np
import matplotlib.pyplot as plt
# 读取彩色图像
image = cv2.imread('image.jpg')
# 将彩色图像转换为YUV颜色空间
image_yuv = cv2.cvtColor(image, cv2.COLOR_BGR2YUV)
# 提取亮度分量Y
Y = image_yuv[:,:,0]
# 对亮度分量Y进行二维离散小波变换
coeffs = pywt.dwt2(Y, 'haar')
# 提取四个分量
LL, (LH, HL, HH) = coeffs
# 将四个分量转换为图像
LL_image = np.clip(pywt.idwt2((LL, (None, None, None)), 'haar'), 0, 255).astype(np.uint8)
LH_image = np.clip(pywt.idwt2((None, (LH, None, None)), 'haar'), 0, 255).astype(np.uint8)
HL_image = np.clip(pywt.idwt2((None, (None, HL, None)), 'haar'), 0, 255).astype(np.uint8)
HH_image = np.clip(pywt.idwt2((None, (None, None, HH)), 'haar'), 0, 255).astype(np.uint8)
# 展示四个分量的图像
plt.subplot(2, 2, 1)
plt.imshow(LL_image, cmap='gray')
plt.title('LL')
plt.subplot(2, 2, 2)
plt.imshow(LH_image, cmap='gray')
plt.title('LH')
plt.subplot(2, 2, 3)
plt.imshow(HL_image, cmap='gray')
plt.title('HL')
plt.subplot(2, 2, 4)
plt.imshow(HH_image, cmap='gray')
plt.title('HH')
plt.show()
在这个示例中,我们首先使用cv2.imread函数读取彩色图像,并将其转换为YUV颜色空间。然后,我们提取亮度分量Y,并对其进行二维离散小波变换。接下来,我们提取得到的四个分量LL、LH、HL和HH,并将它们转换为图像。最后,我们使用matplotlib.pyplot.imshow函数展示四个分量的图像。
原文地址: https://www.cveoy.top/t/topic/b9Q1 著作权归作者所有。请勿转载和采集!