将OpenCV与gcc和CMake结合使用

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

上一篇:OpenCV4.9.0开源计算机视觉库在 Linux 中安装

下一篇:

引言:

近年来,计算机视觉技术在图像处理、目标检测和机器人等方面得到了广泛的应用。OpenCV是一个业界著名的计算机视觉库,具有高效性、可扩展性和跨平台性的特点。为了更好地使用OpenCV,我们可以结合gcc和CMake来编译和构建我们的项目。

gcc是一种常用的C/C++编译器,可以在Windows、Linux和Mac等多个平台上使用。CMake是一个跨平台的构建工具,它可以帮助我们自动化构建过程,包括编译、链接和测试等。

本文将演示如何将OpenCV与gcc和CMake结合使用。我们将介绍CMake的基本使用和如何构建一个简单的OpenCV项目。

警告:

本文可以包含过时的信息。

注意:

我们假设您已在工作站中成功安装了 OpenCV。如未成功请参阅上一篇文章成功部署后再学习本文。

在代码中使用 OpenCV 的最简单方法是使用 CMake。一些优点(摘自 Wiki):

在 Linux 和 Windows 之间移植时无需更改任何内容

可以很容易地与CMake的其他工具(即Qt,ITK和VTK)结合使用。

如果您不熟悉 CMake,请查看其网站上的教程。

步骤:

使用 OpenCV 创建程序

让我们使用一个简单的程序DisplayImage.cpp如下所示。

cpp 复制代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], IMREAD_COLOR );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}
创建CMake文件

接下来你需要创建你的CMakeLists.txt文件。它应该如下文:

bash 复制代码
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
生成可执行文件

用以命令如使用CMake的任何其他项目一样进行:

bash 复制代码
cd <DisplayImage_directory>
cmake .
make
结果:

到现在为止,您应该有一个可执行文件(在本例中称为 DisplayImage)。您只需要运行它,并给出图像位置作为参数,即:

bash 复制代码
./DisplayImage lena.jpg

你应该得到一个漂亮的窗口,如下所示:

还有一个方案供大家参考:

  1. 简单的OpenCV项目

首先,我们将创建一个简单的OpenCV项目作为示例。我们将使用C++编写一个程序,该程序将加载一张图片并将其转换成灰度图像。以下是代码:

cpp 复制代码
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
  Mat image;
  image = imread( argv[1], 1 );

  if ( !image.data )
  {
    printf("No image data \n");
    return -1;
  }
  cvtColor( image, image, COLOR_BGR2GRAY );
  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", image );
  waitKey(0);
  return 0;
}

这个程序使用OpenCV加载一张图片,将其转换成灰度图像,并在新窗口中显示。在项目中使用OpenCV,需要在代码中包含OpenCV头文件和链接OpenCV库文件。

2.创建CMakeLists.txt文件

接下来,我们需要创建一个名为CMakeLists.txt的文件。它应该放在项目的根目录中。CMakeLists.txt文件包含了一些指令,告诉CMake如何构建我们的项目。

以下是CMakeLists.txt文件的内容:

bash 复制代码
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

这个文件使用CMake的一些指令来构建我们的项目。其中:

* cmake_minimum_required指令用于指定最低版本的CMake。此示例为2.8。

* project指令指定项目的名称。

* find_package指令查找OpenCV库。

* include_directories指令用于添加头文件路径。

* add_executable指令用于将源代码编译成可执行文件。

* target_link_libraries指令用于链接库文件。

3.构建项目

现在我们已经有了CMakeLists.txt文件,我们可以用CMake来构建我们的项目。在终端中切换到项目目录中,然后输入以下命令:

bash 复制代码
$ cmake .
$ make

第一个命令将根据CMakeLists.txt文件生成Makefile文件,第二个命令将根据Makefile文件构建我们的可执行文件。

如果一切顺利,你应该在项目目录下看到一个名为DisplayImage的可执行文件。

4.运行程序

现在我们已经成功构建了我们的OpenCV项目,让我们来运行它。在终端中输入以下命令:

bash 复制代码
$ ./DisplayImage image.jpg

这个命令将加载名为image.jpg的图片,将其转换成灰度图像并在窗口中显示。

结论:

在本文中,我们介绍了如何将OpenCV与gcc和CMake结合使用。我们创建了一个简单的OpenCV项目,并演示了如何使用CMake来构建该项目。这里只展示了OpenCV和CMake的基本使用,你可以进一步探索它们的其他高级功能。希望这篇文章对你有所帮助。

参考文献:

1.《Using OpenCV with gcc and CMake》Ana Huamán

相关推荐
埃菲尔铁塔_CV算法3 分钟前
深度学习神经网络创新点方向
人工智能·深度学习·神经网络
艾思科蓝-何老师【H8053】21 分钟前
【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
人工智能·信号处理·论文发表·香港中文大学
weixin_452600691 小时前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪
学术搬运工1 小时前
【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)
大数据·图像处理·人工智能·科技·机器学习·自然语言处理
右恩1 小时前
AI大模型重塑软件开发:流程革新与未来展望
人工智能
图片转成excel表格1 小时前
WPS Office Excel 转 PDF 后图片丢失的解决方法
人工智能·科技·深度学习
阿_旭2 小时前
如何使用OpenCV和Python进行相机校准
python·opencv·相机校准·畸变校准
ApiHug2 小时前
ApiSmart x Qwen2.5-Coder 开源旗舰编程模型媲美 GPT-4o, ApiSmart 实测!
人工智能·spring boot·spring·ai编程·apihug
哇咔咔哇咔2 小时前
【科普】简述CNN的各种模型
人工智能·神经网络·cnn
李歘歘2 小时前
万字长文解读深度学习——多模态模型CLIP、BLIP、ViLT
人工智能·深度学习