【发布时间】:2019-05-10 10:19:28
【问题描述】:
我曾使用大津的方法遮住云层。在这种情况下,面具是红色的。当我运行代码时,图表显示红色蒙版,但是当我尝试将其保存到文件夹时,蒙版变为蓝色。谁能帮助我做错了什么?
def show_mask(mask, img_array, title='', mask_color=(255, 0, 0)):
display_image = img_array.copy()
display_image[mask != 0] = mask_color
path1="D:Datasets/satellite2/croppedred"
plt.imshow(display_image)
cv2.imwrite(os.path.join(path1,img),display_image)
#display_image.save(os.path.join(path1,img))
plt.title(title)
plt.axis('off')
plt.show()
show_mask(mask_otsu_clean, img_array, title='Otsu grayscale thresholding with morphological cleanup')
【问题讨论】:
-
图片的颜色顺序是什么?如果这是您所看到的,听起来它可能是 BGR 而不是 RGB。试试
display_image[mask != 0] = (0,0,255) -
BGR。如果这种情况下的订单是 BGR,会发生什么?
-
好吧,当您分配
mask_color时,虽然您认为它会覆盖红色通道,但颜色通道顺序是相反的,因此您需要更改遮罩顺序 -
哦,你是对的。非常感谢!
标签: python opencv matplotlib mask