У меня была эта проблема раньше с OpenCV. Насколько мне известно, в OpenCV нет функций для кнопок.
Однако я использовал Tkinter и создал холст вместе с некоторыми кнопками (в вашем случае это будут «Пуск», «Стоп», «Захват», «Закрыть»). Каждый кадр, снятый с помощью OpenCV, я рисовал на холсте Tkinter.
Я использовал это для покадровой программы, поэтому я не уверен, насколько хорошо этот метод будет работать в реальном времени.
Очень быстрый пример кода:
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()
Это может сработать, а может и не сработать сразу же, поскольку я не могу проверить это прямо сейчас. Одно потенциальное изменение, которое я вижу, это формат изображения, который использует OpenCV. Возможно, вам придется использовать одну из функций преобразования, чтобы изменить формат.
person
SimonPJ
schedule
03.02.2014