返回:OpenCV系列文章目录(持续更新中......)
上一篇:将OpenCV与gcc和CMake结合使用(6)
下一篇:OpenCV4.9.0在windows系统下的安装(8)
警告:
本教程可以包含过时的信息。
先决条件
两种方式,一种是直接形成项目,另一种是CMake先决条件
- 在您的工作站中安装了 Eclipse(只需要 C/C++ 的 CDT 插件)。您可以按照以下步骤操作:
- 转到 Eclipse 站点
- 下载面向 C/C++ 开发人员的 Eclipse IDE。根据您的工作站选择链接。
- 安装了 OpenCV.如果还没有,请转到此处。
制作项目
- 启动 Eclipse。只需运行文件夹中的可执行文件即可。
-
转到File -> New -> C/C++ Project(文件->新建->C/C++工程->)
-
为您的项目选择一个名称(即 DisplayImage)对于此示例,空项目应该没问题。
- 默认情况下保留其他所有内容。按 Finish(完成)。
-
项目(在本例中为 DisplayImage)应显示在“项目导航器”中(通常位于窗口的左侧)。
- 使用 OpenCV 添加一个源文件::
-
右键单击DisplayImage (在导航器中). New -> Folder(新建文件夹) .
- 将文件夹命名为 src,然后点击 Finish(完成)
- 右键单击新创建的 src 文件夹。选择 New source file(新建 -> 文件):
-
设置文件名为: DisplayImage.cpp. 点击Finish(完成)
-
- 出现一个心得空.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; }
- 设置以下 OpenCV 头文件和库路径:
- 转到项目Project–>Properties(项目->属性)
- 在 C/C++ Build 中,单击“设置”。在右侧,选择“工具设置”选项卡。在这里,我们将输入标题和库信息:
-
在 GCC C++ 编译器中,转到包含。在 Include paths(-l) 中,包含安装 opencv 的文件夹的路径如: this is /usr/local/include/opencv.
注意:
如果您不知道 opencv 文件在哪里,请打开终端并键入:pkg-config --cflags opencv
例如,该命令给了我以下输出:-I/usr/local/include/opencv -I/usr/local/include
转到 GCC /C++ 链接器,需要填充两个空格:
-
首先,在库搜索路径 (-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 中做到这一点::
- 点击: Run->Run Configurations(转到运行>运行配置)
- 在“C/C++ 应用程序”下,您将看到可执行文件的名称 + 调试(如果没有,请单击 C/C++ 应用程序几次)。选择名称(在本例中为 DisplayImage Debug)
-
出现在窗口的右侧,选择“参数”选项卡。 写下我们要打开的图像文件的路径(相对于 workspace/DisplayImage 文件夹的路径)。让我们使用HappyLittleFish.png:
-
单击“应用”按钮,然后单击“运行”。OpenCV 窗口应该会弹出鱼图像(或您使用的任何图像).
- 到此你就可以完成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;
}
- 创建一个构建目录,比如说,在 foo: mkdir /build 下。然后 cd 构建。
- 将
CmakeLists.txt
文件放入构建中文件夹:编写如下代码PROJECT(helloworld_proj) FIND_PACKAGE(OpenCV REQUIRED) ADD_EXECUTABLE(helloworld helloworld.cxx) TARGET_LINK_LIBRARIES(helloworld \f${OpenCV_LIBS})
- 运行:cmake-gui .并确保填写 OpenCV 的构建位置。
- 然后单击“配置”,然后单击“生成”。如果没问题,请退出 cmake-gui
- 运行
make -j4
(-j4 是可选的,它只是告诉编译器在 4 个线程中构建)。确保它生成。 - 启动 eclipse。将工作区放在某个目录中,但不在 foo 或
foo\build
- 在“项目资源管理器”部分中单击鼠标右键。选择“导入”,然后打开“C/C++”筛选器。选择“现有代码”作为生成文件项目。
- 为您的项目命名,比如 helloworld。浏览到“本地目录”foo\build位置(运行 cmake-gui 的位置)。在 *“Toolchain for Indexer Settings”* 中选择 Linux GCC,然后按完成
- 在“项目资源管理器”部分中单击鼠标右键。选择“属性”。在 C/C++ Build 下,设置构建目录:从类似于like
${workspace_loc:/helloworld}
到${workspace_loc:/helloworld}/build
s的东西,假设这是你要构建到的位置。- 您还可以选择将 Build 命令:从 make 修改选项
make VERBOSE=1 -j4
,它告诉编译器生成详细的符号文件以进行调试,并在 4 个并行线程中进行编译
- 您还可以选择将 Build 命令:从 make 修改选项
参考文献:
1.《Using OpenCV with Eclipse (plugin CDT)》作者:Ana Huamán