codecamp

使用OpenCV与gcc和CMake

注意
我们假设您已经在工作站中成功安装了OpenCV。
  • 在代码中使用OpenCV的最简单方法是使用CMake。几个优点(从维基获取):
  1. 在Linux和Windows之间移植时,无需更改任何内容
  2. 可以轻松地与CMake(即Qt,ITK和VTK)的其他工具组合使用
  • 如果您不熟悉CMake,请在其网站上查看教程

Steps

使用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 )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

生成可执行文件

这部分很简单,就像使用CMake的任何其他项目一样:

cd <DisplayImage_directory>
cmake .
make

结果

现在你应该有一个可执行文件(在这种情况下叫做DisplayImage)。你只需要运行它给出一个图像位置作为参数,即:

./DisplayImage lena.jpg

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

GCC_CMake_Example_Tutorial

OpenCV 在Linux中安装
使用OpenCV与Eclipse(插件CDT)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenCV教程

OpenCV高级GUI和媒体(highgui模块)

OpenCV图像输入和输出(imgcodecs模块)

对象检测(objdetect模块)

计算摄影(照片模块)

图像拼接(拼接模块)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }