#python-3.x #opencv
#python-3.x #opencv
Вопрос:
Я пытаюсь прочитать номерной знак. Итак, я нашел это руководство:https://medium.com/programming-fever/license-plate-recognition-using-opencv-python-7611f85cdd6c
И когда я запускаю ее, cv2.imshow()
не работает каждый раз. Иногда я получаю изображение, но иногда просто окно с крошечным черным прямоугольником в нем. Вот маленькое окно
img = cv2.imread('2.jpg',cv2.IMREAD_COLOR)
img = cv2.resize(img, (640,480) )
cv2.imshow('actual', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Предполагается, что этот крошечный код будет работать каждый раз, если изображение существует. Но это не так.
Кто-нибудь имеет какое-либо представление об этом?
Спасибо
Комментарии:
1. После прочтения изображения может быть полезно проверить, существует mage или нет:
if img is None: sys.exit("Could not read the image.")
. Используйте ее передimshow
2. Привет, спасибо за предложение, но это не устраняет проблему, потому что, если изображение не существует, OpenCV сам выдаст исключение
Ответ №1:
Ну, чтобы заставить ее работать, я изменил две вещи :
- Сначала у меня было
cv2.namedWindow('actual', cv2.WINDOW_NORMAL)
- И затем я обновил, используя :
pip3 install opencv
И теперь она работает каждый раз.
Ответ №2:
Попробуйте поместить destroyAllWindows в цикл, чтобы закрыть его должным образом (нажав q):
img = cv2.imread('2.jpg',cv2.IMREAD_COLOR)
img = cv2.resize(img, (640,480) )
cv2.imshow('actual', img)
while True:
if cv2.waitKey(1) amp; 0xFF == ord('q'):
cv2.destroyAllWindows()
break
Комментарии:
1. Спасибо за этот быстрый ответ. Кажется, что она работает лучше, чем первые строки, которые я написал, но она все еще работает не каждый раз. Это очень странно
2. Это не отвечает на вопрос, и предложение не имеет никакого смысла