gpt4 book ai didi

python - OpenCV Python鼠标事件无响应

转载 作者:行者123 更新时间:2023-12-02 17:13:09 26 4
gpt4 key购买 nike

我正在尝试使用opencv,tkinter和python创建一个应用程序,使人们可以在照片上标记自己的名字。他们在文本字段中输入名称,然后通过GUI打开图像时,双击图像以添加名称。因此,基本上,当您单击图像时,它是从文本框中获取文本。我已经检查了effbot以及tkinter / python文档和opencv文档,但我看不到为什么双击该文本字段时名称不会显示在图像上的原因。我尝试使用打印语句来确保它正在从文本框中看到文本。文本框的名称是全局声明的。是否有人对为什么它不起作用有任何建议?感谢您的任何建议。

 """PAINT: TAG IMAGE WITH TEXT FROM TKINTER ENTRY FIELD"""
img = cv2.imread('photoBoothOut.jpg',0)

def draw_text(event, x,y, flags,param):
if event == cv2.EVENT_LBUTTONDBLCLK:
cv2.putText(img,nameTextField.get(), (x,y), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,0,0), 2)
print nameTextField.get()


def paint_canvas():
cv2.namedWindow("Paint :: Press ESC to exit; Double Click to TAG")
while(1):
cv2.imshow("Paint :: Press ESC to exit; Double Click to TAG",img)
cv2.setMouseCallback("image",draw_text)
if cv2.waitKey(20) & 0xFF ==27:
break
cv2.destroyAllWindows()

"""END PAINT"""

最佳答案

您的鼠标回调将转到不存在的目标/窗口名称。

如果您选择一个名称,例如:“Paint::按ESC退出;双击以标记”,

这也必须进入setMouseCallback()中。 (您必须与命名保持一致):

def paint_canvas():
winname="Paint :: Press ESC to exit; Double Click to TAG"
cv2.namedWindow(winname)
cv2.setMouseCallback(winname,draw_text)
while(1):
cv2.imshow(winname,img)
if cv2.waitKey(20) & 0xFF ==27:
break
cv2.destroyAllWindows()

关于python - OpenCV Python鼠标事件无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25578256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com