Ubuntu系统下编译OpenCV4.8源码

news2025/1/11 10:54:55

OpenCV4.8源码编译与安装

其实很简单,只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。

01下载OpenCV4.8源码包

在Ubuntu系统化下打开终端命令行窗口,执行下面的命令行即可

wget -o opencv4.8.zip https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip

下载完成以后

unzip -d opencv4.8 opencv4.8.zip

02安装第三方库支持

直接执行下面的命令行即可

sudo apt install -y g++ cmake make git libgtk2.0-dev pkg-config

03创建Build目录执行编译与安装

首先运行

cd opencv4.8
mkdir -p build && cd build

执行完成以后直接运行下面的命令行:

cmake ../opencv

在执行该命令行生成安装文件

make -j4

22226bb2-749d-11ee-939d-92fbcf53809c.png

2232eda2-749d-11ee-939d-92fbcf53809c.png

使用下面的命令行完成安装

sudo make install

C++代码测试

运行一个简单的OpenCV图像显示的程序验证OpenCV4.8 C++开发环境的正确性。重新打开一个终端命令行窗口,运行下面的命令行:

mkdir opencv480_test
nano CMakeLists.txt

然后把下面的脚本粘贴进去

cmake_minimum_required(VERSION 2.8)
project( OpenCV480_Test )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( OpenCV480_Test helloworld.cpp )
target_link_libraries( OpenCV480_Test ${OpenCV_LIBS} )

按Ctrl+X退出,选择y保存 然后继续运行

nano helloworld.cpp

把下面的代码粘贴进去,保存以后退出。

#include  
#include  
using namespace cv; 
int main(int argc, char** argv) 
{ 
    Mat image = imread("lena.jpg"); 
    if (image.empty()) { 
        printf("No image data 
"); 
        return -1; 
    } 
    namedWindow("OpenCV480_Test", WINDOW_AUTOSIZE); 
    imshow("OpenCV480_Test", image); 
    waitKey(0); 
    return 0; 
}

执行下面的命令

cmake .

2259d1ec-749d-11ee-939d-92fbcf53809c.png

成功以后执行

make

226ed1d2-749d-11ee-939d-92fbcf53809c.png

然后执行

./ OpenCV480_Test

显示如下:

22820392-749d-11ee-939d-92fbcf53809c.png

2297a0a8-749d-11ee-939d-92fbcf53809c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1661493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧公厕,运用数据提升公共厕所管理水平!

随着城市人口的增加和生活水平的提高,公共厕所的管理变得越来越重要。传统的厕所管理方式已经无法满足人们对卫生、便利和舒适的需求。而智慧公厕作为新一代公厕管理方式,通过运用数据技术和大数据分析手段,彻底改变了公厕管理的模式&#xf…

【系统架构师】-案例篇(七)信息安全

某软件公司拟开发一套信息安全支撑平台,为客户的局域网业务环境提供信息安全保护。该支撑平台的主要需求如下: 1.为局域网业务环境提供用户身份鉴别与资源访问授权功能; 2.为局域网环境中交换的网络数据提供加密保护; 3.为服务…

真驱鸟农业专用插电款驱鸟器,防喜鹊、麻雀各种鸟类

成年喜鹊的栖息地非常多样化,它们常常在人类活动的区域出没,喜欢把鸟巢建在民宅旁边的大树上、旷野的高树上或者电线塔杆上。白天,它们会飞到农田等开阔的地方觅食,到了傍晚则会返回巢内栖息。 喜鹊食性杂,它们的食物组…

2008NOIP普及组真题 4. 立体图

线上OJ: 一本通-1977:【08NOIP普及组】立体图 核心思想: 本题采用模拟方法一个一个画小方块(虽然画的是立体空间的积木,但本质还是在二维平面上画图形) 本题的难点在于: 1、如何确定二维平面画…

传输层之 TCP 协议

TCP协议段格式 源/目的端口号:表示数据是从哪个进程来,到哪个进程去。 序号:发送数据的序号。 确认序号:应答报文的序号,用来回复发送方的。 4 位首部长度:一个 TCP 报头,长度是可变的&#xff…

产品想在网络媒体上做营销宣传推广有什么好方法?

作为公司宣传负责人,我深知产品在网络媒体上的营销推广对于品牌建设和市场扩张的重要性。然而,在过去,当我们想要在网络媒体上推广产品时,我面临了诸多挑战和困境。 以前,我常常需要直接联系各大网络媒体,从海量的信息中筛选出合适的媒体平台,然后逐一发送邮件、拨打电话甚至亲…

图片无损压缩工具-VIKY

一、前言 Viky v3.4是一款功能强大的图片压缩工具,它能够提供高效的图片无损压缩服务。通过使用独特的压缩算法,该软件在显著减小图片文件大小的同时,还保持了图像的清晰度和色彩饱和度,确保了图像质量的优异表现。 二、软件特点…

layui select 绑定onchange事件失效

layui select 绑定onchange事件失效 问题背景解决方案 问题背景 在日常工作中,可能会用到页面 freemaker 以及 layui 前端框架,这个时候直接在 select 上面绑定 onchange 事件往往是不生效的,错误的方式 这种方式给 select 绑定的 onchange…

深入浅出JavaScript继承机制:解密原型、原型链与面向对象实战攻略

🔥 个人主页:空白诗 文章目录 🔥 引言🧱 原型基础⛓️ 原型链的形成🔄 修改原型的影响🏁 原型链的尽头为什么null标志着结束?实际意义 🌐 🔄 继承的实现方式1. 原型链继承…

【ITK配准】第十九期 基于KernelBase样条的图像变形

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享ITK配准中基于KernelBase样条的图像变形,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 基于…

VMware虚拟机中Linux系统奔溃,怎么办?

一大早启动虚拟机准备开始工作,却遭遇到Linux系统崩溃,屏幕上显示以下错误提示: 这段文本看起来是来自系统引导时的日志信息,提到了一些关于文件系统的问题和建议。根据这段信息,似乎 /dev/sda1 分区中的文件系统存在一…

鲁教版六年级数学上册-笔记

文章目录 第一章 丰富的图形世界1 生活中的立体图形2 展开和折叠3 截一个几何体4 从三个方向看物体的形状 第二章 有理数及其运算1 有理数2 数轴3 绝对值4 有理数的加法5 有理数的减法6 有理数的加减混合运算7 有理数的乘法8 有理数的除法9 有理数的乘方10 科学计数法11 有理数…

探索无界知识:用 ChatGPT 的原理学习任何事物!

为避免文章重复,您的文本已通过更改句式、用词以及句子结构进行了修改。现在的文本应该能更好地满足去重的需求: 从ChatGPT原理出发,我们探讨GPT如何启发人类学习和构建个人知识体系。 1. 明确学习目标 机器学习必须依靠目标函数。同样&…

4.nginx.pid打开失败以及失效的解决方案

一. nginx.pid打开失败以及失效的解决方案 1.错误图片: 2.解决方法 步骤1:进入这个目录 /var/run/nginx,提示没有文件或目录,则使用mkdir创建这个目录。 步骤2:然后 ./nginx -s reload 运行,是一个无效的PID 步骤3:使…

如何挑选“好用”的工业APP

我们日常生活中每天都在使用各种生活类的APP,然而,当我们谈到工业APP时,很多人可能并不那么熟悉。工业APP,虽然不像生活类APP那样直接面向广大消费者,但在工业领域却扮演着至关重要的角色。 先简单认识下啥是工业APP? 工业APP是…

springboot增删改查

我的记录 RestController RequestMapping("/user") public class UserController {Autowiredprivate UserService userService;GetMapping("/list")public List<User> list(){return userService.list();}//新增PostMapping("/save")publi…

java JMH 学习

JMH 是什么&#xff1f; JMH&#xff08;Java Microbenchmark Harness&#xff09;是一款专用于代码微基准测试的工具集&#xff0c;其主要聚焦于方法层面的基准测试&#xff0c;精度可达纳秒级别。此工具由 Oracle 内部负责实现 JIT 的杰出人士编写&#xff0c;他们对 JIT 及…

热爱电子值得做的电子制作实验

加我zkhengyang&#xff0c;进嵌入式音频系统研究开发交流答疑群(课题组) AM/FM收音机散件制作&#xff0c;磁带随声听散件&#xff0c;黑白电视机散件制作&#xff0c;功放散件制作&#xff0c;闪光灯散件制作&#xff0c;声控灯散件&#xff0c;等等&#xff0c;可提高动手能…

Android 按钮Button点击音效

一、新建工程 编译运行&#xff0c;确保工程无误&#xff0c;这里不过多赘述。 二、UI布局 添加两个播放音效Button <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"…

笔试强训week4

day1 Q1 难度⭐⭐ 小易的升级之路_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防…