将 OpenCV 与 Eclipse 一起使用(插件 CDT)

先决条件

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

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

制作项目

  1. 启动 Eclipse。只需运行文件夹中的可执行文件即可。
  2. 转到文件 -> 新建 -> C/C++ 项目

    a0.png

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

    a1.png

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

    a3.png

  6. 现在,让我们使用 OpenCV 添加一个源文件:
    • 右键单击 DisplayImage(在导航器中)。新建 -> 文件夹 。

      a4.png

    • 将文件夹命名为 src,然后点击完成
    • 右键单击新创建的 src 文件夹。选择 New source file
    • 将其命名为 DisplayImage.cpp。命中完成

      a7.png

  7. 因此,现在您有一个包含空 .cpp 文件的项目。让我们用一些示例代码填充它(换句话说,复制并粘贴下面的代码片段):
    #include < opencv2/opencv.hpp>
    使用命名空间 CV;
    int main( int argc, char** argv )
    {
    垫子图像;
    图像 = imread( argv[1], IMREAD_COLOR );
    if( argc != 2 || !image.数据 )
    {
    printf( “无图像数据 \n” );
    返回 -1;
    }
    namedWindow( “显示图像”, WINDOW_AUTOSIZE );
    imshow( “显示图像”, 图像 );
    waitKey(0);
    返回 0;
    }
  8. 我们只缺少最后一步:告诉 OpenCV OpenCV 头文件和库在哪里。为此,请执行以下操作:
    • 转到“项目”–>属性
    • 在 C/C++ Build 中,单击“设置”。在右侧,选择“工具设置”选项卡。在这里,我们将输入标头和库信息:
      1. 在 GCC C++ 编译器中,转到包含。在 Include paths(-l) 中,您应该包括安装 opencv 的文件夹的路径。在我们的示例中,这是 /usr/local/include/opencv。

        a9.png

        注意

        如果您不知道 opencv 文件的位置,请打开终端并键入:
        pkg-config --cflags opencv
        例如,该命令给了我以下输出:
        -I/usr/local/include/opencv -I/usr/local/include
      2. 现在转到GCC C++链接器,在那里你必须填写两个空格:

        首先,在库搜索路径(-L)中,您必须将路径写入opencv库所在的位置,在我的例子中,路径是:

        <span style="background-color:#fbfcfd">/usr/local/lib
        </span>

        然后在 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

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

运行可执行文件

所以,现在我们有一个可执行文件可以运行了。如果我们要使用终端,我们可能会做这样的事情:

光盘<DisplayImage_directory>
光盘 src
./DisplayImage ../images/HappyLittleFish.png

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

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

    a14.png

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

    a15.jpg

  5. 祝贺!您已经准备好使用 Eclipse 享受 OpenCV 的乐趣了。

V2:在 Eclipse 中使用 CMake+OpenCV(插件 CDT)

假设您有或创建一个名为 foo 的目录中的新文件 helloworld.cpp

#include < opencv2/opencv.hpp>
使用命名空间 CV;
int main ( int argc, char **argv )
{
垫子img(480, 640, CV_8U);
putText(img, “Hello World!”, Point( 200, 400 ), FONT_HERSHEY_SIMPLEX |FONT_ITALIC, 1.0, 标量( 255, 255, 0 ));
imshow(“我的窗口”, img);
等待键();
返回 0;
}
  1. 创建一个构建目录,比如说,在 foo: mkdir /build 下。然后 cd build。
  2. 在构建中放置一个文件:CmakeLists.txt
    项目( helloworld_proj )
    FIND_PACKAGE( 需要 OpenCV )
    ADD_EXECUTABLE( helloworld helloworld.cxx )
    TARGET_LINK_LIBRARIES( helloworld \f${OpenCV_LIBS} )
  3. 运行:cmake-gui ..并确保填写 OpenCV 的构建位置。
  4. 然后单击“配置”,然后单击“生成”。如果没问题,请退出 cmake-gui
  5. 运行(-j4 是可选的,它只是告诉编译器在 4 个线程中构建)。确保它构建。make -j4
  6. 启动 eclipse。将工作区放在某个目录中,但不要放在 foo 或foo\build
  7. 右键单击 Project Explorer 部分。选择“导入”,然后打开 C/C++ 筛选器。选择“现有代码”作为生成文件项目。
  8. 为您的项目命名,说 helloworld。浏览到“现有代码”位置(运行 cmake-gui 的位置)。在 *“Toolchain for Indexer Settings”* 中选择 Linux GCC,然后按 Finishfoo\build
  9. 右键单击 Project Explorer 部分。选择“属性”。在 C/C++ Build 下,将 build directory: 从 something like to 设置为,因为这是您要构建的位置。${workspace_loc:/helloworld}${workspace_loc:/helloworld}/build
    1. 您还可以选择修改 Build 命令:从 make 修改为类似命令,告诉编译器生成详细的符号文件进行调试,并在 4 个并行线程中进行编译。make VERBOSE=1 -j4
  10. 做!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯省赛无忧 STL 课件11 pair

01 pair的定义和结构 在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;它位于头文件中。 pair类的定义如下: template<class T1,class T2>struct pair{T1 first;//第一个值T2 second;//第二个值// 构造函数pair();pair(const T1& X…

模拟超市商品结算系统

要求:全程一个角色(管理员即用户) (1)需要管理员注册与登录 (2)管理员登录之后&#xff0c;可以进行上架新的商品(商品名称和单价) (3)管理员登录之后&#xff0c;也可以下架商品 (4)在节假日有优惠活动,可以对其中的一些商品修改相应的单价(价格提高和价格降低都可以) (5)用户…

如何充分发挥HubSpot CRM优势,优化销售流程?

在竞争激烈的商业环境中&#xff0c;销售流程的优化对企业至关重要。HubSpot CRM作为一款全面而强大的工具&#xff0c;为企业提供了实现销售优化的完美平台。让我们深入了解如何最大程度地利用HubSpot CRM&#xff0c;提高销售效率。 1.建立清晰的销售流程 HubSpot CRM的第一…

MySQL的三种存储引擎 InnoDB、MyISAM、Memory

InnoDB 1). 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎&#xff0c;在 MySQL 5.5 之后&#xff0c;InnoDB是默认的MySQL 存储引擎。 2). 特点 DML操作遵循ACID模型&#xff0c;支持事务&#xff1b; 行级锁&#xff0c;提高并发访问性能&#xff1b; 支持外键F…

爱情视频相册怎么做?2.14情人节表白/活动视频模板PR剪辑素材

美好爱情故事&#xff0c;情人节表白视频相册怎么做&#xff1f;粉色浪漫的PR情人节表白/活动视频模板剪辑素材mogrt下载。 特征&#xff1a;可编辑文字和调整颜色&#xff0c;通过智能对象替换图像&#xff0c;RGB颜色模式&#xff0c;易于自定义&#xff0c;无需插件&#xf…

【深入浅出JVM原理及调优】「搭建理论知识框架」全方位带你认识和了解Java虚拟机的特性和本质

全方位带你认识和了解Java虚拟机的特性和本质 专栏介绍前提准备面向人群知识脉络背景介绍Java虚拟机定义抽象规范多种平台实现 JVM和JRE、JDK的关系JVM实例和JVM执行引擎实例JVM的基本结构类加载子系统Bootstrap ClassLoaderExtension ClassLoaderApp ClassLoaderCustom ClassL…

Linux第24步_安装windows下的VisualStudioCode软件

Windows下的VSCode安装后&#xff0c;还需要安装gcc编译器和g编译器。 gcc&#xff1a;编译C语言程序的编译器&#xff1b; g&#xff1a;编译C代码的编译器&#xff1b; 1、在Windows下安装VSCode&#xff1b; 双击“VSCodeUserSetup-x64-1.50.1.exe”,直到安装完成。 2、…

如何在群辉NAS使用Docker搭建容器魔方并实现无公网ip远程访问

文章目录 1. 拉取容器魔方镜像2. 运行容器魔方3. 本地访问容器魔方4. 群辉安装Cpolar5. 配置容器魔方远程地址6. 远程访问测试7. 固定公网地址 本文主要介绍如何在群辉7.2版本中使用Docker安装容器魔方&#xff0c;并结合Cpolar内网穿透工具实现远程访问本地网心云容器魔方界面…

用可视化案例讲Rust编程2. 编码的核心组成:函数

从第一天学习编程&#xff0c;可能大家就听说这样的组成公式&#xff1a; 程序算法数据结构 ——该公式出自著名计算机科学家沃思(Nikiklaus Wirth) 实际上&#xff0c;程序除了以上两个主要要素之外&#xff0c;还应当采用结构化程序设计方法进行程序设计&#xff0c;并且用…

Salesforce生态系统2024年就业趋势

对于Salesforce专业人士来说&#xff0c;新一年的开始都是激动人心的。但2023年仍存在显著挑战&#xff0c;经济技术低迷导致裁员&#xff0c;以及Salesforce生态系统增长放缓等等&#xff0c;这些挑战将延续到2024年。 回顾2023年 2023年&#xff0c;Salesforce生态系统以及…

回顾2023,立2024flag

文章目录 回顾2023与CSDN相识专栏整理数据回顾 立2024flag 回顾2023 在过去的一年里&#xff0c;前端技术不断演进和创新。新技术、新框架层出不穷&#xff0c;给前端工程师提供了更多选择和挑战。2023年已经成为过去&#xff0c;回首这一年&#xff0c;我们也经历了许多挑战和…

1.11寒假集训

A: 解题思路&#xff1a; 这题看示例不难发现&#xff0c;答案就是a * b的每一项的和&#xff0c;例如111 111就是111*&#xff08;1 1 1&#xff09; 333,知道后此题就迎刃而解了 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {in…