【问题标题】:OpenCV Segmentation fault for VideoCaptureVideoCapture 的 OpenCV 分段错误
【发布时间】:2017-06-26 00:23:43
【问题描述】:

我将 OpenCV2 与 Python 一起使用了一段时间,但我不明白为什么它在视频捕获中不起作用。
例如,此代码有效:

>>> import cv2
>>> a = cv2.imread('./pic_video0_145.jpg')
>>> a.shape
(416, 576, 3)

但它不会捕获视频并退出 Python(或 Jupyter Notebook 中的死内核):

>>> import cv2
>>> cap = cv2.VideoCapture('./video6.avi')
Segmentation fault: 11 

它曾经可以工作,但我不记得对 OpenCV 进行了更改(可能是 MacPorts 的更新)。

更多信息:
我正在使用 Mac OS X 10.12
版本:3.2.0
与 MacPorts 一起安装:opencv @3.2.0_1+contrib+debug+python35+qt4+tbb (active)

非常感谢您的帮助。

【问题讨论】:

  • 您尝试过其他视频吗?还是使用网络摄像头?也许重新安装opencv?
  • 是的,我尝试使用 Jupyter Notebook 中的多个视频,从脚本和 iPython 启动。不,我没有尝试使用网络摄像头,因为我根本不使用它。我宁愿不重新安装openCV,除非它是唯一的解决方案......
  • 其他视频是否有效或失败?通常,分段错误是关于超出范围的内存访问......所以它可能是一个错误,或者可能是一些编解码器问题?
  • 不,其他视频都失败了...我刚刚尝试了一个短视频和 8gb 的可用内存,但我仍然有错误

标签: python macos opencv macports


【解决方案1】:

最后,我用 MacPorts 卸载并重新安装了 OpenCV2(正确安装)。

sudo uninstall opencv
sudo port install opencv +debug +python35 +qt4 +tbb +contrib 

# To use openCV in a virtual env
cp /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so VIRTUALENV_PATH/lib/python3.5/site-packages/

我也需要更新 numpy (pip install numpy -U),它成功了。

【讨论】:

    猜你喜欢
    • 2013-06-22
    • 2012-08-30
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多