как я могу показать изображение после записи изображения - PullRequest
0 голосов
/ 13 октября 2019

Я пробую простой код, который читает изображение и преобразует его в шкалу серого, затем показывает оба из них и, наконец, сохраняет изображение в шкале серого и отображает его после сохранения. Проблема в том, что cv2.imshow (показ изображения) для сохраненного изображения не работает.

Изображения перед записью изображения отображаются правильно, а изображение сохранено правильно по тому же пути, но не может быть отображено с помощью cv2.imshow.

'' ' python ' ''

import cv2  

img=cv2.imread('cover.jpg') 
cv2.imshow('image', img)  

img_grey = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)  
cv2.imshow('image_grey', img_grey) 

savedimage='new.jpg'  
cv2.imwrite('new.jpg',img_grey)  
cv2.imshow('testsavedimage',savedimage) 

cv2.waitKey(0)  

Я получаю сообщение об ошибке при отображении сохраненного изображения

File "C:/1.py", line 8, in <module>
cv2.imshow('testsavedimage',savedimage)
TypeError: Expected Ptr<cv::UMat> for argument '%s

1 Ответ

0 голосов
/ 15 октября 2019

savedimage - это просто строка в этом случае. Если вы хотите убедиться, что ваше изображение в оттенках серого было сохранено правильно, вам необходимо сначала прочитать его обратно в объект Mat:

    cv2.imwrite('new.jpg',img_grey)
    savedImg = cv2.imread('new.jpg')
    cv2.imshow('testsavedimage', savedImg)

Надеюсь, это поможет.

(PS @MarkSetchel прав, вы должны использовать cv2.COLOR_BGR2GRAY, потому что imread () и imshow () по умолчанию используют цветовое пространство BGR, а не RGB)

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