赞
踩
图像分割、显著性检测通常会生成二值图或者灰度图像(mask),为了直观展示分割检测效果,通常最直接的方法就是将生成的mask基于一定透明度叠加到原始图像。
本文通过python opencv来实现显著图转热力图并叠加到原始图,具体操作如下:
1.读入分割图片和原始图片
import cv2
import numpy as np
gray_img = cv2.imread('D:/ILSVRC2012_test_00000003_salient.png', flags=1)
org_img = cv2.imread('D:/ILSVRC2012_test_00000003.jpg', flags=1)
# 图片均是标准化后的图片
2.灰度图像转为三通道热力图像并保存热力图
heat_img = cv2.applyColorMap(gray_img, cv2.COLORMAP_JET) #此处的三通道热力图是cv2使用GBR排列
cv2.imwrite('D:/heat_img.png', heat_img) #cv2保存热力图片
3.叠加到原始图片并保存叠加后的图片
add_img = cv2.addWeighted(org_img, 0.3, heat_img, 0.7, 0)
#五个参数分别为 图像1 图像1透明度(权重) 图像2 图像2透明度(权重) 叠加后图像亮度
cv2.imwrite('D:/add_img .png', add_img ) #cv2保存叠加图片
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。