当我按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()
答案 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()