zoukankan      html  css  js  c++  java
  • Linux 中使用 OpenCV

    修订记录

    • 2012.11.20修订OpenCV 2.4+在CentOS安装方法。
    • 2012.11.21添加OpenCV 2的打开图片的写法。

    预备

    • GCC
    • CMake
    • OpenCV

    这些都可以在CentOS 6.0的“添加/删除软件”里面找到并安装。其他Linux版本可以选择用编译后安装或者在Rpmfind寻找二进制安装版本:

      http://rpmfind.net/

    CentOS安装OpenCV 2.4+

    • 下载OpenCV 2.4+压缩包解压到一个文件夹里,如:/home/me/opencv/
    • 构建Makefile,在终端输入,进行构建:

    cd /home/me/opencv/

    cmake .

    • 进行编译并安装,编译过程可能有些警告发生,请无视这些警告:

    make

    make check

    make install

    写一个OpenCV程序

    新建一个简单的程序,例如:DisplayImage.cpp。

    #include <stdio.h>
    #include <cv.h>
    #include <highgui.h>
    
    //使用cv这个命名空间
    using namespace cv;
    
    /*    主函数
     *C语言规定main函数只能有两个参数,
     *习惯上将这两个参数写成argc和argv。
     *第一个代表(传参个数+1),
     *第二个代表传惨数据。
     *一般有两种写法:
     *main( int argc, char* argv[])
     *main( int argc, char** argv)
     */
    int main( int argc, char** argv )
    {
      //建立一个Mat类型的变量image
      Mat image;
      /* API中有:
       * C++: Mat imread(const string& filename, int flags=1 )
       * 意思是返回Mat类型数据,第一个参数接受一个string类型的引用,
       * 第二个参数接受一个int类型的flags,一般都是1。
       */
      image = imread( argv[1], 1 );
    
      //当传的参数不是一个,或者图片没有数据则提示没有图片并退出程序
      if( argc != 2 || !image.data )
        {
          printf( "没有该图片 \n" );
          return -1;
        }
      
      //C++: void namedWindow(const string& winname, int flags=CV_WINDOW_AUTOSIZE )
      namedWindow( "显示图片", CV_WINDOW_AUTOSIZE );
      //C++: void imshow(const string& winname, InputArray mat)
      imshow( "显示图片", image );
      //C++: int waitKey(int delay=0)
      waitKey(0);
    
      return 0;
    }

    新的头文件写法

    同样的程序,可以用新的头文件写法来写:

    #include "opencv2/core/core.hpp"
    
    #include "opencv2/highgui/highgui.hpp"
    
    #include <stdio.h>
    
    using namespace cv;
    
    int main( int argc, char** argv ){
        Mat image;
        image = imread( argv[1]);
    
        if( argc != 2 || !image.data ){
            printf("没有图片\n");
            return -1;
        }
    
        namedWindow( "显示图片", CV_WINDOW_AUTOSIZE );
        imshow( "显示图片", image );
        waitKey(0);
    
        return 0;
    }

    创建一个对应的CMake文件

    新建一个CMakeLists.txt,内容大概是这样的:

    project( DisplayImage )
    find_package( OpenCV REQUIRED )
    add_executable( DisplayImage DisplayImage )
    target_link_libraries( DisplayImage ${OpenCV_LIBS} )

    生成可执行文件

    cd <DisplayImage_directory>
    cmake .
    make

    结果

    生成了一个DisplayImage文件,所以运行这个文件,将文件路径传进去:

    ./DisplayImage lena.jpg

    你就能看到图片了:

    被山寨的原文

    Using OpenCV with gcc and CMake . OpenCv.org

  • 相关阅读:
    perimeter of squares
    map
    django路由
    for的骚用法
    3和5的倍数相加和
    PeteCake 字典和最小值
    Find the missing letter
    实现简单的ssh功能
    开源运维工具体系
    vsftp在iptables中的配置
  • 原文地址:https://www.cnblogs.com/justany/p/2774253.html
Copyright © 2011-2022 走看看