Python OpenCv分段错误

Python OpenCv分段错误,python,opencv,Python,Opencv,我正在使用theano和opencv在keras上运行一个简单的网络。执行cvtColor()方法时出现分段错误。 代码段: if __name__ == '__main__': cap = cv2.VideoCapture(0) if not cap: print "!!! Failed VideoCapture: unable to open device 0" sys.exit(1) cascade_path = "~/opencv-2.

我正在使用theano和opencv在keras上运行一个简单的网络。执行cvtColor()方法时出现分段错误。 代码段:

if __name__ == '__main__':
    cap = cv2.VideoCapture(0)
    if not cap:
       print "!!! Failed VideoCapture: unable to open device 0"
       sys.exit(1)
    cascade_path = "~/opencv-2.4.13.2/data/haarcascades/haarcascade_frontalface_default.xml"
    model = Model()
    model.load()
    while True:
        pdb.set_trace()
        _, frame = cap.read()


        frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)


        cascade = cv2.CascadeClassifier(cascade_path)
以下是调试信息:

Model Loaded.
>
-> _, frame = cap.read()
(Pdb) n
-> frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
(Pdb) list
 16         while True:
 17             pdb.set_trace()
 18             _, frame = cap.read()
 19     
 20            
 21  ->         frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
 22     
 23            
 24             cascade = cv2.CascadeClassifier(cascade_path)
 25     
 26            
(Pdb) n
Segmentation fault
它在调用cv2.cvtColor()时崩溃。帧变量需要
(Pdb)frame.size 921600

我甚至使用了
cv2.imshow(“color\u image”,frame)
来显示彩色边框及其正确显示。但是,一旦我把它转换成灰度,它就崩溃了

目前我正在使用OpenCV2.4。昨天,相同的代码在OpenCV3.2上正常工作。由于某些原因,我不得不降级opencv库

有什么解决这个问题的建议吗


谢谢。

这肯定是与openCv3.2相关的问题。我不能说这是opencv中的错误还是库不匹配。我安装了OpenCV3.0,一切都按照预期运行。

在OpenCV2.4中。*您应该使用:

cv2.cvtColor(frame, cv2.cv.CV_BGR2GRAY)

这段代码没有本质上的错误。我猜是降级害死了你。我在OpenCV 3.0中运行了类似的代码,它很好。也许文档中关于2.4的某些内容不可行。