Как сохранить изображение с помощью opencv после выполнения этого кода, как показано ниже? - PullRequest
0 голосов
/ 10 мая 2019

Я использовал метод Оцу для маскировки облака.В этом случае маска красная.Когда я запускаю код, графики отображают красную маску, но когда я пытаюсь сохранить ее в папке, маска становится синей.Может кто-нибудь помочь, что я сделал не так?

 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')

1 Ответ

1 голос
/ 10 мая 2019

OpenCV рассматривает порядок цветовых каналов изображений по умолчанию как BGR, а не RGB, поэтому вы видите синюю маску цвета.

Так что вам нужно сменить маску на эту

mask_color = (0, 0, 255)

, тогда он будет применять правильные значения цвета к правильному цветовому каналу

...