1、(test:24541): Gtk-WARNING **: 09:37:23.930: cannot open display。
在putty等软件上,运行调整了部分代码的yolov5代码时,出现了以上问题。
#直接在shell上面敲:
export DISPLAY=:0.0
xhost +LOCAL
2、cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can‘t find starting number
同事自己弄了一个摄像头,我也可以在VLC上看到图像,但就是cv2报错。
解决链接:解决方法
结论:cv::VideoCapture 读取视频时,视频文件名需包含任意’0‘ - ’9‘数字字符组合,如Test01.avi。
这是这篇文章的结论。我看了一下同事给我的链接:rtsp://xxx:8554/lzk
然后我就改成了rtsp://xxx:8554/lzk01就没有这个问题了。
3、GStreamer warning: GStreamer: pipeline have not been created
这个是在解决了问题2之后遇到的。目前没有找出具体原因,大概也是链接的问题。为什么这么说?因为我在同样的环境下,成功读取到了海康摄像头的rtsp流。。。。我的建议是换专业厂家的摄像头,别自己搞。。。
不要去安装什么ffmpeg。直接用cv2就能打开rtsp流,我是看了别人写的,就去安装了ffmpeg,然后重新编译opencv。但是我不会编译,就按网上教程弄,结果弄出很多岔子,不过最后还是成功编译好了opencv,但还是问题2的报错。
建议跟着YOLOv5的最低要求的版本安装库,别按了比较新的版本的库,弄出一堆麻烦事,最后才发现要降低版本。如果pip没有,自己到网上直接找最低版本的安装包就行。我这个是arm的边缘设备,pip找不到一些库,只能自己找。
4、Package fuse was not found in the pkg-config search path.Perhaps you should add the directory containing `opencv4.pc’
编译opencv的时候遇到的。我的建议,就是赶紧把改了的地方改回去,然后用pip安装opencv。pip安装的cv2一样能工作,何苦要弄得那么麻烦。
当然,如果你非要这么安装,解决链接:链接,请直接跳到5.3以及后面的内容看解决方法。
如果自己已经用pip装好了cv2,但还是傻傻地想自己编译(因为看到某些文章说要安装ffmpeg,然后重新安装编译opencv),但import的cv2一直显示旧版本,请看链接,请在python3中输出的sys.path中,找到旧版本的cv2的位置。(自己一个一个文件夹里面看有没有cv2文件夹,删掉或者改名即可),然后跟着教程走吧。
5、Problem with the CMake installation, aborting build. CMake executable is cmake
Command “/usr/bin/python3 -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-1u4etx6q/cmake/setup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, file, ‘exec’))” install --record /tmp/pip-89jo1dt3-record/install-record.txt --single-version-externally-managed --compile --user --prefix=” failed with error code 1 in /tmp/pip-build-1u4etx6q/cmake/
直接sudo pip3 install --upgrade pip