【问题标题】:Segmentation fault (core dumped) python分段错误(核心转储)python
【发布时间】:2015-12-07 23:57:35
【问题描述】:

我是 python 的初学者。 我想从 avi 文件中读取帧并编写以下代码。当我运行此代码时,我收到类似分段错误(核心转储)的消息。 谁能告诉我原因。 我确定我使用了 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()

【问题讨论】:

  • 如果您也发布收到的错误消息会很有帮助

标签: python opencv


【解决方案1】:

更改 While 条件

   while(ret):

试试这个!!

**** 更正 **** 在 while 循环之前添加以下语句: ret, frame = cap.read() .read() 将返回两个参数:帧和布尔值:如果读取文件中有任何帧,则返回“True”,如果没有帧,则返回“False”。这样 'ret' 将被初始化并可用于 'while()'。 现在,while() 循环将一直运行,直到循环中的语句“ret, frame = cap.read()”返回参数。

【讨论】:

  • 您好,感谢您的努力!你能解释一下为什么你认为这会解决问题吗? (另请注意,while 在 Python 中应为小写,ret 应初始化。)
猜你喜欢
  • 2015-02-27
  • 2020-04-09
  • 2015-06-25
  • 2021-06-03
相关资源
最近更新 更多