opencv之在Linux下编译opencv程序的两种方式g++、cmake

(一)OpenCV学习笔记——Linux下编译运行opencv程序 最近在学习OpenCV,写点笔记总结一下,我用的学习环境是Ubuntu16.04+KDvelop4.7+OpenCV3.2.0。   Linux下的OpenCV程序的编译有两种方式。一种是g++,另一种是cmake,自己在这里直接采用的是KDvelop4.7,使用该IDE的好处如下:1、能够加载opencv的库头文件,像在写#include “opencv2/opencv.hpp” 。2、在编写 阅读详情

从电子信息工程跳到计算机,在研究图像处理的东西,发现opencv很好玩,想深入学一下,没有特别好的教材,最好的文档就是官方的tutorials,在实验室比较忙,希望能每天晚上抽点时间把这个大概看一下,不求全部看懂,至少能够深入一下。所有代码编写均在Ubuntu16.04+opencv2.4.9+g++5.4.0+cmake3.5.1下完成。

以前写的文章介绍了Windows和Linux下opencv的配置方法,不在赘述,现在说一下怎么在Linux下编译写好的Linux代码。本文提供两种方法g++或cmake:

代码如下:

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
    Mat srcImage = imread("lena.jpg");
    imshow("源图像",srcImage);

    waitKey(0);

    return 0;
}


1.使用g++编译写好的opencv代码

gcc和g++分别是GNU的C&C++编译器,其编译过程可分为四步:

(1)预处理:生成.i的文件

(2)将预处理的文件转换成汇编语言,生成文件.s

(3)由汇编变为目标代码(机器代码)生成.o的文件

(4)连接目标代码,生成可执行程序

g++编译命令有很多可选择项,可以根据不同的需要使用,具体请自行查阅。普通的g++编译命令如下:

g++Hello.cpp -o Hello

其中Hello.cpp是要编译的cpp名称,生成的可执行文件是Hello,如果编译多个cpp文件,可用如下方法:

建立一个hello.h文件

#ifndef HELLO
#define HELLO

#include <iostream>
using namespace std;

class SpeakHello
{
    public:
        void speak();
};

#endif

建立一个名字为hello.cpp的C++文件


#include "hello.h"

void SpeakHello::speak()
{
    cout << "Hello World!"<<endl;
}

建立一个名字为speak.cpp的主文件


#include "hello.h"

int main()
{
    SpeakHello show;
    show.speak();
    return 0;
}

想要将包含hello.h、hello.cpp和speak.cpp三个文件编译,可写如下命令:


g++ speak.cpp hello.cpp -o hello
./hello


具体的g++用法不再赘述,可自行查阅。现在说一下怎么通过g++编译OpenCV程序,如直接执行,出现下种错误情况:



因为在执行时没有将OpenCV的库包含进去,可以使用如下命令进行编译:


g++ `pkg-config opencv --cflags` opencv.cpp  -o opencv `pkg-config opencv --libs` 

生成名字为opencv的可执行文件,接下来运行


./opencv

运行结果如下:

2.使用cmake编译OpenCV文件

首先确保已经安装了cmake,然后建立一个CMakeLists.txt文件,输入如下内容


cmake_minimum_required(VERSION 2.8)
project(opencv)
find_package(OpenCV REQUIRED)
add_executable(opencv opencv.cpp)
target_link_libraries(opencv ${OpenCV_LIBS})


project()括号里面填写要生成的文件名称,add_executable()及其后一行类似,然后可以使用cmake命令运行,此次执行


cmake .
make
./opencv

运行结果如图所示:


至此,OpenCV程序的两种运行方式介绍完毕!

PS:先把这些写到Libre就是个坑,改字体改了好长时间,还是那么难看!!!


编译OpenCV for arm-linux OpenCV是Intel支持的开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。它不依赖于其它的外部库—尽管也可以使用某些外部库。 OpenCV使用BSD License,对非商业应用和商业应用都可以免费使用。 OpenCV的主要应用环境是Windows和Linux,对于嵌入式系统如arm-linux,很少有资料提到,因此将我在arm-linux编译过程记录下来和大家分享。 阅读详情

相关推荐

Linux 编译基于Opencv的C++项目

背景:在linux下使用cmake编译C++项目,其中使用的到opencv,有两种方法 1、项目中只有简单的一个源码文件,直接使用命令,这个没有亲测,仅是记录 gcc Test.c -o Test `pkg-config --cflags --libs opencv` 2、使用cmakelist文件进行编译 我尝试过直接在cmakelist文件中设置 opencv的include和lib...

zhaoxr233的博客 1656

Opencv编译安装教程(Linux)

一、安装环境一、安装环境虚拟机:opencv版本:二、编译和1、源码下载:opencv链接2github下载注意事项和opencv版本要对应2、安装前准备在自己虚拟机的主目录中创建一个,将两个源码包解压的文件夹放入其中:mkdircdmkdirbuildcdbuild安装依赖项安装sudo-yg++sudo-ycmakesudo-ymakesudo-ywgetsudo-yunzip安装opencv依赖的基本库。

weixin_65269400的博客 6060

opencv 470编译 java so库文件 升级cmake

opencv 470版本 windows的调用 需要dll库文件,但是到了linux上就需要so库。windows可以下载 但是linux上需要自己编译在编译的时候会各种报错 首先需要确定 java环境变量是否配置好然后安装ant 虽然我也不知道干嘛的然后就是各种版本问题opencv470编译环境 gcc需要高版本 cmake 也需要升级的 我在编译的过程中遇到很多报错多半都是版本问题仔细看日志 那个版本低了 就升级 慢慢一步一步来希望我的文章能一定程度帮助到你~~~~

qq_35946365的博客 890

linux下编译opencv

环境:ubuntu16.04 opencv:opencv3.4.1 一.获取opencv源码 从opencv官网网址下载opencv源码https://opencv.org/releases/ 二.搭建opencv的编译环境 (1)在自己的目录下新建一个opencv目录: mkdir opencv (2)拷贝opencv源码到opencv目录下: 拷贝完后的目录如下图: (3)在opencv目录下新建两个文件夹: mkdir build install build:是构建目录。 install:是安装

chengziwang的博客 1万+

在Linux上编译OpenCV程序

在Linux上编译OpenCV程序可以让我们利用该库的功能来开发自己的计算机视觉应用。这将在当前用户的主目录中创建一个名为opencv的文件夹,并将OpenCV存储库的内容克隆到该文件夹中。这将在当前用户的主目录中创建一个名为opencv的文件夹,并将OpenCV存储库的内容克隆到该文件夹中。在开始编译OpenCV程序之前,我们需要安装一些必要的依赖项。这将在opencv文件夹中创建一个名为build的子目录,并在其中配置编译。这将在opencv文件夹中创建一个名为build的子目录,并在其中配置编译。

WzisTypescript的博客 1476

Linux opencv编译

【代码】Linux opencv编译。

qq_41273101的博客 450

linux编译opencv程序,【学习OpenCV】opencv之在Linux下编译opencv程序的两种方式g++、cmake...

全部代码编写均在Ubuntu16.04+opencv2.4.9+g++5.4.0+cmake3.5.1下完成。ios之前写的文章介绍了Windows和Linux下opencv的配置方法,不在赘述,如今说一下怎么在Linux下编译写好的Linux代码。本文提供两种方法g++或cmake:字体代码以下:ui#include#includeusingnamespacestd;usingname...

weixin_34246598的博客 957

Linux —— OpenCv编译安装

Linux —— OpenCv编译安装

4092

linux下编译opencv程序的两种方式:g++,cmake

1.gcc和g++分别是GNU的C&amp;C++编译器 编译过程可分为四步: (1)预处理:生成.i的文件 (2)将预处理的文件转换成汇编语言,生成文件.s (3)由汇编变为目标代码(机器代码)生成.o的文件 (4)连接目标代码,生成可执行程序    g++ Hello.cpp -o Hello 通过g++编译OpenCV程序,要将OpenCV的库包含进去,否则会报错,可以使用如下...

千秋莫负 1824

用Python+PyTorch实现DQN无人机避障:从环境搭建到实战训练(附完整代码)

本文详细介绍了如何使用Python和PyTorch框架,基于深度强化学习中的DQN算法,实现一个无人机自主避障系统。内容涵盖从自定义环境搭建、DQN智能体核心算法实现,到完整的训练流程与超参数调优,并提供了可视化演示与进阶优化方向,为开发者提供了从理论到实践的完整指南。

kubernetes8ctl的博客 640

海康H304NAS 刷机飞牛

本文旨在分享如何将闲置的海康威视H304 NAS刷入飞牛NAS系统,并利用iStoreOS作为安装媒介。之前因为使用极空间NAS,这台H304闲置已久。最近尝试了飞牛NAS,在虚拟机上安装后挂载极空间的电影资源,体验不错,于是决定重新折腾这台H304。我个人喜欢尝试新系统,之前经常更新H304的固件,但设备总在使用一两年后出现故障,需要联系技术清理日志才能恢复。最后一次设备“变砖”后,连技术人员也联系不上了,自己尝试修复未果,设备就此闲置两三年。

u012985257的博客 2748

【学习OpenCV】opencv之在Linux下编译opencv程序的两种方式g++、cmake

所有代码编写均在Ubuntu16.04+opencv2.4.9+g++5.4.0+cmake3.5.1下完成。 以前写的文章介绍了Windows和Linux下opencv的配置方法,不在赘述,现在说一下怎么在Linux下编译写好的Linux代码。本文提供两种方法g++或cmake: 代码如下: [cpp] view plain copy #include &lt;iostream&gt; ...

开源节流 863

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 457

在linux环境下编译运行OpenCV程序的两种方法

所有有了这个工具之后我们的编译就很方便了(不过在此之前你要确保你安装的OpenCV的安装链接库文件的目录下有一个pkgconfig文件夹,在该文件夹里面有个opencv.pc的文件,其实这就是pkg-config下OpenCV的配置文件)。(注意,千万要注意:你这时一定要查看你安装OpenCV时建立的那个编译文件,有没有带锁的标志(即你编译OpenCV是用root权限编译的),就这点就把我坑惨了,例如的我电脑上显示的就是这样的。如果不是用root权限编译的OpenCV编译的话,你就直接切换目录就OK了。

m0_73580268的博客 4066

AI在电商中的搜索优化

自拟标题 《AI技术助力电商搜索优化:深度解析一线大厂面试题及算法编程实践》 概述 随着人工智能技术的不断发展,AI在电商搜索优化中的应用日益广泛。本文将围绕“AI在电商中的搜索优化”这一主题,介绍国内头部一线大厂如阿里巴巴、百度、腾讯、字节跳动等在面试中常见的AI相关面试题和算法编程题,并提供详尽的答案解

AI天才研究院 913

基于ESP32和OV5640的目标检测系统

本文详细介绍了基于ESP32-S3和OV5640摄像头构建目标检测系统的完整方案。系统采用YOLOv8-Nano轻量级模型,通过INT8量化实现边缘部署,在UXGA分辨率下达到25fps帧率。文章从硬件选型、图像采集优化、模型量化部署、实时推理流水线构建等维度展开,重点解决了内存管理、电源稳定性和异常处理等嵌入式系统关键问题。该方案在资源受限条件下实现了150ms以内的端到端延迟,为物联网视觉应用提供了低成本、低功耗的解决方案,适用于智能家居、工业检测等多个场景。

reset2021的博客 329

使用cmake 进行编译opencv c++版本,linux环境下

contrib 包含非自由模块、SIFT/SURF 等高级功能,若不需要可跳过。如能正常弹出黑色窗口,说明 OpenCV C++ 安装成功并可在项目中正常使用。这些库用于支持常见图像格式以及 OpenCV 的 GUI 功能。: 指向 contrib 模块路径。

2301_80030612的博客 1233

用 RFC Destination 打通 VS Code 与 ABAP 后端,ABAP 开发连接不只是登录那么简单

本文重点介绍了在VS Code中配置ABAP开发环境时建立RFC destination连接的关键细节。文章指出:1. RFC destination是连接前端开发工具与ABAP后端的核心配置,包含系统类型、客户端、用户名等关键信息;2. 连接方式的选择(RFC/HTTP)由产品形态决定,On-Premise和Private Edition使用RFC,而BTP和Public Cloud使用HTTP;3. 连接创建后需要通过添加工作区文件夹来展示开发对象;4. RFC连接涉及网络可达性、身份认证和开发权限三个

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

linux使用cmake交叉编译opencv

文章目录正文1.准备工作2.cmake配置3.开始编译4.各种出错及解决方案 正文 1.准备工作 1)交叉编译工具 不同平台会提供对应的交叉编译工具,比如rockpi,树莓派,arm等 这里将使用rockpi提供的aarch64-linux-gnu-相关工具 2)opencv源码 包含opencv-4.1.0以及opencv_contrib-4.1.0 3)安装好cmake及cmake-gui 2.cmake配置 1)创建好编译输出的目录,运行cmake-gui 填写好顶部source code以及bin

kkae8643150的专栏 4596

面试真题集(十六):TensorRT基础

TensorRT面试真题解析:从模型优化到推理部署 本文精选了14道TensorRT面试题,涵盖选择题、简答题和场景题,深度考察推理工程师对TensorRT核心技术的理解。内容聚焦三个关键维度: 基础概念 FP16推理中Softmax层为何需保持FP32(数值稳定性) INT8校准原理(EntropyCalibrator2的鲁棒性优势) Plugin V3接口的构建/运行分离设计 性能优化 Conv-BN-ReLU融合减少40-60%延迟的关键机制(访存优化) 动态Shape配置策略(min/opt/max

PeterPan的博客 71

《模型轻量化-剪枝蒸馏量化系列》YOLOv5无损剪枝(附源码)

无损剪枝模型到几百kb~

cv君的博客 3万+

Ubuntu18.04安装OpenCV3.4.2及编译opencv程序的两种方式

Ubuntu18.04安装OpenCV3.4.2 安装opencv通用版参考博客 安装过程中遇到一些问题,总结如下: 1.执行:sudo apt-get install libpng12-dev 遇到问题:Package 'libpng12-dev' has no installation candidate 改为:sudo apt-get install libpng-dev 2.执行:sudo...

qq_27546529的博客 2998

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux 下编译安装OpenCV,Cmake的安装

OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。 ubuntu下安装cmake比较简单, apt-get install cmake 如果觉得自带的版本不符合要求,可以下载安装包。 下载最新版的安装包: http://www.cmake.org/cmake/resources/software.html 这里下载

wzy的博客 8055

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

在linux编译opencv摘要

本文详细介绍了如何在Ubuntu和CentOS系统上从源码编译安装OpenCV的步骤。首先,确保系统安装了必要的依赖库,如build-essential、cmake、git等。接着,从GitHub克隆OpenCV和OpenCV contrib源码。然后,创建构建目录并使用CMake配置编译选项,包括基础编译和包含opencv_contrib模块的编译。完成配置后,使用多线程编译并安装OpenCV。最后,更新动态链接库缓存并验证安装。文章还提供了常见问题的解决方法,如缺少依赖项、CUDA支持和指定Python

Gzll1的专栏 1352

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux系统中交叉编译opencv库

Linux系统中交叉编译opencv库

qianniulaoren的博客 2465
上一篇: Linux\Ubuntu 16.04配置Opencv
下一篇: 程序命令行argc\argv
梧桐栖鸦
梧桐栖鸦 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄14年 2268粉丝 98原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值