2014-11-26 4 views
1

를 사용하여 파이썬에서이 비디오를 통해 루프오류 (cap.isopened()) : CV2

while (cap.isopened()): 

를 사용하여 많은 예제가 있지만 내가 찾은 그에 항상 오류가 아웃 마지막 프레임. 저는 현재 대신

while (cap.get(1) < cap.get(7)): 

을이를 사용하고 있지만, 거기에 내가 첫 번째 방법은 일을하고 밖으로 오류가 아닙니다 가야 할 필요가 뭔가?

나는 while 루프 내에서 정상적인 일을하고 있습니다. 예는 다음과 같습니다 :

while (cap.get(1) < cap.get(7)): #(cap.isOpened()): 
    ret, frame = cap.read() 
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    cv2.imshow('frame',gray) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

답변

2

그 빈 프레임에 일을하려고 다음 영상이 끝난 후 프레임을 읽고 (및 빈 프레임을 받고), 그리고 있기 때문에 첫 번째 방법은 대부분 실패 허용되지 않습니다. 수표를 추가하여 가져온 프레임이 비 었는지 확인할 수 있습니다.

while(cap.isOpened()): 
     ret, frame = cap.read() 
     if frame is None: 
      break 

이 문제를 해결해야한다고 생각합니다.

관련 문제