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

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

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

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

警告:

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

先决条件

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

  1. 在您的工作站中安装了 Eclipse(只需要 C/C++ 的 CDT 插件)。您可以按照以下步骤操作:
  2. 安装了 OpenCV.如果还没有,请转到此处

制作项目

  1. 启动 Eclipse。只需运行文件夹中的可执行文件即可。

  2. 转到File -> New -> C/C++ Project(文件->新建->C/C++工程->)

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

  4. 默认情况下保留其他所有内容。按 Finish(完成)

  5. 项目(在本例中为 DisplayImage)应显示在**"项目导航器**"中(通常位于窗口的左侧)。

  6. 使用 OpenCV 添加一个源文件::

    • 右键单击DisplayImage (在导航器中). New -> Folder(新建文件夹) .

    • 将文件夹命名为 src ,然后点击 Finish(完成)

    • 右键单击新创建的 src 文件夹。选择 New source file(新建 -> 文件)

    • 设置文件名为: DisplayImage.cpp . 点击Finish(完成)

  7. 出现一个心得空.cpp文件项目复制下面例子:

    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.

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

        pkg-config --cflags opencv
        例如,该命令给了我以下输出:

        bash 复制代码
        -I/usr/local/include/opencv -I/usr/local/include

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

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

        bash 复制代码
        /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

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

        bash 复制代码
        pkg-config --libs opencv

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

        bash 复制代码
        -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

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

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

运行可执行文件

打开终端尝试运行:

bash 复制代码
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

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

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

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

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

cpp 复制代码
​#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文件放入构建中文件夹:编写如下代码

    bash 复制代码
    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

相关推荐
智慧老师7 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm8 分钟前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm1013441 分钟前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13141 小时前
常用的缓存技术都有哪些
java
AiFlutter1 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A2 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
DARLING Zero two♡2 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)
java·数据结构·c++·算法·leetcode
小池先生2 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端
CodeClimb2 小时前
【华为OD-E卷-木板 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od