waitKey
не закрывает окна, оно останавливает программу на указанное время. Это также необходимый шаг для отображения изображения.
Для ваших целей вы можете использовать cv2.waitKey(1)
. Это отображает изображение, а затем запрашивает ввод без необходимости сначала нажимать клавишу. Окно изображения не закроется.
Если вы хотите закрыть изображение перед запросом, вы можете использовать cv2.destroyWindow([window_name])
, чтобы закрыть определенное окно.
В вашем случае это cv2.destroyWindow('Test')
.
Документация: destroyWindow , waitkey
При просмотре вашего кода есть еще 2 проблемы:
cv2.imread('path')
«путь» необходимо заменить на путь изображения. Это относительно сценария, поэтому, если изображение находится в той же папке, тогда будет достаточно «[image_name] .jpg» (или .png, ect), но полный путь всегда работает.
Вам нужно сохранить результат input("What can you see here?")
в переменной. См. Реализацию в примере кода.
Пример кода, который работает для меня:
import cv2
img = cv2.imread('image.jpg')
solutionimg = "Answer"
cv2.imshow('Test', img)
cv2.waitKey(0)
test = input("What can you see here?")
if test == solutionimg:
cv2.destroyAllWindows()
print("Right!")
else:
cv2.destroyAllWindows()
print("Wrong")
Этот код читает и показывает изображение. Когда вы нажимаете клавишу, она предлагает использовать для ввода. Нажмите на терминал, чтобы ввести ответ. После нажатия кнопки ввода окно изображения закрывается и отображается правое / неправильное.