擅长:python、mysql、java
<ol>
<li>如果您仍然需要使用<strong>画布</strong>而不是<strong>标签</strong>来放置函数或方法中的图像,则可以为图像使用外部链接,并为函数内的此链接使用<strong>全局</strong>规范。在</li>
<li>您可能需要使用SE锚定,而不是NW。在</li>
</ol>
<p>此代码成功地工作(从USB摄像头获取OpenCV图像并将其放在Tkinter<strong>画布中</strong>):</p>
<pre><code>def singleFrame1():
global imageTK # declared previously in global area
global videoPanel1 # also global declaration (declared as "None")
videoCapture=cv2.VideoCapture(0)
success,frame=videoCapture.read()
videoCapture.release()
vHeight=frame.shape[0]
vWidth=frame.shape[1]
imageRGB=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) # OpenCV RGB-image
imagePIL=Image.fromarray(imageRGB) # PIL image
imageTK=ImageTk.PhotoImage(imagePIL) # Tkinter PhotoImage
if videoPanel1 is None:
videoPanel1=Canvas(root,height=vHeight,width=vWidth) # root - a main Tkinter object
videoPanel1.create_image(vWidth,vHeight,image=imageTK,anchor=SE)
videoPanel1.pack()
else:
videoPanel1.create_image(vWidth,vHeight,image=imageTK,anchor=SE)
</code></pre>