Функция imshow () не выдает ожидаемого результата в python - PullRequest
0 голосов
/ 12 апреля 2020
import cv2
img=cv2.imread('test.jpg')
cv2.imshow("frame1",img)
waitKey(0)

input_image output_image

Выше приведен мой код, и он не дает ожидаемого результата (полное изображение). Примерно 10% изображения получается как вывод. Мое входное изображение имеет размер 1,24 МБ. Есть ли ограничения по размеру в opencv ??

Заранее спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Проблема возникает из-за функции cv2.imshow(). Поскольку вы используете cv2 из python, используемая команда будет cv2.namedWindow('image',cv2.WINDOW_NORMAL) до cv2.imshow(). Это должно решить вашу проблему. Я попробовал ваш код следующим образом, и он сработал для меня.

import cv2
img=cv2.imread('input1.jpg')
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
#cv2.resizeWindow('image', 600,600)
cv2.imshow("image",img)
k = cv2.waitKey(0)
if k == 27:
    cv2.imwrite('newImage2.png', img)
    cv2.destroyAllWindows()

Проверьте, может ли это решить вашу проблему.

0 голосов
/ 12 апреля 2020

Вы можете использовать метод namedwindow (), чтобы настроить размер экрана в соответствии с размером изображения. Вот функция;

cv.NamedWindow (name, flags = CV_WINDOW_AUTOSIZE)

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