使用 opencv 和 pyautogui 与用户交互保存图像
Saving images with opencv and pyautogui interactively with the user
我有下面的代码,我尝试执行以下操作:
开始捕获相机图像,但还想显示一个包含文本字段和 "ok" 按钮的对话框,用户必须在其中输入一个值并按下 "ok" 按钮,然后 scritp 保存图像 (jpg)用用户传递的值命名它。
import cv2
import time
import pyautogui
camera_port = 0
camera = cv2.VideoCapture(camera_port)
camera.set(3, 1280)# set the resolution
camera.set(4, 1024)
emLoop = True
while (emLoop):
retval, img = camera.read()
#gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Foto', img)
k = cv2.waitKey(100)
if k == 27:
emLoop = False
elif k == ord('s'):
nome = input(pyautogui.prompt(text='Scanei o código.', title='Aviso:', default=''))
cv2.imwrite(nome, img)
camera.release()
cv2.destroyAllWindows()
捕获将始终处于活动状态,只要用户输入值并单击 "ok" 就会保存图像,当用户单击 "cancel" 对话框时,就会结束捕获并终止脚本。
我正在尝试这样做,但到目前为止没有成功......:(
函数 pyautogui.prompt
打开一个带有文本字段的对话框,用户可以在其中键入将返回的内容。这类似于函数 input
的工作方式。两者都有一个字符串作为参数,作为提示消息显示给用户。不同的是,前者使用终端作为输入界面,而不是对话框。
按照您尝试的方式混合它们看起来很奇怪:nome = input(pyautogui.prompt(...))
。这意味着:打开一个对话框,以便用户可以键入将在控制台中为他自己显示的提示消息。之后,他再次输入一些内容,这些内容将返回到 nome
变量。
试试这个:
nome = pyautogui.prompt(text='Scanei o código.', title='Aviso:', default='')
或者这样:
nome = input('Aviso: Scanei o código.')
我有下面的代码,我尝试执行以下操作: 开始捕获相机图像,但还想显示一个包含文本字段和 "ok" 按钮的对话框,用户必须在其中输入一个值并按下 "ok" 按钮,然后 scritp 保存图像 (jpg)用用户传递的值命名它。
import cv2
import time
import pyautogui
camera_port = 0
camera = cv2.VideoCapture(camera_port)
camera.set(3, 1280)# set the resolution
camera.set(4, 1024)
emLoop = True
while (emLoop):
retval, img = camera.read()
#gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Foto', img)
k = cv2.waitKey(100)
if k == 27:
emLoop = False
elif k == ord('s'):
nome = input(pyautogui.prompt(text='Scanei o código.', title='Aviso:', default=''))
cv2.imwrite(nome, img)
camera.release()
cv2.destroyAllWindows()
捕获将始终处于活动状态,只要用户输入值并单击 "ok" 就会保存图像,当用户单击 "cancel" 对话框时,就会结束捕获并终止脚本。 我正在尝试这样做,但到目前为止没有成功......:(
函数 pyautogui.prompt
打开一个带有文本字段的对话框,用户可以在其中键入将返回的内容。这类似于函数 input
的工作方式。两者都有一个字符串作为参数,作为提示消息显示给用户。不同的是,前者使用终端作为输入界面,而不是对话框。
按照您尝试的方式混合它们看起来很奇怪:nome = input(pyautogui.prompt(...))
。这意味着:打开一个对话框,以便用户可以键入将在控制台中为他自己显示的提示消息。之后,他再次输入一些内容,这些内容将返回到 nome
变量。
试试这个:
nome = pyautogui.prompt(text='Scanei o código.', title='Aviso:', default='')
或者这样:
nome = input('Aviso: Scanei o código.')