【小白推荐】安装OpenCV4.8 系统 Ubuntu 22.04LST Linux.

先看一下目录,知道大致的流程!

文章目录

安装OpenCV

安装依赖

shell 复制代码
sudo apt update && sudo apt upgrade
sudo apt install cmake ninja-build build-essential libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# 下载安装工具
sudo apt install wget unzip git -y 

下载源码

shell 复制代码
# 找个位置
mkdir ~/installer && cd ~/installer

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip #解压

# 可以一起下载contrib
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
unzip opencv_contrib.zip

配置与构建

shell 复制代码
# 创建build文件夹
mkdir build && cd build

# 配置
cmake ../opencv-4.x \
-G Ninja \ # 可以选择ninja构建
-D CMAKE_INSTALL_PREFIX=~/CLionProjects/detect/opencv \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules\
# 指定安装到项目当中,可以修改为你的项目路径

 

# 构建
make -j${nproc} #j开启多线程指定可用核心数
#ninja -j16 # 也可以使用ninja更快

安装

刚刚配置的时候指定了安装目录,如果想修改安装目录,删除build。重新上一步。

卸载方法就是直接删除安装目录的文件。

shell 复制代码
ninja install

测试

编写CMakeListx.txt

我使用的CLion. 在项目根目录下新建CMakeLists.txt编写。

cmake 复制代码
cmake_minimum_required(VERSION 3.22)
project(detect)
set(CMAKE_CXX_STANDARD 17)

# 设置opencv路径,填写配置文件的路径
set(OpenCV_DIR ${PROJECT_SOURCE_DIR}/opencv/lib/cmake/opencv4)

# 然后利用find就可以搜到项目中的opencv
find_package(OpenCV REQUIED) 
# find配置文件后可以使用opencv的各种变量

# 包含头文件
include_directories(${OpenCV_INCLUDE_DIRS})

#### >>>>>>>>>
# 添加源代码和头文件
file(GLOB SOURCES "src/*cpp" "inlcude/*cpp")
# 定义可执行文件
add_executable(detect ${SOURCES}) 
#### <<<<<<<<<<

# 链接Opencv 库
target_link_libraries(detect ${OpenCV_LIBS})

编写测试代码

先点击右上角build,然后run

c++ 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

int main(int argc, char* argv[]) {
		printf("Hello world\n");
		std::cout << "OpenCV version: " << CV_VERSION << std::endl;
		return 0;
}
相关推荐
xuhe211 分钟前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_27 分钟前
【Linux】进程信号(下半)
linux·运维·服务器
liuniu081828 分钟前
VMware虚拟机安装ubuntu2022
ubuntu·ros
酉鬼女又兒1 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面1 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
zl_dfq1 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke2331 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
AZ996ZA1 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
_OP_CHEN1 小时前
【Linux系统编程】(二十八)深入 ELF 文件原理:从目标文件到程序加载的完整揭秘
linux·操作系统·编译·c/c++·目标文件·elf文件
xfddlm2 小时前
边缘计算_ubuntu环境下使用瑞芯微RK3576NPU推理LLM
人工智能·ubuntu·边缘计算