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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM