0
저는 비디오 처리를 위해 openCv를 사용하고 있습니다. 내가하는 일은 비디오 프레임을 프레임 단위로 읽은 다음 각 프레임에 일부 처리를 적용한 다음 새로운 수정 된 프레임을 표시하는 것입니다. 내 코드는 다음과 같습니다.opencv없이 파이썬에 비디오를 표시 하시겠습니까?
video_capture = cv2.VideoCapture('video.mp4')
while True:
# Capture frame-by-frame
ret, frame = video_capture.read()
# Applying some processing to frame
.
.
.
# Displaying the new frame with processing
img=cv2.imshow('title', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
이렇게하면 처리 된 비디오를 즉시 표시 할 수 있습니다. 문제는 디스플레이가 '대기'의 존재로 인해 뒤쳐져 있다는 것입니다. 비디오를 형성하기 위해 실시간으로 이미지를 표시하는 다른 방법이 있지만 cv2가 아닌 다른 모듈이 있습니까?
는
동영상의 프레임 속도는 무엇입니까? –
또한 귀하의 결론을 뒷받침 할 측정을 해 보셨습니까? 나는 프레임 처리가 시간을 지배하고 있다고 생각한다. 그건 그렇고, 난 더 이상의 문제를 참조하십시오 : a) 어떤 일관된 재생 시점에서의 시도 없음 ('VideoCapture'는 단지 파일 읽기/디코딩) b) 처리 된 프레임의 버퍼링 없음 c) 동일한 스레드에서의 처리와 표시. IMHO 당신은 먼저 그 문제를 해결해야합니다. –
네가 처리의 대부분으로 지연되는 부분이 옳다. 즉, 아무런 처리 없이도 opencv로 비디오를 읽는 것만으로는 프레임 속도가 느려지 게됩니다. 원본 비디오는 30fps, 처리를 추가하면 opencv 및 6fps로 표시 할 때 17fps를 측정했습니다. 그리고 waitkey는 50ms/프레임을 사용하고 있습니다. 병렬 처리에서 처리 속도를 높이려면 – haffj