[操 做 系 統] Ubuntu 14.04 LTShtml
[OpenCV版本] 3.0.0-betapython
[Eclipse 版 本] 3.8.1linux
須要知識:git
直接編譯安裝opencv通常是會報錯的,有不少依賴工具須要先安裝。主要是:cmake, build-essential, pkg-config, python-dev, python-numpy等,視本身狀況而定。 github
$ sudo apt-get install build-essential cmake libopencv-dev libgtk2.0-dev pkg-config python-dev python-numpy
直接去opencv.org(github) 上下載linux源碼包:web
$ wget https://github.com/Itseez/opencv/archive/3.0.0-beta.zip
解壓文件,新建一個文件夾用於安放編譯結果,而後安裝(選擇安裝在/usr/local下面)shell
$ unzip opencv-3.0.0-beta.zip $ cd opencv-3.0.0-beta $ mkdir release $ cd release $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON
-D WITH_QT=ON -D WITH_OPENGL=ON .. //注意CMakeList.txt在上一層文件夾 $ make -j $(nproc) // make -j 多核處理器進行編譯(默認的make只用一核,很慢),$(nproc)返回本身機器的核數 $ make install //把編譯結果安裝到 /usr/local的 lib/ 和 include/下面
可編輯文本配置部分:/etc/ld.so.conf.d/ 添加 opencv.conf 文件,記錄庫安裝位置;更新配置ubuntu
$ cd /etc/ld.so.conf.d $ sudo vi opencv.config // insert "/usr/local/lib" :q $ sudo ldconfig
有的地方說,須要配置/etc/bash.bashrc 中PKG_CONFIG_PATH 環境變量,貌似不須要。bash
(貌似,上面的opencv.conf都不用配置。只要 make install 就會在/usr/local/lib/pkgconfig下面產生opencv.pr的包含、連接配置)。網絡
檢查包含、連接配置是否正確:
$ pkg-config opencv --cflags --libs $ -I/usr/local/include/opencv -I/usr/local/include /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgcodecs.so /usr/local/lib/libopencv_imgproc.so /usr/local/l ib/libopencv_ml.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_shape.so /usr/local/lib/libopencv_stitch ing.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videoio.so /usr/local/l ib/libopencv_videostab.so
直接編寫C 或者C++ 程序,而後分別用gcc,g++編譯器生成可執行程序。
1) C程序版:
#include <highgui.h> int main(int argc, char **argv) { IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); cvNamedWindow("Image_show",CV_WINDOW_AUTOSIZE); cvShowImage("Image_show",img); cvWaitKey(0); cvReleaseImage(&img); cvDestroyWindow("Image_show"); return 0; }
編譯過程:
$ gcc test.c -o test `pkg-config opencv --cflags --libs`
2) C++程序版:
#include <opencv2/opencv.hpp> using namespace cv; int main( int argc, char** argv ) { Mat image; image = imread( argv[1], 1 ); if( argc != 2 || !image.data ) { printf( "No image data \n" ); return -1; } namedWindow( "Display Image", WINDOW_AUTOSIZE ); imshow( "Display Image", image ); waitKey(0); return 0; }
編譯過程:
$ g++ first.cpp -o first `pkg-config opencv --cflags --libs` // 包含、連接參數必定要放在後面
cmake 是先將程序所需的依賴、原料組織起來,產生Makefile,而後在又make來編譯生成可執行程序。最重要的就是編寫CMakeList.txt文件。以上文C++程序爲例,CMakeList.txt爲:
cmake_minimum_required(VERSION 2.8) project( first ) find_package( OpenCV REQUIRED ) add_executable( first frist.cpp ) target_link_libraries( first ${OpenCV_LIBS} )
而後,CMake,再make:
$ cmake . $ make $ ./first
在IDE工具(如VS,Eclipse)中利用opencv庫,和以上兩種方法考慮的地方同樣,都是要配置好include 和 lib 部分。
具體Ubuntu下用Eclipse的方法,下面繼續。
Ubuntu下安裝很簡單,直接在software center裏就有。或者直接命令行apt-get install
打開eclipse,在help 菜單下選擇 Install new software。打開的install對話框中,work with下拉菜單選擇Indigo Update Site - http://download.eclipse.org/releases/indigo/源。網絡刷新後:
1) Collaboration中選擇Mylyn Context Connector:C\C++ Development組件,而後安裝,重啓eclipse;
2) 繼續回到install對話框,在Programming Language中選擇C\C++相關的組件,如Development Tools,Development Tools SDK,CDT Visual C++ Support等。
安裝好以上組件以後,就能夠在eclipse裏面新建C++工程。
1) 新建一個空的C++工程,而後添加source folder,source file;將上文的C++讀圖代碼拷貝進去。這時確定會提示有不少問題,編譯確定出錯。
2) 接下來就是配置好包含文件和連接庫。右擊project explorer裏面的工程,打開properties,點開C\C++ Build選項,再點擊設置Setting。
a) 設置包含include。在GCC C++ Compiler下面的includes裏面添加include path:/usr/local/include,/usr/local/include/opencv,/usr/local/include/opencv(視本身的代碼選擇include,保險的話,三個都設置上)。
b) 設置連接庫。 在GCC C++ Linker下面的Libraries裏面,先添加search path爲:/usr/local/lib;而後逐個在Libraries中添加opencv_core, opencv_highgui, opencv_imgproc, opencv_imgcodes(貌似是新多出來的一個,不加要報錯)。
3) 配置完畢,project --> Build All。另外說明,若是用IDE裏面的屬性來添加程序參數,文件路徑名最好用絕對路徑(其當前路徑應該爲你的項目一級目錄,跟據這個設相對路徑亦可)。
[1] Rodrigo Berriel's website: http://rodrigoberriel.com/2014/10/installing-opencv-3-0-0-on-ubuntu-14-04/
[2] Using OpenCV with Eclipse: http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html