完成此代码后如何使用 opencv 保存图像,如下所示?
How to save image using opencv after done this code as shown below?
我用过大津的方法遮住云。在这种情况下,遮罩是红色的。当我 运行 代码时,图表显示红色遮罩,但当我尝试将其保存到文件夹时,遮罩变成蓝色。谁能帮助我做错了什么?
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')
OpenCV 默认将图像的颜色通道顺序视为 BGR 而不是 RGB,这就是您看到蓝色遮罩的原因。
所以你需要把你的面具换成这个
mask_color = (0, 0, 255)
然后它将正确的颜色值应用到正确的颜色通道
我用过大津的方法遮住云。在这种情况下,遮罩是红色的。当我 运行 代码时,图表显示红色遮罩,但当我尝试将其保存到文件夹时,遮罩变成蓝色。谁能帮助我做错了什么?
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')
OpenCV 默认将图像的颜色通道顺序视为 BGR 而不是 RGB,这就是您看到蓝色遮罩的原因。
所以你需要把你的面具换成这个
mask_color = (0, 0, 255)
然后它将正确的颜色值应用到正确的颜色通道