4

I am a beginner to python. I want to read frame from avi files and I write following code.When I run this code I get the message like Segmentation fault (core dumped). Could anyone tell me the reason. I am sure I have used the right root of the avi file. I try to find the problem by ipython. I found the error occured when reach the line of ret, frame = cap.read().

import numpy as np
import cv2

cap = cv2.VideoCapture('/home/sunjia/code/night_goto.avi')

while(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

cap.release()
cv2.destroyAllWindows()
1
  • 3
    It would be helpful if you posted the error message you received as well Commented Dec 8, 2015 at 0:03

1 Answer 1

1

Change While condition

   while(ret):

Try this !!

**** Correction **** before while loop add this statement: ret, frame = cap.read() .read() will return two parameters: the frame and boolean: 'True' if there is any frame in the read file or 'False' if there is no frame. This way 'ret' will be initialized and can be used for 'while()'. Now, the while() loop will run till the statement "ret, frame = cap.read()" in the loop returns parameters.

Sign up to request clarification or add additional context in comments.

1 Comment

Hi and thank you for your effort! Can you please explain why you think this will solve the problem? (Also note that while should be lower case in Python and that ret should be initialized.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.