我有一个图像,我想在tkinter中使用它,并使用OpenCv中的选择ROI功能和鼠标事件。我不知道如何解决这个问题,但我尽了最大努力,这是我的代码。 我的问题是,我错误地说我的变量at(lbl tkimgis)没有定义。有没有其他方法来实现这一点,或者有什么建议我可以做出改变? 谢谢你的帮助。祝你今天愉快
from tkinter import *
import numpy as np
import cv2
import sys
import PIL.Image as imge
import PIL.ImageTk as imtk
ev = None
def click(event, u16):
global subregion, tkimgis, ev
if ev == None:
ev = event
return None
bbox = cv2.selectROI("Image", u16, fromCenter=False)
cv2.destroyWindow("Image")
print("region:", bbox)
####Here u16 is my image array from another jupyter notebook cell
tkimgis = imtk.PhotoImage(image=imge.fromarray(u16))
lbl.config(image=tkimgis)
(x,y,w,h) = bbox
subregion = na[y:y+h, x:x+w]
ev = event
root = Tk()
lbl = Label(root, image=tkimgis)
lbl.place(x=0, y=0)
root.bind('<Button-1>', lambda event: click(event))
root.mainloop()
目前,您的代码有很多其他事情我觉得做得不对,所以我将提供一个代码供您仔细研究
简而言之,您需要在不同的线程中运行
cv2.selectROI
,然后从主线程更新标签图像相关问题 更多 >
编程相关推荐