Python的CV2缓慢的响应时间上的按键

问题描述 投票:0回答:1

我一直在编码的视频播放器来测试,如果我可以播放和暂停Python中的视频。我的问题是,每当我按一个键,它的irresponsive,需要连续压机的工作,而且效果是随机的。

如果有人知道这可能是造成这一点,那将是很大的帮助。

import cv2

cap = cv2.VideoCapture('testvideo.mp4')

length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

isPlaying = False


def onchange(trackbar_value):
    cap.set(cv2.CAP_PROP_POS_FRAMES, trackbar_value)
    err, vid = cap.read()
    cv2.imshow('player', vid)
    pass


start = 0

cv2.namedWindow('player')
cv2.createTrackbar('test', 'player', start, length, onchange)

onchange(1)

while cap.isOpened():
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    elif cv2.waitKey(1) & 0xFF == ord('p'):
        isPlaying = not isPlaying

    ret, player = cap.read()

    if cv2.waitKey(20) == 27:
        break
    if isPlaying:
        cv2.imshow('test', 'frame')

    elif cap.get(cv2.CAP_PROP_POS_FRAMES) >= length:
        break

cap.release()
cv2.destroyAllWindows()
python-3.x opencv cv2
1个回答
0
投票

我固定它通过改变这部分的同时cap.isOpened()循环:

keyPress = cv2.waitKey(20)
ret, player = cap.read()
if keyPress & 0xFF == ord('q'):
    break
elif keyPress & 0xFF == ord('p'):
    isPlaying = not isPlaying

一旦我删除了

if cv2.waitKey(20) == 27:
    break

线,它的工作比以前好太多了。

所有这一切都加快了项目,现在一切工作正常

© www.soinside.com 2019 - 2024. All rights reserved.