使用 gcc 和 CMake 编译简单的 OpenCV 程序

使用 gcc 和 CMake 编译简单的 OpenCV 程序

注意

我们假设你已经成功的安装 OpenCV 。

  • 在你的项目中使用 OpenCV 的最简单方式是用 CMake. 优点是 (来自官方 Wiki):

    1. 支持 Windows 和 Linux,无需任何改动
    2. 和轻松和其他支持 CMake 的工具一起使用( 例如 Qt, ITK 和 VTK )
  • 如果你对 CMake 不熟悉,请参考 教程

步骤

使用 OpenCV 创建一个简单应用

DisplayImage.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], 1 );

    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 文件,内容如下:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

生成可执行文件

这部分很简单,使用如下命令构建即可:

cd <DisplayImage_directory>
cmake .
make

结果

现在你已经有一个可执行程序(名为 DisplayImage ). 你只需要传递一个图片文件即可运行:

./DisplayImage lena.jpg

运行结果:

时间: 2024-09-11 19:42:21

使用 gcc 和 CMake 编译简单的 OpenCV 程序的相关文章

Linux中用cmake编译mysql5.5数据库源码安装教程

MySQL自5.5版本以后,就开始使用cmake编译工具,所以这篇文章主要是讲解如何通过cmkae编译安装mysql5.5及其以后的版本. 注意本篇文章的环境为centos6.5 64bit. cat /etc/system-release uname -a   在安装mysql数据库之前,我们首先要在系统中新建mysql运行时的用户mysql.如下: useradd -M -s /sbin/nologin mysql grep mysql /etc/passwd cat /etc/passwd

图像处理-cmake编译的opencv3.0.0生成的工程无法通过编译

问题描述 cmake编译的opencv3.0.0生成的工程无法通过编译 我在windows下用cmake-gui编译opencv3.0(联合opencv contrib master), 生成的工程Opencv.sln在build的时候出现了许多下列类似的错误: 请问这是什么原因呢? 系统是windows10,vs2013 解决方案 http://www.opencv.org.cn/archiver/?tid-35547.html 解决方案二: http://www.nmtree.net/201

linux-qt上编译opencv程序出错

问题描述 qt上编译opencv程序出错 编译提取棋盘格角点的的程序,但是一直显示cvFindChessboardCorners这个函数有问题,请大神指教! 错误如下: ../qt_subpix1/main.cpp: In function 'int main(int, char**)': ../qt_subpix1/main.cpp:14:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-st

关于gcc和g++编译c文件时的一点疑惑

问题描述 关于gcc和g++编译c文件时的一点疑惑 普遍观点,gcc把c文件当做c处理,把c++当做c++处理:而g++把二者都当做c++处理.这里的处理是指语法分析那一步. 但g++在编译过程中调用了gcc.我疑惑了,语法分析是编译的第二步吧,既然g++调用了gcc,那么它是怎么让gcc把c文件当做c++处理的. 还有一点,就是对于c文件编译出来的符号,使用gcc和g++到底一不一样.比如在c文件里定义int add(int a,int b):用gcc和g++最后编译出来的符号到底是什么?是c

无法解析的外部符号-opencv简单的图像程序,总是出现下面的错误,解决不了!

问题描述 opencv简单的图像程序,总是出现下面的错误,解决不了! opencv简单的图像程序,总是出现下面的错误,解决不了啊!vs2013,vs2010都一样!!!谢谢各位帮帮我!! 我被折磨好几天了!!都重装几次了!!快哭了!!网上也没找到准确的解决方法!!! 谢谢大神们帮助!!没有C币... 解决方案 你的opencv环境配置过没?建议按教程配置下 解决方案二: 需要添加lib库文件http://blog.csdn.net/zyxlinux888/article/details/8048

Linux/Ubuntu下CMake编译MySQL教程

使用Linux+Vim写PHP简直是一种享受.下面是我的Vim配置和安装的插件. 1. 下载MySQL 5.5.28源码包 下载地址:http://www.mysql.com/downloads/mysql/#downloads 在MySQL下载页面的下拉框选择"Source Code",然后选择最下面的tar.gz格式,开始下载.wget开始可以使用:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz这个地址. 2

代码-Xcode6.2 中编译简单.c文件,昨天中午突然出现如下错误

问题描述 Xcode6.2 中编译简单.c文件,昨天中午突然出现如下错误 Xcode6.2 中编译简单.c文件,之前正常,昨天中午突然出现如下错误:,编译什么的都正常,就是一敲cc ./a.out 就出现报错啊,正式无语了,昨天求一天也没人能解决,自己也搞了一上午,还是不行啊...求大神解救,,代码是没错误,因为我拿最简单的代码试了,也会报错 解决方案 是不是连接模拟器了,是64位的问题吧 解决方案二: 你直接在Xcode里面创建一个命令行工程,然后再把这个C源文件导入到工程里,肯定能通过编译哇

mysql 5.6中使用cmake编译

mysql5.6以上的版本采用的cmake编译,和之前的5.5用../configure编译有差别,对于新的编译方法,可以查看cmake的帮助参数,选择适合自己的参数 shell>cmake . -LH -- MySQL 5.6.3-m6 -- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:83 (MESSAGE): Curses l

[求解答!]mac os的终端里怎么编译opencv程序呢?

问题描述 [求解答!]mac os的终端里怎么编译opencv程序呢? wangxiaoxiaodeMacBook-Air:cpp wangxiaoxiao$ g++ facedetect.cpp -o facedetect `pkg-config-cflags --libs opencv` -bash: pkg-config-cflags: command not found facedetect.cpp:1:10: fatal error: 'opencv2/opencv.hpp' file