OpenCV介绍:Linux——在 Eclipse 中使用 OpenCV(插件 CDT) OpenCV v4.8.0

上一个教程利用 gcc 和 CMake 使用 OpenCV

下一个教程 : 在 Windows 中安装

原作者Ana Huamán
兼容性OpenCV >= 3.0

警告
本教程可能包含过时信息。

先决条件

有两种方法,一种是直接创建项目,另一种是使用 CMake 前提条件

  1. 已在工作站中安装 Eclipse(只需安装 C/C++ 的 CDT 插件)。可按以下步骤操作
  2. 安装 OpenCV。如果尚未安装,请访问 此处

创建项目

  1. 启动 Eclipse。运行文件夹中的可执行文件即可。
  2. 转到文件 -> 新建 -> C/C++ 项目
    在这里插入图片描述
  3. 为项目选择一个名称(如 DisplayImage)。本例中使用空项目即可。
    在这里插入图片描述
  4. 其他一切保持默认。按 “完成”。
  5. 您的项目(本例中为 DisplayImage)应出现在项目导航器中(通常位于窗口左侧)。
    在这里插入图片描述
  6. 现在,让我们使用 OpenCV 添加一个源文件:
    • 右键点击 DisplayImage(在导航器中)。新建 -> 文件夹
      在这里插入图片描述
    • 将文件夹命名为 src,然后点击完成
    • 右键点击新创建的 src 文件夹。选择 “新建源文件”:
    • 将其命名为 DisplayImage.cpp。点击完成
      在这里插入图片描述
  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;
}
  1. 我们只差最后一步了: 告诉 OpenCV OpenCV 头文件和库在哪里。为此,请执行以下操作:
    • 转到项目->属性
    • C/C++ Build 中,点击 Settings(设置)。在右侧,选择 "工具设置 "选项卡。我们将在此输入头文件和库信息:
      a. 在 GCC C++ 编译器中,转到包含。在**包含路径(-l)**中,应包含安装 opencv 的文件夹路径。在我们的例子中是 /usr/local/include/opencv。

在这里插入图片描述

注意
如果不知道 opencv 文件在哪里,请打开终端并键入 pkg-config --cflags opencv 例如,该命令的输出如下
-I/usr/local/include/opencv -I/usr/local/include

b. 现在进入 GCC C++ 链接器,在那里你必须填写两个空格:

首先,在 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

在这里插入图片描述
如果你不知道你的库在哪里(或者你只是精神病患者,想确保路径是正确的),请在终端中键入

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)。

在控制台中,你应该得到类似于
在这里插入图片描述
如果检查文件夹,里面应该有一个可执行文件。

运行可执行文件

现在,我们有一个可执行文件可以运行了。如果使用终端,我们可能会做如下操作

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

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

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

在这里插入图片描述
4. 点击 "应用 "按钮,然后点击 “运行”。此时会弹出一个 OpenCV 窗口,其中包含鱼的图像(或您使用的任何图像)。

在这里插入图片描述

  1. 恭喜您 您已经准备好使用 Eclipse 体验 OpenCV 的乐趣了。

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

假设您在名为 foo 的目录中拥有或创建了一个新文件 helloworld.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 下创建一个 build 目录: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} )
  1. 运行:cmake-gui …并确保填写了 opencv 的构建位置。
  2. 然后点击 configure(配置),再点击 generate(生成)。如果没问题,退出 cmake-gui
  3. 运行 make -j4(-j4 是可选的,它只是告诉编译器以 4 个线程编译)。确保编译成功。
  4. 启动 eclipse。将工作区放在某个目录下,但不要放在 foo 或 foo\build 中。
  5. 在 Project Explorer 部分点击右键。选择导入,然后打开 C/C++ 过滤器。选择现有代码作为 Makefile 项目。
  6. 为项目命名,比如 helloworld。浏览到 Existing Code 位置 foo\build (你运行 cmake-gui 的位置)。在*"Indexer 设置的工具链 "*中选择 Linux GCC,然后按 “完成”。
  7. 在 Project Explorer 部分点击右键。选择属性。在 C/C++ 编译下,设置编译目录:从 ${workspace_loc:/helloworld}${workspace_loc:/helloworld}/build ,因为这是你的编译目录。
    a. 你还可以选择修改编译命令:从 make 改为 make VERBOSE=1 -j4 这样的命令,这样编译器就会生成详细的符号文件用于调试,并以 4 个并行线程进行编译。
  8. 完成!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值