在tkinter中实现opencv selectROI可以通过以下步骤完成:
import tkinter as tk
import cv2
window = tk.Tk()
window.title("OpenCV SelectROI")
canvas = tk.Canvas(window, width=640, height=480)
canvas.pack()
cap = cv2.VideoCapture(0)
def select_roi(event):
x, y = event.x, event.y
roi = cv2.selectROI(frame, fromCenter=False, showCrosshair=True)
cv2.destroyAllWindows()
cap.release()
window.destroy()
canvas.bind("<Button 1>", select_roi)
while True:
ret, frame = cap.read()
if not ret:
break
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
img = Image.fromarray(frame)
img = ImageTk.PhotoImage(image=img)
canvas.create_image(0, 0, anchor=tk.NW, image=img)
window.update()
window.mainloop()
这样,当你在窗口上点击鼠标左键时,会弹出一个选择ROI的框,选择完成后,窗口会关闭,并返回选择的ROI坐标和大小。
注意:以上代码中使用了PIL库中的Image和ImageTk模块,需要提前安装。
推荐的腾讯云相关产品:腾讯云人工智能服务,产品介绍链接地址:https://cloud.tencent.com/product/ai
企业创新在线学堂
云+社区技术沙龙[第17期]
企业创新在线学堂
云原生正发声
云原生正发声
GAME-TECH
腾讯云GAME-TECH沙龙
"中小企业”在线学堂
领取专属 10元无门槛券
手把手带您无忧上云