import pywt
import numpy as np
import cv2
# 读取图像
image1 = cv2.imread('./train_data/tno/ir/023.png', cv2.IMREAD_GRAYSCALE)
image2 = cv2.imread('./train_data/tno/vi/023.png', cv2.IMREAD_GRAYSCALE)
# 对图像进行小波变换(这里使用Haar小波)
coeffs1 = pywt.dwt2(image1, 'haar')
coeffs2 = pywt.dwt2(image2, 'haar')
# 分解小波系数
LL1, (LH1, HL1, HH1) = coeffs1
LL2, (LH2, HL2, HH2) = coeffs2
# 进行融合(简单选择最大值)
LL_fused = np.maximum(LL1, LL2)
LH_fused = np.maximum(LH1, LH2)
HL_fused = np.maximum(HL1, HL2)
HH_fused = np.maximum(HH1, HH2)
# 合并小波系数
coeffs_fused = LL_fused, (LH_fused, HL_fused, HH_fused)
# 进行逆小波变换
fused_image = pywt.idwt2(coeffs_fused, 'haar')
# 显示融合后的图像
cv2.imshow('Fused Image', fused_image.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
04-15
11-18
670
