https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
为了快速安装依赖软件,先把源换为国内的,我这里用的是阿里云
先备份源配置:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk
-修改/etc/apt/sources.list为以下内容:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
如果阿里云的源更新太慢,可以试试这个:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
更新:
sudo apt-get update
执行以下命令安装所有应用,如果有个别提示失败的可以多试几次:
sudo apt-get install -y unzip build-essential curl cmake cmake-gui git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
执行以下命令即可下载所有源码、解压、摆放到合适的位置:
curl -fL -o opencv-4.1.1.zip https://codeload.github.com/opencv/opencv/zip/4.1.1; <br /> unzip opencv-4.1.1.zip; <br /> rm -rf opencv-4.1.1.zip; <br /> curl -fL -o opencv_contrib-4.1.1.zip https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.1.1; <br /> unzip opencv_contrib-4.1.1.zip; <br /> rm -rf opencv_contrib-4.1.1.zip; <br /> mv opencv_contrib-4.1.1 opencv_contrib; <br /> mv opencv_contrib opencv-4.1.1/; <br /> mkdir opencv-4.1.1/build
在opencv-4.1.1目录下执行cmake-gui ..即可启动cmake-gui页面,开始图形化配置
我这里opencv-4.1.1文件夹的绝对路径是/home/will/opencv-4.1.1,所以下图红框1就是源码绝对路径,红框2是源码文件夹内的build子目录,配置完毕后,点击红框3开始初始化配置:
点击上图红框3中的按钮后,弹出的页面选择Unix Makefiles,然后开始配置:
此时出现了可以用来编辑的配置项,接下来开始配置:
等配置完成后,点击下图红框中的Generate按钮开始生成配置项:
等到出现下图红框中的提示,表示配置完成并且配置项已生成:
进入目录opencv-4.1.1/build执行以下命令即可开始编译:
make -j8
眼见着CPU就上去了:
执行sudo make install安装到当前系统中(注意要加sudo)
至此,安装完成,开始系统配置
执行以下命令编辑文件(如果没有就创建):
sudo vi /etc/ld.so.conf.d/opencv.conf
在打开的opencv.conf文件尾部增加以下内容:
/usr/local/lib
执行配置:
sudo ldconfig
执行以下命令编辑文件(如果没有就创建):
sudo vi /etc/bash.bashrc
在打开的bash.bashrc文件尾部增加以下内容:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
至此配置完成,退出控制台,再重新打开一个,执行命令pkg-config --modversion opencv4,注意是opencv4,可以看到opencv的版本号:
will@hp:~$ pkg-config --modversion opencv4
4.1.1
接下来写个helloworld工程验证opencv可用
我这里用的是CLion来创建C++项目:
CMakeLists.txt内容如下,依赖了OpenCV的资源:
cmake_minimum_required(VERSION 3.20)
project(helloworld)
set(CMAKE_CXX_STANDARD 14)
find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(helloworld main.cpp)
target_link_libraries(helloworld ${OpenCV_LIBS})
main.cpp如下,功能是读取本地图片,创建一个窗口展示这个图片:
#include
#include
using namespace std;
using namespace cv;
int main() {
Mat mat = imread("/home/will/temp/202110/30/111.png");
if(!mat.data) {
cout<<"Image not exists!";
return -1;
}
namedWindow("src", WINDOW_AUTOSIZE);
imshow("[src]", mat);
waitKey(0);
return 0;
}
编译运行,如下图,本地图片显示成功:
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界…
手机扫一扫
移动阅读更方便
你可能感兴趣的文章