# 在 makefile中,修改OPENCV=1
1.查看有无opencv 及版本
在终端输入
pkg-config --modversion opencv
因为,我之前装了ros,所以,存在2.4.9.1版本。 # 在这里注意 我把 sudo gedit ~/.bashrc 中的ros相关的两行给注释了,记得注释回来。
# 但是编译opencv 的 yolov4,官方推荐 4.x,3.x,2.4.x,但是我的这个版本是不行的,编译一直报错,所以,重新安装了 opencv4 版本。
2. ubuntu装opencv4
注意,opencv 4.x 不是默认生成opencv.pc 的。
1)安装依赖项
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
2)下载自己需要的版本
附上 4.1.0版本百度网盘地址:
解压后放在自己想放的目录下,在opencv-4.1.0 目录下 建立build 文件夹, 进入 build 文件夹下,打开终端
3)cmake
基本编译命令是 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
一般来说,opencv 4.x 不会自动生成 opencv.pc , 所以需要在基本命令的基础上 加入OPENCV_GENERATE_PKGCONFIG=ON 也就是:
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
4)编译
还是在 build 文件夹下,
sudo make 或者 sudo make -j4/8
5)安装
sudo make install
对应卸载就是
sudo make uninstall
3. 配置opencv环境
1)指定安装路径
/user/local/bin 是opencv安装路径也就是makefile中指定的安装路径。
sudo gedit /etc/ld.so.conf
在文件末尾插入
/usr/loacal/lib
更新一下配置
sudo ldconfig
2)修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
文件末尾插入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
更新一下:
source /etc/bash.bashrc
4. 检查是否安装成功
pkg-config --modversion opencv
输出版本号即成功。
理论上是这样的,但实际操作中,因为,我已经有了opencv 2.4.9.1 版本。所以,验证的版本还是这个2.4.9.1.
2-4 部分参考自 https://blog.csdn.net/public669/article/details/99044895 ,感谢!
5.多版本opencv安装
#应该是 前面没有创建 opencv.pc
1)创建opencv4.pc
cd /usr/local/lib # 安装路径
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv4.pc # touch 是新建的意思
2)写入 opencv4.pc
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version:4.1.0
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
# 最后一行的内容可能跟版本有关,可以对照 usr/local/lib 看
# tips ,如何打开 /usr , 直接点击 计算机 即可 。
3)创建完以后,将opencv路径添加到 bashrc 中,这一步我也不知道有没有用 。囧 。
sudo gedit ~/.bashrc
添加:
export PKG_CONFIG_LIBDIR=/usr/local/arm/opencv342arm/lib/pkgconfig
export PKG_CONFIG_PATH
//#PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/arm/opencv342arm/lib/pkgconfig
//注意:LIBDIR比PATH优生级高,一般情况可以用PATH,也就是注解掉的那段。
测试:
pkg-config --libs opencv4
pkg-config --cflags opencv4
pkg-config --modversion opencv4
还有一种,测试 opencv 版本的,但是不太准。
opencv_version
这个命令,在我安装完成以后,就是4.1.0,但是编译还是报错,仅供参考。还是 pkg-config --modversion opencv 系列命令靠谱。
第5部分参考自:
https://blog.csdn.net/PecoHe/article/details/97476135
https://blog.csdn.net/weixin_41921520/article/details/97927633
https://blog.csdn.net/oopooo/article/details/97491693
https://blog.csdn.net/Hanghang_/article/details/89340243
感谢!!!
# 以上有矛盾的地方,我也是改了好多地方,把 yolov4 opencv 编译成功了.
6. 应用
连的是手机端的摄像头,在手机上下载ip摄像头app.我是google play 下载的.
使用:
点击最后 开启服务器 ,
根据 ip 地址更改命令中的ip地址.
在终端输入命令:
1) 手机电脑同 wifi 或者 usb 连接. 2) 注意修改ip地址.
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights http://192.168.1.104:8080/video?dummy=param.mjpg -i 0