小波变换的图像融合代码 python
时间: 2023-03-31 13:02:01 浏览: 283
基于小波变换的图像融合代码
以下是小波变换的图像融合代码 python:
```python
import cv2
import numpy as np
import pywt
def wavelet_transform(img):
# 将图像进行小波变换
coeffs = pywt.dwt2(img, 'haar')
LL, (LH, HL, HH) = coeffs
return LL, LH, HL, HH
def wavelet_inverse(LL, LH, HL, HH):
# 将小波系数进行逆变换
coeffs = LL, (LH, HL, HH)
img = pywt.idwt2(coeffs, 'haar')
return img
def image_fusion(img1, img2):
# 将两幅图像进行融合
LL1, LH1, HL1, HH1 = wavelet_transform(img1)
LL2, LH2, HL2, HH2 = wavelet_transform(img2)
# 对 LL 子带进行加权平均
alpha = .5
LL = alpha * LL1 + (1 - alpha) * LL2
# 对 LH、HL、HH 子带进行最大值融合
LH = np.maximum(LH1, LH2)
HL = np.maximum(HL1, HL2)
HH = np.maximum(HH1, HH2)
# 将融合后的小波系数进行逆变换
img = wavelet_inverse(LL, LH, HL, HH)
return img
# 读取两幅图像
img1 = cv2.imread('img1.jpg', )
img2 = cv2.imread('img2.jpg', )
# 进行图像融合
img = image_fusion(img1, img2)
# 显示融合后的图像
cv2.imshow('Fused Image', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
希望对你有帮助!
阅读全文