Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Opencv分段错误视频捕获_Python_Opencv - Fatal编程技术网

Python Opencv分段错误视频捕获

Python Opencv分段错误视频捕获,python,opencv,Python,Opencv,设置: Python 2.7.12 OpenCV: 3.4.0 Ubuntu 16.04.4 LTS 说明: Python 2.7.12 OpenCV: 3.4.0 Ubuntu 16.04.4 LTS 我编写了一个简单的python程序,通过RTSPURL读取相机。有关守则如下: import cv2 url = "rtsp://admin:admin@192.168.0.1:554" vcap = cv2.VideoCapture(url) if (vcap.isOpened())

设置

Python 2.7.12
OpenCV: 3.4.0
Ubuntu 16.04.4 LTS
说明

Python 2.7.12
OpenCV: 3.4.0
Ubuntu 16.04.4 LTS
我编写了一个简单的python程序,通过RTSPURL读取相机。有关守则如下:

import cv2

url = "rtsp://admin:admin@192.168.0.1:554"

vcap = cv2.VideoCapture(url)

if (vcap.isOpened()):
    ret, image = vcap.read()
我的代码在以下行崩溃:
vcap=cv2.VideoCapture(url)

我使用gdb运行了一个回溯跟踪,下面是输出:

#0  0x00007fff9f3a9b70 in ?? () from /usr/lib/x86_64-linux-gnu/libltdl.so.7
#1  0x00007fff9f3ab874 in ?? () from /usr/lib/x86_64-linux-gnu/libltdl.so.7
#2  0x00007fff9f3ac175 in lt_dlopenadvise () from /usr/lib/x86_64-linux-gnu/libltdl.so.7
#3  0x00007fff9f3ac240 in lt_dlopenext () from /usr/lib/x86_64-linux-gnu/libltdl.so.7
#4  0x00007fffd3383b0e in gp_abilities_list_load_dir ()
   from /usr/lib/x86_64-linux-gnu/libgphoto2.so.6
#5  0x00007fffd3383de9 in gp_abilities_list_load () from /usr/lib/x86_64-linux-gnu/libgphoto2.so.6
#6  0x00007fffd338645c in gp_camera_autodetect () from /usr/lib/x86_64-linux-gnu/libgphoto2.so.6
#7  0x00007fffee0c5765 in cv::gphoto2::DigitalCameraCapture::initContext() ()
   from /usr/local/lib/libopencv_videoio.so.3.4
#8  0x00007fffee0ccd89 in cv::gphoto2::DigitalCameraCapture::DigitalCameraCapture(cv::String const&)
    () from /usr/local/lib/libopencv_videoio.so.3.4
#9  0x00007fffee0cd2e6 in cv::createGPhoto2Capture(cv::String const&) ()
   from /usr/local/lib/libopencv_videoio.so.3.4
#10 0x00007fffee0a171f in cv::VideoCapture::open(cv::String const&, int) ()
   from /usr/local/lib/libopencv_videoio.so.3.4
#11 0x00007fffee0a26cb in cv::VideoCapture::VideoCapture(cv::String const&) ()
   from /usr/local/lib/libopencv_videoio.so.3.4
#12 0x00007ffff5864e27 in pyopencv_cv_VideoCapture_VideoCapture(pyopencv_VideoCapture_t*, _object*, _object*) () from /usr/local/lib/python2.7/dist-packages/cv2.so
#13 0x00000000004aa9ab in type_call.lto_priv () at ../Objects/typeobject.c:765
#14 0x00000000004c15bf in PyObject_Call (kw=0x0, arg=(u'rtsp://admin:dsal12345@192.168.1.104:554',), 
    func=<type at remote 0x7ffff5e47200>) at ../Objects/abstract.c:2546
#15 do_call (nk=<optimized out>, na=<optimized out>, pp_stack=0x7ffef64524c0, 
    func=<type at remote 0x7ffff5e47200>) at ../Python/ceval.c:4567
#16 call_function (oparg=<optimized out>, pp_stack=0x7ffef64524c0) at ../Python/ceval.c:4372
#17 PyEval_EvalFrameEx () at ../Python/ceval.c:2987
#18 0x00000000004c136f in fast_function (nk=<optimized out>, na=<optimized out>, n=1, 
    pp_stack=0x7ffef64525e0, func=<function at remote 0x7fff89a6caa0>) at ../Python/ceval.c:4435
#19 call_function (oparg=<optimized out>, pp_stack=0x7ffef64525e0) at ../Python/ceval.c:4370
#20 PyEval_EvalFrameEx () at ../Python/ceval.c:2987
#21 0x00000000004b9ab6 in PyEval_EvalCodeEx () at ../Python/ceval.c:3582
#22 0x00000000004d55f3 in function_call.lto_priv () at ../Objects/funcobject.c:523
#23 0x00000000004a577e in PyObject_Call () at ../Objects/abstract.c:2546
#24 0x00000000004bed3d in ext_do_call (nk=<optimized out>, na=<optimized out>, 
    flags=<optimized out>, pp_stack=0x7ffef6452868, func=<function at remote 0x7fff55a78c80>)
    at ../Python/ceval.c:4664
#25 PyEval_EvalFrameEx () at ../Python/ceval.c:3026
#0 0x00007fff9f3a9b70英寸??()来自/usr/lib/x86_64-linux-gnu/libltdl.so.7
#1 0x00007fff9f3ab874英寸??()来自/usr/lib/x86_64-linux-gnu/libltdl.so.7
#2 0x00007fff9f3ac175,位于/usr/lib/x86_64-linux-gnu/libltdl.so.7中的lt_dlopenadvision()中
#3 0x00007fff9f3ac240,位于/usr/lib/x86_64-linux-gnu/libltdl.so.7的lt_dlopenext()中
#4 0x00007fffd3383b0e在总包能力列表加载目录中()
来自/usr/lib/x86_64-linux-gnu/libgphoto2.so.6
#5 0x00007fffd3383de9位于/usr/lib/x86\u 64-linux-gnu/libgphoto2.so.6的gp\u能力列表\u加载()中
#6 0x00007fffd338645c,位于/usr/lib/x86\u 64-linux-gnu/libgphoto2.so.6中的gp_camera_autodetect()中
#cv::gphoto2::DigitalCameraCapture::initContext()中的7 0x00007fffee0c5765
from/usr/local/lib/libopencv_videoio.so.3.4
#cv::gphoto2::DigitalCameraCapture::DigitalCameraCapture中的8 0x00007fffee0ccd89(cv::字符串常量&)
()来自/usr/local/lib/libopencv_videoio.so.3.4
#cv::createGPhoto2Capture(cv::String const&)中的9 0x00007fffee0cd2e6
from/usr/local/lib/libopencv_videoio.so.3.4
#cv::VideoCapture::open(cv::String const&,int)()中的10 0x00007fffee0a171f
from/usr/local/lib/libopencv_videoio.so.3.4
#cv::VideoCapture::VideoCapture(cv::String const&)中的11 0x00007fffee0a26cb
from/usr/local/lib/libopencv_videoio.so.3.4
#12 0x00007FF5864E27,位于/usr/local/lib/python2.7/dist-packages/cv2.so的pyopencv_-cv_-VideoCapture_-VideoCapture(pyopencv_-VideoCapture_-t*,_-object*,_-object*)中
#位于../Objects/typeobject.c:765的类型为“”call.lto_priv()的13 0x00000000004aa9ab
#PyObject_调用中的14 0x00000000004c15bf(kw=0x0,arg=(u'rtsp://admin:dsal12345@192.168.1.104:554',), 
func=)位于../Objects/abstract.c:2546
#15 do_调用(nk=,na=,pp_堆栈=0x7ffef64524c0,
func=)位于../Python/ceval.c:4567
#16在../Python/ceval.c:4372处调用函数(oparg=,pp_stack=0x7ffef64524c0)
#17 PyEval_EvalFrameEx()位于../Python/ceval.c:2987
#fast_函数中的18 0x00000000004c136f(nk=,na=,n=1,
pp_stack=0x7ffef64525e0,func=)位于../Python/ceval.c:4435
#19在../Python/ceval.c:4370处调用函数(oparg=,pp_stack=0x7ffef64525e0)
#20 PyEval_EvalFrameEx()位于../Python/ceval.c:2987
#PyEval_evalcodex()中的21 0x00000000004b9ab6位于../Python/ceval.c:3582
#22 0x00000000004d55f3位于../Objects/funcobject.c:523的函数_call.lto_priv()中
#位于../Objects/abstract.c:2546的PyObject_调用()中的23 0x00000000004a577e
#24 0x00000000004bed3d在ext_do_call中(nk=,na=,
flags=,pp_stack=0x7ffef6452868,func=)
位于../Python/ceval.c:4664
#25 PyEval_EvalFrameEx()位于../Python/ceval.c:3026
潜在的解决方案是什么?重新安装opencv


任何建议都是有用的。

更激进一些,但试试蟒蛇3?在另一个库绑定中尝试同样的例子,比如java或C++?RTSP URL是否正确?e、 g.你能使用该url访问VLC内的摄像机流吗?你的if语句中也有一个输入错误-应该是“ret,image=vcap.read()”当你有cv2.VideoCapture(0)时,它能工作吗?因为,如果它运行,那就意味着opencv正在工作。我想你必须解码这个网址。这可能很有用。@Wool谢谢你的打字错误。是的,url正在运行。即使不是,该方法也不应导致崩溃。它应该保持vcap对象未打开。