将 OpenCV 与 Eclipse 结合使用(插件 CDT)

返回:OpenCV系列文章目录(持续更新中......) 

上一篇:将OpenCV与gcc和CMake结合使用

下一篇:OpenCV4.9.0在windows系统下的安装 

警告:

本教程可以包含过时的信息。

先决条件

两种方式,一种是直接形成项目,另一种是CMake先决条件

  1. 在您的工作站中安装了 Eclipse(只需要 C/C++ 的 CDT 插件)。您可以按照以下步骤操作:
    • 转到 Eclipse 站点
    • 下载面向 C/C++ 开发人员的 Eclipse IDE。根据您的工作站选择链接。
  2. 安装了 OpenCV.如果还没有,请转到此处。

制作项目

  1. 启动 Eclipse。只需运行文件夹中的可执行文件即可。
  2. 转到File -> New -> C/C++ Project(文件->新建->C/C++工程->)

    a0.png

  3. 为您的项目选择一个名称(即 DisplayImage)对于此示例,空项目应该没问题。

    a1.png

  4. 默认情况下保留其他所有内容。按 Finish(完成)
  5. 项目(在本例中为 DisplayImage)应显示在“项目导航器”中(通常位于窗口的左侧)。

    a3.png

  6. 使用 OpenCV 添加一个源文件::
    • 右键单击DisplayImage (在导航器中). New -> Folder(新建文件夹) .

      a4.png

    • 将文件夹命名为 src,然后点击 Finish(完成)
    • 右键单击新创建的 src 文件夹。选择 New source file(新建 -> 文件)
    • 设置文件名为: DisplayImage.cpp. 点击Finish(完成)

      a7.png

  7. 出现一个心得空.cpp文件项目复制下面例子:
    ​#include <opencv2/opencv.hpp>
    using namespace cv;
    int main( int argc, char** argv )
    {
    Mat image;
    image = imread( argv[1], IMREAD_COLOR );
    if( argc != 2 || !image.data )
    {
    printf( "No image data \n" );
    return -1;
    }
    namedWindow( "Display Image", WINDOW_AUTOSIZE );
    imshow( "Display Image", image );
    waitKey(0);
    return 0;
    }​
  8. 设置以下 OpenCV 头文件和库路径:
    • 转到项目Project–>Properties(项目->属性)
    • 在 C/C++ Build 中,单击“设置”。在右侧,选择“工具设置”选项卡。在这里,我们将输入标题和库信息:
      1. 在 GCC C++ 编译器中,转到包含。在 Include paths(-l) 中,包含安装 opencv 的文件夹的路径如: this is /usr/local/include/opencv.

        a9.png

        注意:

        如果您不知道 opencv 文件在哪里,请打开终端并键入:

        pkg-config --cflags opencv

        例如,该命令给了我以下输出:
        -I/usr/local/include/opencv -I/usr/local/include

        转到 GCC /C++ 链接器,需要填充两个空格:

      2. 首先,在库搜索路径 (-L) 中,您必须将路径写入 opencv 库所在的位置,在我的情况下,路径为:

        /usr/local/lib
        然后在 Libraries(-l) 中添加您可能需要的 OpenCV 库。通常,下面列表中的第一个4个就足够了(对于简单的应用程序)。就我而言,我把它们都放进去,因为我打算使用所有得模块:
        opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui opencv_ml opencv_videoio opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_flann

        a10.png

        如果您不知道您的库在哪里(或者您只是无法把握,想要确保路径正常),请键入终端

        pkg-config --libs opencv

        我的输出(如果您需要检查)是:

        -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_videoio -lopencv_imgcodecs -lopencv_flann

        单击“确定

  • 到此项目应该已准备好进行构建。为此,请转到 Project->Build all

    在控制台中,您应该会得到类似下面信息:

    a12.png

    如果您签入您的文件夹,那里应该有一个可执行文件。

运行可执行文件

打开终端尝试运行:

cd <DisplayImage_directory>
cd src
./DisplayImage ../images/HappyLittleFish.png

假设用作参数的图像位于 <DisplayImage_directory>/images/HappyLittleFish.png 中。我们仍然可以这样做,但让我们从 Eclipse 中做到这一点::

  1. 点击: Run->Run Configurations(转到运行>运行配置
  2. 在“C/C++ 应用程序”下,您将看到可执行文件的名称 + 调试(如果没有,请单击 C/C++ 应用程序几次)。选择名称(在本例中为 DisplayImage Debug
  3. 出现在窗口的右侧,选择“参数”选项卡。 写下我们要打开的图像文件的路径(相对于 workspace/DisplayImage 文件夹的路径)。让我们使用HappyLittleFish.png

    a14.png

  4. 单击“应用”按钮,然后单击“运行”。OpenCV 窗口应该会弹出鱼图像(或您使用的任何图像).

    a15.jpg

  5. 到此你就可以完成Eclipse工程得配置与安装 OpenCV 了

V2: 将 CMake+OpenCV 与 Eclipse 结合使用(插件 CDT)

假设有一个或创建一个新文件,helloworld.cpp在一个名为 foo 的目录中中如下代码:

​#include <opencv2/opencv.hpp>
using namespace cv;
int main ( int argc, char **argv )
{
Mat img(480, 640, CV_8U);
putText(img, "Hello World!", Point( 200, 400 ), FONT_HERSHEY_SIMPLEX | FONT_ITALIC, 1.0, Scalar( 255, 255, 0 ));
imshow("My Window", img);
waitKey();
return 0;
}
​
  1. 创建一个构建目录,比如说,在 foo: mkdir /build 下。然后 cd 构建。
  2. CmakeLists.txt文件放入构建中文件夹:编写如下代码
    PROJECT(helloworld_proj)
    FIND_PACKAGE(OpenCV REQUIRED)
    ADD_EXECUTABLE(helloworld helloworld.cxx)
    TARGET_LINK_LIBRARIES(helloworld \f${OpenCV_LIBS})
  3. 运行:cmake-gui .并确保填写 OpenCV 的构建位置。
  4. 然后单击“配置”,然后单击“生成”。如果没问题,请退出 cmake-gui
  5. 运行make -j4(-j4 是可选的,它只是告诉编译器在 4 个线程中构建)。确保它生成。
  6. 启动 eclipse。将工作区放在某个目录中,但不在 foo 或foo\build
  7. 在“项目资源管理器”部分中单击鼠标右键。选择“导入”,然后打开“C/C++”筛选器。选择“现有代码”作为生成文件项目。
  8. 为您的项目命名,比如 helloworld。浏览到“本地目录”foo\build位置(运行 cmake-gui 的位置)。在 *“Toolchain for Indexer Settings”* 中选择 Linux GCC,然后按完成
  9. 在“项目资源管理器”部分中单击鼠标右键。选择“属性”。在 C/C++ Build 下,设置构建目录:从类似于like ${workspace_loc:/helloworld}  到 ${workspace_loc:/helloworld}/build s的东西,假设这是你要构建到的位置。
    1. 您还可以选择将 Build 命令:从 make 修改选项make VERBOSE=1 -j4 ,它告诉编译器生成详细的符号文件以进行调试,并在 4 个并行线程中进行编译

参考文献:

1.《Using OpenCV with Eclipse (plugin CDT)》作者:Ana Huamán

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

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

相关文章

【IC设计】Verilog线性序列机点灯案例(二)(小梅哥课程)

文章目录 该系列目录&#xff1a;设计目标设计思路RTL 及 Testbench仿真结果存在的问题&#xff1f;改善后的代码RTL代码testbench代码 仿真结果 案例和代码来自小梅哥课程&#xff0c;本人仅对知识点做做笔记&#xff0c;如有学习需要请支持官方正版。 该系列目录&#xff1a;…

接雨水-热题 100?-Lua 中文代码解题第4题

接雨水-热题 100&#xff1f;-Lua 中文代码解题第4题 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释…

2.2 物理层传输介质

文章目录 2.2 物理层传输介质&#xff08;一&#xff09;传输介质及分类&#xff08;二&#xff09;导向型传输介质&#xff08;1&#xff09;双绞线&#xff08;2&#xff09;同轴电缆&#xff08;3&#xff09;光纤 &#xff08;三&#xff09;非导向性传输介质 总结 2.2 物理…

数字多空策略(实盘+回测+数据)

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

计算机网络----计算机网络的基础

目录 一.计算机网络的相关概念 二.计算机网络的功能 三.计算机网络的发展 四.计算机网络的组成 五.计算机网络的分类 六.计算机的性能指标 1.速率 2.带宽 3.吞吐量 4.时延 5.时延带宽积 6.往返时延RTT 7.利用率 七.计算机的分层结构 八.ISO/OSI参考模型 九.OSI…

【四 (6)数据可视化之 Grafana安装、页面介绍、图表配置】

目录 文章导航一、Grafana介绍[✨ 特性]二、安装和配置1、安装2、权限配置&#xff08;账户/团队/用户&#xff09;①用户管理②团队管理③账户管理④看板权限 3、首选项配置4、插件管理①数据源插件②图表插件③应用插件④插件安装方式一⑤安装方式二 三、数据源管理1、添加数…

宜搭faas服务器获取accessToken

可以用faas服务器的OpenAPIUtil.getCustomAccessTokenThenCache&#xff08;Client ID,Client Secret&#xff09;就可以获取 至于获取这个Client ID&#xff0c;Client Secret 就需要在钉钉开放平台创建一个应用 然后在这个应用的基础信息里面有 注意的是&#xff1a;如果需要…

如何通过小程序上的产品力和品牌力提升用户的复购能力?

随着网络购物小程序的发展以及内容电商、社交电商、垂直电商、品牌自营等多个细分类型的出现&#xff0c;小程序成为用户日常购物、大促囤货以及首发抢购的重要场景&#xff0c;市场竞争也逐渐激烈。如何在用户侧获得更多转化、留存与复购&#xff0c;成为企业品牌日益关注的话…

复习知识点

1. Java常用API 1.1 String类 在java中&#xff0c;String类代表字符串&#xff0c;字符串是常量的&#xff0c;不能被改变。如果想改变字符串。可以用字符串的缓冲区&#xff0c;StringBuffer、StringBuilder 1.1.1 String类的创建方式 第一种&#xff08;常用&#xff09…

DZB-214中间继电器 工作电压220V-保持电流1A-面板安装 JOSEF约瑟

系列型号:DZB-200中间继电器 DZB-210中间继电器&#xff1b;DZB-213中间继电器&#xff1b; DZB-214中间继电器&#xff1b;DZB-217中间继电器&#xff1b; DZB-220中间继电器&#xff1b;DZB-226中间继电器&#xff1b; DZB-228中间继电器&#xff1b;DZB-230中间继电器&#…

基于springboot+mysql+Shiro实现的宠物医院管理系统

1.项目介绍 系统主要为用户提供了管理员权限的用户&#xff0c;实现了前台查看客户信息、在线添加预约等&#xff1b;后台管理医生坐诊信息、管理就诊信息、修改密码&#xff0c;管理公告、管理宠物分类、管理就诊、管理用户、修改密码等。在设计方面&#xff0c;本系统采用MV…

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目&#xff0c;获取项目文件夹 这步基本都不会有问题&#xff1a; 二.安装Android Studio 安装过程参考教材就行了&#xff1a; https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项&#xff08;勾…

Explain 关键字

优质博文&#xff1a;IT-BLOG-CN explain关键字可以模拟优化器执行 SQL 查询语句&#xff0c;从而知道 MySQL 是如何处理 SQL 语句的。分析查询语句或表结构的性能瓶颈。执行语句&#xff1a;explain SQL语句。表头信息如下&#xff1a; 一、ID 参数 select 查询的序列号&…

Webapi(.net6) 批量服务注册

如果不考虑第三方库&#xff0c;如Autofac这种进行服务注入&#xff0c;通过本身的.Core Weabpi实现的&#xff0c;总结了两种实现方法&#xff0c; 1.一种是参考abp框架里面的形式; 1.1 新建个生命周期的文件夹: 三个接口分别为: public interface IScopedDependency { }pu…

微信小程序开发学习笔记——3.11完成form评论案例的实现逻辑

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p25&vd_source9b149469177ab5fdc47515e14cf3cf74 一、javascript参考手册——splice https://www.…

Qt教程 — 3.4 深入了解Qt 控件:Input Widgets部件(3)

目录 1 Input Widgets简介 2 如何使用Input Widgets部件 2.1 Dial 组件-模拟车速表 2.2 QScrollBar组件-创建水平和垂直滚动条 2.3 QSlider组件-创建水平和垂直滑动条 2.4 QKeySequenceEdit组件-捕获键盘快捷键 Input Widgets部件部件较多&#xff0c;将分为三篇文章介绍…

基于Java+SpringMVC+vue+element实现前后端分离校园失物招领系统详细设计

基于JavaSpringMVCvueelement实现前后端分离校园失物招领系统详细设计 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收…

相机与相机模型(针孔/鱼眼/全景相机)

本文旨在较为直观地介绍相机成像背后的数学模型&#xff0c;主要的章节组织如下&#xff1a; 第1章用最简单的针孔投影模型为例讲解一个三维点是如何映射到图像中的一个像素 第2章介绍除了针孔投影模型外其他一些经典投影模型&#xff0c;旨在让读者建立不同投影模型之间的建模…

CI/CD实战-git工具使用 1

版本控制系统 本地版本控制系统 集中化的版本控制系统 分布式版本控制系统 git官网文档&#xff1a;https://git-scm.com/book/zh/v2 Git 有三种状态&#xff1a;已提交&#xff08;committed&#xff09;、已修改&#xff08;modified&#xff09; 和 已暂存&#xff08;sta…

物联网竞赛板CubMx全部功能简洁配置汇总

目录 前言&#xff1a;1、按键&LED灯配置&#xff1a;2、OLED配置&#xff1a;3、继电器配置&#xff1a;4、LORA模块配置&#xff1a;5、矩阵模块&#xff1a;6、串口模块&#xff1a;7、RTC配置&#xff1a;8、ADC模块配置&#xff1a;9、温度传感器模块&#xff1a;后续…