python - OpenCv代码抛出分割错误(核心转储)Ubuntu 14.04

标签 python opencv ubuntu-14.04

我正在从官方文档http://docs.opencv.org/trunk/doc/py_tutorials/py_gui/py_video_display/py_video_display.html#display-video学习opencv

import numpy as np        
import cv2    

cap = cv2.VideoCapture(0)      
while(True):    
    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()

给我错误"Segmentation fault (core dumped)"谁能告诉我为什么会这样以及如何解决该问题?
提前致谢。

最佳答案

也许有些迟了,但是“user3154952”说的是正确的,当您使用C++ API时,不需要使用release方法,它已经在视频捕获Destructor中。

这是我测试并正常工作的代码:

import sys
import cv2

cap = cv2.VideoCapture(0)

while(1):
    ret,frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == 27:
        break

cv2.destroyAllWindows()

更新:
我一直在弄乱我的ps3眼睛,我已经意识到,使用那台相机,您会因为仅使用destroyAllWindows方法而遇到了分割错误,以解决我用release方法替换了destroyAllWindows方法并且工作正常的问题,我没有确切知道为什么会发生这种情况,我只是在分享以防万一有人遇到了这个问题。我希望这会有所帮助。

关于python - OpenCv代码抛出分割错误(核心转储)Ubuntu 14.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26100516/

相关文章:

php - 无法在服务器上解析常量

python - 使用命令 `osascript -e ' quit app "Quicktime Player 7"'` 与 python

python django id 转十六进制

c++ - 无法使用opencv cuda调用

c++ - libcURL POST 分段上传(带缓冲图像)返回 HTTP 400

pdf - wkhtmltopdf和汉字

python - 从 Scons 控制 distutils

python - Emacs Python 错误延迟

visual-studio-2008 - 在不同的计算机上运行 OpenCV 项目 exe

linux - "apt update"和 "apt-get update"和有什么区别?