OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
将 OpenCV 与 Eclipse(插件 CDT)一起使用

上一个教程: 使用 gcc 和 CMake 进行 OpenCV 开发
下一个教程: 在 Windows 中安装

原始作者Ana Huamán
兼容性OpenCV >= 3.0
警告
本教程可能包含过时的信息。

前提条件

两种方式,一种是直接创建项目,另一种是通过 CMake

  1. 已安装 Eclipse 在您的工作站上(只需要 C/C++ 的 CDT 插件)。您可以按照以下步骤操作
  2. 已安装 OpenCV。 如果还没有,请点击这里

创建项目

  1. 启动 Eclipse。 只需运行该文件夹中的可执行文件即可。
  2. 转到 File -> New -> C/C++ Project
  1. 为您的项目选择一个名称(例如 DisplayImage)。 对于此示例,Empty Project 应该可以。
  1. 保留其他所有默认设置。 按 Finish
  2. 您的项目(在本例中为 DisplayImage)应出现在 Project Navigator 中(通常在窗口的左侧)。
  1. 现在,让我们添加一个使用 OpenCV 的源文件
    • 右键单击 DisplayImage(在导航器中)。 New -> Folder
  • 将您的文件夹命名为 src,然后点击 Finish
  • 右键单击您新创建的 src 文件夹。 选择 New source file
  • 将其命名为 DisplayImage.cpp。 点击 Finish
  1. 所以,现在您有了一个带有空的 .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;
    }
    n 维密集数组类
    定义 mat.hpp:830
    uchar * data
    指向数据的指针
    定义 mat.hpp:2167
    int main(int argc, char *argv[])
    定义 highgui_qt.cpp:3
    定义 core.hpp:107
  2. 我们只缺少最后一个步骤:告诉 OpenCV OpenCV 头文件和库的位置。 为此,请执行以下操作
    • 转到 Project–>Properties
    • C/C++ Build 中,单击 Settings。 在右侧,选择 Tool Settings 选项卡。 在这里我们将输入头文件和库信息
      1. GCC C++ Compiler 中,转到 Includes。 在 Include paths(-l) 中,您应该包含 opencv 安装的文件夹的路径。 在我们的示例中,它是 /usr/local/include/opencv。
注意
如果您不知道您的 opencv 文件在哪里,请打开 Terminal 并输入
pkg-config --cflags opencv
例如,该命令给了我这个输出
-I/usr/local/include/opencv -I/usr/local/include
  1. 现在转到 GCC C++ Linker,您必须填写两个空格

    首先在 Library search path (-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

如果您不知道您的库在哪里(或者您只是精神病患者并想确保路径正确),请在 Terminal 中输入

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

现在您已完成。 点击 OK

  • 您的项目应该可以构建了。 为此,请转到 Project->Build all

    在控制台中,您应该得到类似的结果

如果您在文件夹中检查,那里应该有一个可执行文件。

运行可执行文件

所以,现在我们有一个准备运行的可执行文件。 如果我们要使用终端,我们可能会做类似的事情

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

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

  1. 转到 Run->Run Configurations
  2. 在 C/C++ Application 下,您将看到您的可执行文件的名称 + Debug(如果没有,请多次单击 C/C++ Application)。 选择名称(在本例中为 DisplayImage Debug)。
  3. 现在,在窗口的右侧,选择 Arguments 选项卡。 写入我们要打开的图像文件的路径(路径相对于 workspace/DisplayImage 文件夹)。 让我们使用 HappyLittleFish.png
  1. 单击 Apply 按钮,然后单击 Run。 应该会弹出一个带有鱼图像的 OpenCV 窗口(或者您使用的任何图像)。
  1. 恭喜! 您已准备好使用 Eclipse 来享受 OpenCV 的乐趣。

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

假设您有一个或创建一个新文件,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);
cv::Mat::empty
return 0;
}
CV_8U
#define CV_8U
  1. 创建一个构建目录,例如,在 foo 下:mkdir /build。 然后 cd build。
  2. 在 build 中放置一个 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. 然后单击 configure,然后单击 generate。 如果没问题,退出 cmake-gui
  5. 运行 make -j4(-j4 是可选的,它只是告诉编译器以 4 个线程构建)。 确保它可以构建。
  6. 启动 eclipse。 将工作空间放在某个目录中,但不要放在 foo 或 foo\build
  7. 在 Project Explorer 部分中右键单击。 选择 Import,然后打开 C/C++ 过滤器。 选择 Existing Code 作为 Makefile Project。
  8. 命名您的项目,例如 helloworld。 浏览到 Existing Code 位置 foo\build(您从中运行 cmake-gui 的位置)。 在 "Toolchain for Indexer Settings" 中选择 Linux GCC,然后按 Finish
  9. 在 Project Explorer 部分中右键单击。 选择 Properties。 在 C/C++ Build 下,将 build directory: 从类似 ${workspace_loc:/helloworld} 的内容设置为 ${workspace_loc:/helloworld}/build,因为这是您要构建到的位置。
    1. 您也可以选择修改 Build command:从 make 到类似 make VERBOSE=1 -j4 的内容,这会告诉编译器生成详细的符号文件以进行调试,并且还以 4 个并行线程进行编译。
  10. 完成!