如何直接而不是通过对话框保存图像?

时间:2019-04-24 18:19:29

标签: python opencv

当我按Ctrl + s时,我试图保存图像。但是,与其直接保存图像,不如打开图像,而是打开“另存为”对话框。我希望我的代码在按Ctrl + s时直接将其保存为tiger2.png。

   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 个答案:

答案 0 :(得分:1)

问题似乎是Ctrl + s是cv2.imshow()中的内置函数,该函数会打开一个保存对话框:https://github.com/opencv/opencv/issues/5071

如果您更改

elif k == 19:

类似于

elif k == 115: #Save when pressing s

这将按预期工作。

答案 1 :(得分:0)

调用cv2.waitKey(0)时,计算机等待下一个键被按下。 cv2.waitKey()不能同时检测两次按键。

您可以尝试使用s代替ctrl+s

   elif k == 115:    #Saving image when user presses 's'
       cv2.imwrite('tiger2.png',image)
       cv2.destroyAllWindows()