微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么cv2 mask + imwrite会减少图像细节?

如何解决为什么cv2 mask + imwrite会减少图像细节?

我有一个1.17 Gb的tiff(“热图”),我想裁剪到另一个425.7 Mb的tiff(“路面”)的轮廓。热图包含我要保留在最终图像中的细微颜色阴影。我正在使用bitwise_and操作将路面图像用作遮罩,并使用cv2.imwrite保存。但是,生成的tiff缺少细微的阴影,仅为10.5 Mb。看来尺寸已大大缩小,这可能就是为什么最终图像的细节较少的原因。

如何在输出图像中保留输入的细微阴影?

import sys
import cv2
import numpy as np

heatmapfile  = "heatmap.tif"
pavementfile = "pavement.tif"
output       = "masked_heatmap.tif"

heatmap  = cv2.imread(heatmapfile,-1)
pavement = cv2.imread(pavementfile,0)

# apply thresholding to create mask
ret,binimg = cv2.threshold(pavement,1,255,cv2.THRESH_BINARY)

# make binary image same size as heatmap,needed for bitwise_and
bin_4ch = cv2.cvtColor(binimg,cv2.COLOR_GRAY2BGRA)

# mask the heatmap and save
hm_masked = cv2.bitwise_and(heatmap,bin4ch)
cv2.imwrite(output,hm_masked)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。