ihs图像融合方法+python代码
时间: 2024-01-28 13:01:52 浏览: 239
IHS(Intensity-Hue-Saturation)图像融合方法是一种常用的图像融合技术,它将多个图像融合到一起,以提高综合图像的质量和细节。以下是使用Python实现IHS图像融合方法的示例代码:
``` python
import cv2
import numpy as np
def ihs_fusion(image1, image2):
# 转换图像为浮点数
image1 = image1.astype(np.float32)
image2 = image2.astype(np.float32)
# 将图像转换为IHS颜色空间
image1_ihs = cv2.cvtColor(image1, cv2.COLOR_BGR2HSV)
image2_ihs = cv2.cvtColor(image2, cv2.COLOR_BGR2HSV)
# 分离各通道
i1, h1, s1 = cv2.split(image1_ihs)
i2, h2, s2 = cv2.split(image2_ihs)
# 提取图像1的亮度通道
i_fusion = cv2.addWeighted(i1, 0.5, i2, 0.5, 0)
# 提取图像2的色调和饱和度通道
h_fusion = h2
s_fusion = s2
# 合并通道重新构建图像
fused_ihs = cv2.merge((i_fusion, h_fusion, s_fusion))
# 转换为BGR颜色空间
fused_bgr = cv2.cvtColor(fused_ihs, cv2.COLOR_HSV2BGR)
# 将像素值缩放到0-255范围
fused_bgr = np.clip(fused_bgr, 0, 255).astype(np.uint8)
return fused_bgr
# 载入两个待融合的图像
image1 = cv2.imread('image1.jpg')
image2 = cv2.imread('image2.jpg')
# 调用IHS图像融合方法
fused_image = ihs_fusion(image1, image2)
# 显示融合后的图像
cv2.imshow("Fused Image", fused_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,首先将两幅输入图像转换为浮点数,然后分别将它们转换为IHS颜色空间。接着分离各个通道,提取第一幅图像的亮度通道,提取第二幅图像的色调和饱和度通道,然后重新合并通道构建图像。最后,将颜色空间转换回BGR,并将像素值缩放到0-255范围,得到最终的融合图像。
阅读全文