OpenCV сохранить отфильтрованное изображение - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь сохранить отфильтрованное / гибридное изображение после манипулирования им с помощью OpenCV в Jupyter Notebook на компьютере c. Все идет хорошо, пока я не попытаюсь сохранить изображение. Я попытался сохранить его как .jpg, .bmp. и .png. Я попробовал каждый из них и умножил изображение на 255, а не умножил. Полученный сохраненный файл либо полностью черный, либо полностью белый в зависимости от того, умножился ли я на 255.

im1 = cv2.imread(im1_file, cv2.IMREAD_GRAYSCALE)
im1 = cv2.cvtColor(im1, cv2.COLOR_BGR2GRAY) / 255.0

# filtering and cropping operations

cv2.imwrite('hybrid_image.jpg', cropped_image*255)

Я также попытался «преобразовать» его обратно в изображение BGR. Но выдает ошибку 'depth' is 6 (CV_64F)

cropped_image_255 = cropped_image*255.0
convertedimage = cv2.cvtColor(cropped_image_255, cv2.COLOR_GRAY2BGR)
cv2.imwrite('hybrid_image.bmp', convertedimage)

1 Ответ

1 голос
/ 29 января 2020

Решением вашей проблемы является преобразование типа изображения в 8-разрядное целое число без знака перед сохранением.

Вы можете заменить следующую строку:

cv2.imwrite('hybrid_image.jpg', cropped_image*255)

на

cropped_image = cropped_image * 255  # Still (can be) floats
cv2.imwrite('hybrid_image.jpg', cropped_image.astype(np.uint8)) 

Убедитесь, что перед преобразованием в np.uint8 ваше изображение не содержит цифр выше 255. Или иначе, OpenCV ограничит их белыми пикселями (значение 255).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...