我想創建一個應用程序使用opencv,tkinter和python,人們可以在照片上標記他們的名字。他們將他們的名字寫在文本字段中,當他們通過GUI打開圖像時,他們雙擊圖像以添加他們的名字。所以,基本上,當你點擊圖片時,它從文本框中抓取文本。我檢查了effbot和tkinter/python文檔和opencv文檔,我無法明白爲什麼當我雙擊它時文本字段中的名稱不會顯示在圖像上。我試着打印報表以確保它看到文本框中的文本,並且是。文本框的名稱是全局聲明的。有沒有人有任何建議,爲什麼這不起作用?感謝您的任何建議。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"""
你確定這是tkinter嗎? Tkinter沒有像'setMouseCallback'和'waitKey'這樣的方法。 – 2014-08-30 02:49:40
這可能是我的問題之一。我正在使用Tkinter和OpenCV庫的組合。所以有可能讓他們感到困惑。我應該編輯我的問題嗎? – JustBlossom 2014-08-30 03:31:35
這是'openCV'代碼,沒關係。你將面臨的一個非常大的問題是,如何處理(協調)兩個單獨的控制器(一個用於運行「Tkinter」-MVC,第二個用於'OpenCV'-MVC並行運行) – user3666197 2014-08-30 07:40:16