# coding=utf-8
"""
Project: HSV图像融合方法
"""
import cv2
from PIL import Image
import matplotlib.pyplot as plt
def HSV(data_low, data_high):
"""
使用opencv将色彩空间RGB转为HSV,H色调,S饱和度,V亮度
输入:图像三维数组
返回:可绘出图像的utf-8格式的三维数组
"""
h_low, s_low, v_low = cv2.split(
cv2.cvtColor(
data_low, cv2.COLOR_BGR2HSV
)
)
h_high, s_high, v_high = cv2.split(
cv2.cvtColor(
data_high, cv2.COLOR_BGR2HSV
)
)
# 用高分影像的V替换低分影像的V
HSV = cv2.merge([h_low, s_low, v_high])
RGB = Image.fromarray(
cv2.cvtColor(
HSV, cv2.COLOR_HSV2RGB
)
)
return RGB
def main(path_low, path_high):
data_low = cv2.imread(path_low)
data_high = cv2.imread(path_high)
h, w = data_high.shape[:2]
data_low = cv2.resize(data_low, (h, w), interpolation=cv2.INTER_CUBIC) # 重采样
RGB = HSV(data_low, data_high)
#RGB.save(r'C:\Users\admin\Desktop\HSV2.png', 'png')
fig = plt.figure()
ax = fig.add_subplot(221)
ax.imshow(data_low)
plt.title("Fig1 multispectral image")
ax = fig.add_subplot(222)
ax.imshow(data_high)
plt.title("Fig2 panchromatic image")
ax = fig.add_subplot(223)
ax.imshow(RGB)
plt.title("Fig3 HSV fusion image")
plt.show()
if __name__ == "__main__":
path_low = r'RGB.tif'
path_high = r'Band8.tif'
main(path_low, path_high)
HSV_图像融合_
5星 · 超过95%的资源 56 浏览量
2021-10-01
17:52:37
上传
评论 1
收藏 9.55MB ZIP 举报
Dyingalive
- 粉丝: 86
- 资源: 4809
评论1