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

  • 相关阅读:
    hiveserver2 with kerberos authentication
    python Basic usage
    python Quicksort demo
    Python HeapSort
    mrunit for wordcount demo
    CCDH证书
    Hadoop question list
    Hadoop Yarn core concepts
    Hadoop Resource
    Hadoop could not find or load main class
  • 原文地址:https://www.cnblogs.com/justany/p/2774253.html
Copyright © 2011-2022 走看看