分割错误(核心转储)python

问题描述:

我是python的初学者。 我想从avi文件中读取帧,然后编写下面的代码。当我运行此代码时,我收到类似Segmentation fault(核心转储)的消息。 有谁能告诉我理由。 我确定我使用了avi文件的正确根。 我尝试通过ipython查找问题。当到达ret行,frame = cap.read()时发现错误。分割错误(核心转储)python

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() 
+3

如果您发布了您收到的错误消息,这将有所帮助 –

变化,而条件

while(ret): 

试试这个!

****更正**** while while循环添加此语句:ret,frame = cap.read() .read()将返回两个参数:frame和boolean:'True'if there是读取文件中的任何帧,如果没有帧,则为'False'。 'ret'这种方式将被初始化,并可用于'while()'。 现在,while()循环将运行,直到循环中的语句“ret,frame = cap.read()”返回参数。

+0

嗨,谢谢你的努力!你能解释为什么你认为这会解决问题吗? (还要注意'while'在Python中应该是小写,并且'ret'应该被初始化。) – kazemakase