Как сохранить изображение напрямую, а не через диалоговое окно? - PullRequest
1 голос
/ 24 апреля 2019

Я пытаюсь сохранить изображение, когда нажимаю Ctrl + s. Но вместо непосредственного сохранения изображения он открывает диалоговое окно «Сохранить как», как показано на рисунке. Я хочу, чтобы мой код сохранял его как tiger2.png при нажатии Ctrl + s.

   image = cv2.imread('tiger.jpg',0) #Reading the image

   cv2.imshow('image',image)
   k = cv2.waitKey(0)

   if k == 27:           #Closing window when user presses ESC key
       cv2.destroyAllWindows()

   elif k == 19:         #Saving image when user presses Ctrl+s

       cv2.imwrite('tiger2.png',image)
       cv2.destroyAllWindows()

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Кажется, проблема в том, что Ctrl + s - это встроенная функция в cv2.imshow (), которая открывает диалог сохранения: https://github.com/opencv/opencv/issues/5071

если вы измените

elif k == 19:

к чему-то вроде

elif k == 115: #Save when pressing s

это будет работать так, как вы намереваетесь.

0 голосов
/ 24 апреля 2019

Когда вызывается cv2.waitKey(0), компьютер ожидает нажатия следующей клавиши.cv2.waitKey() нельзя использовать для одновременного обнаружения двух нажатий клавиш.

Вы можете попробовать использовать s вместо ctrl+s.

   elif k == 115:    #Saving image when user presses 's'
       cv2.imwrite('tiger2.png',image)
       cv2.destroyAllWindows()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...