Сохраните изображение BGR с помощью cv2.imwrite - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть двумерный массив, значения которого находятся в диапазоне [-4, 3]. cv2.imshow показывает этот массив как изображение BGR, но когда я сохранил его с помощью cv2.imwrite , он был полностью черным. Затем я обнаружил, что мне нужно умножить массив до 255, чтобы сохранить его с imwrite , но в этом случае изображение сохраняется в формате RGB, но я хочу сохранить изображение BGR, которое отображается как cv2.imshow . Что мне делать?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Прежде всего, вы должны настроить значение всех массивов. Пиксели находятся в диапазоне от -4 до 3, поэтому вы должны сделать это:

img = img - min_val
img = img*255.0/(max_val - min_val)

, что в вашем случае будет выглядеть так:

img = img+4
img = img*255/7.0

, а затем преобразуйте ваш img в 8bit unseded intи сохраните его с помощью imwrite (не нужно связываться с BGR или RGB, opencv обрабатывает его самостоятельно)

0 голосов
/ 10 ноября 2019

Итак, в основном вы хотите преобразовать изображение из RGB в изображение BGR.

Это можно сделать с помощью функции cv2.cvtColor ().

result_BGR = cv2.cvtColor(RGB_image, cv2.COLOR_RGB2BGR)
cv2.imwrite('PATH', result_BGR)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...