import cv2
run=False
frame=0
path=#some video path
def foo(event, x, y, flags, param):
global run
global frame
#check which mouse button was pressed
#e.g. play video on left mouse click
if event == cv2.EVENT_LBUTTONDOWN:
run= not run
while run:
frame+=1
frame=cap.read()[1]
cv2.imshow(window_name, frame)
key = cv2.waitKey(5) & 0xFF
if key == ord("v"):
pass
#do some stuff on key press
elif event == cv2.EVENT_RBUTTONDOWN:
pass
#do some other stuff on right click
window_name='videoPlayer'
cv2.namedWindow(window_name)
cv2.setMouseCallback(window_name, foo)
cap=cv2.VideoCapture(path)
我以前在OpenCV上遇到过这个问题。据我所知,OpenCV中的按钮没有任何功能。
但是,我使用了Tkinter并创建了一个画布和一些按钮(在您的情况下,这些按钮将是start、stop、capture、close)。使用OpenCV捕获的每个帧我都绘制在Tkinter画布上。
我是用这个来做逐帧程序的,所以我不确定这个方法在实时性上有多好。
一个非常快速的示例代码:
这可能会也可能不会马上生效,因为我现在还不能测试这个。我可以看到的一个潜在变化是OpenCV使用的图像格式。您可能需要使用其中一个转换函数来更改格式。
按钮是不可能的,但你可以使用鼠标点击和按键来控制你的视频。例如,使用左键单击切换播放/暂停并通过按键笔划实现录制:
相关问题 更多 >
编程相关推荐