擅长:python、mysql、java
<p>我以前在OpenCV上遇到过这个问题。据我所知,OpenCV中的按钮没有任何功能。</p>
<p>但是,我使用了Tkinter并创建了一个画布和一些按钮(在您的情况下,这些按钮将是start、stop、capture、close)。使用OpenCV捕获的每个帧我都绘制在Tkinter画布上。</p>
<p>我是用这个来做逐帧程序的,所以我不确定这个方法在实时性上有多好。</p>
<p>一个非常快速的示例代码:</p>
<pre><code>from Tkinter import *
import cv2.cv as cv
root = Tk()
w = Canvas(root, width=500, height=300, bd = 10, bg = 'white')
w.grid(row = 0, column = 0, columnspan = 2)
b = Button(width = 10, height = 2, text = 'Button1')
b.grid(row = 1, column = 0)
b2 = Button(width = 10, height = 2, text = 'Button2')
b2.grid(row = 1,column = 1)
cv.NamedWindow("camera",1)
capture = cv.CaptureFromCAM(0)
while True:
img = cv.QueryFrame(capture)
canvas.create_image(0,0, image=img)
if cv.WaitKey(10) == 27:
break
root.mainloop()
</code></pre>
<p>这可能会也可能不会马上生效,因为我现在还不能测试这个。我可以看到的一个潜在变化是OpenCV使用的图像格式。您可能需要使用其中一个转换函数来更改格式。</p>