下载OpenCV
链接:版本 - OpenCVhttps://opencv.org/releases/
我用的是4.5.0版本,点击sources下载
2.可以在终端下载,输入指令
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
unzip opencv.zip
mv opencv-master opencv
或者:
git clone https://github.com/opencv/opencv.git
git -C opencv checkout master
按照官方的文档配置,看不懂可以翻译
下载之后进行解压,并重新命名为 opencv
配置和构建:
确保你已经将镜像源换成国内的
先安装一些依赖的库
sudo apt update && sudo apt install -y cmake g++ wget unzip
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
第一步
在opencv中,新建并进入build文件:(确保opencv在主目录中)
ls
cd opencv
mkdir build
cd build
第二步
使用cmake配置opencv
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..
或者:
cmake /home/用户名/opencv
说明:
-D OPENCV_GENERATE_PKGCONFIG=YES
OpenCV4以上默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能
第三步
用make进行编译(大约需要半小时)
make -j4
说明:
-j4中的4指同时使用4个进程,可以根据电脑的进程数调整此值
安装:
用make进行安装
sudo make install
安装的位置
配置动态库环境
1.打开文件(可能为空文件):
sudo gedit /etc/ld.so.conf
2.在该文件末尾加上OpenCV的lib路径,保存退出:
/usr/local/lib
3.使配置的路径生效:
sudo /sbin/ldconfig -v
配置pkg-config环境
opencv4.pc文件的默认路径:/usr/local/lib/pkgconfig/opencv4.pc若此目录下没有,可以使用以下命令搜索 sudo find / -iname opencv4.pc
sudo gedit /etc/profile.d/pkgconfig.sh
在文件中加入下面一行代码
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
保存并退出,然后source,使生效
source /etc/profile
完成
在QT上测试:
新建名为test 的文件
添加环境
Qt的工程文件是.pro文件,我们在里面添加OpenCV的头文件和库的路径。
INCLUDEPATH +=/usr/local/include/ \
/usr/local/include/opencv4/ \
/usr/local/include/opencv4/opencv2
LIBS +=/usr/local/lib/lib*
在main.cpp中输入测试代码
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = Mat::zeros(300, 300, CV_8UC3);
circle(image, Point(150, 150), 100, Scalar(0, 255, 0), -100);
circle(image, Point(150, 150), 50, Scalar(0, 0, 255), -100);
imshow("circle", image);
waitKey(0);
return 0;
}
运行, 图片显示成功
opencv环境已经配置好,等下次用到就在工程文件.pro那里添加OpenCV的头文件和库的路径。
如果遇到错误:
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config_绿竹巷人的博客-CSDN博客
在VScode上测试:
待续.....