当前位置: 首页 > article >正文

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

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

文章目录

  • 安装OpenCV
    • 安装依赖
    • 下载源码
    • 配置与构建
    • 安装
  • 测试
    • 编写CMakeListx.txt
    • 编写测试代码

安装OpenCV

安装依赖

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 

下载源码

# 找个位置
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


配置与构建

# 创建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。重新上一步。

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

ninja install

测试

编写CMakeListx.txt

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

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

#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;
}

http://www.kler.cn/a/158718.html

相关文章:

  • stm32启动过程解析startup启动文件
  • 【学习笔记】科学计算
  • Windows环境GeoServer打包Docker极速入门
  • 刘艳兵-DBA036-Oracle数据库中的触发器(Trigger)可以在以下哪种情况下自动执行?
  • 鸿蒙实现 web 传值
  • Uniapp 引入 Android aar 包 和 Android 离线打包
  • 第17章 匿名函数
  • 【PTA题目】6-1 猴子吃桃-递归 分数 10
  • 6.5 Windows驱动开发:内核枚举PspCidTable句柄表
  • 优化汽车产业用户营运:精细化策略
  • 使用C语言创建高性能网络爬虫IP池
  • 语义分割网络FCN
  • SQL Sever 基础知识 - 限制行数
  • NLP/Natural Language Processing
  • 春秋云镜ED01-CMS v20180505 存在任意文件上传漏洞
  • 【面试】Java最新面试题资深开发-JVM第一弹
  • 基于机器深度学习的交通标志目标识别
  • 智能故障诊断期刊推荐【英文期刊】
  • 华为OD机试真题-CPU算力分配-2023年OD统一考试(C卷)
  • 《微信小程序开发从入门到实战》学习四十一
  • 广域网(WAN)设备通信过程(通信流程、通信步骤、通信顺序、设备通信、主机通信)(MAC地址在本地链路中的作用)跳跃(hop)
  • 【算法思考记录】力扣2477. 到达首都的最少油耗【Java,深度优先搜索】
  • LoadBalancer将服务暴露到外部实现负载均衡metallb-layer2模式配置介绍
  • 手机大厂必备测试技能有哪些?CTS 兼容测试首当其冲
  • Jinja2使用Layui报 “d is not defined“
  • ASEM工控机维修工业电脑控制器维修PB3400