我是python的初学者。 我想从avi文件中读取框架,然后编写以下代码。当我运行此代码时,我得到了像Segmentation fault(core dumped)这样的消息。 有谁能告诉我原因。 我确信我已经使用了avi文件的正确根目录。 我试图通过ipython找到问题。我发现当到达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()
答案 0 :(得分:1)
条件更改
while(ret):
试试这个!!
****更正**** 在while循环之前添加以下语句:ret,frame = cap.read() .read()将返回两个参数:frame和boolean:' True'如果读取文件中有任何框架或“假”'如果没有框架。这种方式' ret'将被初始化并可用于' while()'。 现在,while()循环将一直运行到语句" ret,frame = cap.read()"在循环中返回参数。