Python+opencv+tkinter整合demo
由於需要使用opencv進行小demo開發但是由於opencv所帶的GUI功能目前還是很簡單的,所以使用opencvv+tkinter組合實現!
先上結果圖!
在GUI中點擊點贊按鈕在控制檯就可以顯示”有人給你點贊“。
直接上代碼:
from tkinter import * import cv2 from PIL import Image,ImageTk def take_snapshot(): print("有人給你點贊啦!") def video_loop(): success, img = camera.read() # 從攝像頭讀取照片 if success: cv2.waitKey(1000) cv2image = cv2.cvtColor(img, cv2.COLOR_BGR2RGBA)#轉換顏色從BGR到RGBA current_image = Image.fromarray(cv2image)#將圖像轉換成Image對象 imgtk = ImageTk.PhotoImage(image=current_image) panel.imgtk = imgtk panel.config(image=imgtk) root.after(1, video_loop) camera = cv2.VideoCapture(0) #攝像頭 root = Tk() root.title("opencv + tkinter") #root.protocol('WM_DELETE_WINDOW', detector) panel = Label(root) # initialize image panel panel.pack(padx=10, pady=10) root.config(cursor="arrow") btn = Button(root, text="點贊!", command=take_snapshot) btn.pack(fill="both", expand=True, padx=10, pady=10) video_loop() root.mainloop() # 當一切都完成後,關閉攝像頭並釋放所佔資源 camera.release() cv2.destroyAllWindows()
代碼中有詳細註釋,就不詳細描述了
代碼直接複製粘貼到本地即可運行!