【发布时间】:2018-06-06 08:57:25
【问题描述】:
我得到了以下东西:
- 使用 OpenCV 读取的图像(numpy 数组)
- 与图像大小相同的二进制掩码
-
'red','blue'等颜色字符串
问:如何在将蒙版添加到图像之前为其着色? 明确:如何在给定颜色字符串的情况下将颜色通道添加到二进制掩码
我知道如何添加掩码(例如使用cv2.addWeighted(mask,alpha,image,1-alpha,0,image)),但我不知道如何使用简单的颜色“字符串”作为输入将二进制掩码转换为颜色空间。我知道这在 PIL 中使用 rgb = PIL.ImageColor.getrgb(color) 有效,但我不知道如何使用 OpenCV 做到这一点!
编辑: 我设法获得了通道元组 (0,0,0) 中的颜色,目前我的解决方法是:
mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2RGB)
mask[np.where((mask == [1,1,1]).all(axis = 2))] = color
cv2.addWeighted(mask,alpha,image,1-alpha,0,image)
但问题是,现在图像是带有彩色地图的灰度图像... 所以需要交换第一行
【问题讨论】: