Linux平臺上安裝OpenCV?

Tags: 平臺, 編譯,

OpenCV是一個基於開源發行的跨平臺計算機視覺庫,它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。

工具/原料

Windows7

VMware Workstation 12 Pro

ubuntu-15.10

opencv-3.0.0.zip

一、安裝關聯庫

安裝編譯工具:

sudo apt-get install build-essential

編譯程序有了這個軟件,它才知道頭文件和庫函數在哪,最後才形成一個開發環境。

Linux平臺上安裝OpenCV

安裝 cmake、git、pkg-config等輔助工具:

sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev

Linux平臺上安裝OpenCV

安裝關聯庫:

sudo apt-get install python-dev python-opencv python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

Linux平臺上安裝OpenCV

二、編譯OpenCV

從網上下載OpenCV-3.0.0.zip。

下載地址:

Linux平臺上安裝OpenCV

如果使用虛擬機,最好將OpenCV-3.0.0.zip移動到用戶主目錄下進行編譯,一定不能在虛擬機在Windows系統裡的共享文件夾下進行編譯,否則會因為文件系統(Windows7的文件系統是NTFS,ubuntu-15.10的文件系統是)不同在編譯過程中出錯。鄙人在共享文件夾下進行編譯,編譯進行到%15時報錯,我修復後又在編譯進行到%21時報錯,反正是各種錯誤,我是沒有能力繼續修復了......

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

最好將OpenCV-3.0.0.zip移動到用戶主目錄下進行編譯:

mv [OpenCV-3.0.0.zip存放路徑] ~/opencv_3.0.0.zip

unzip opencv_3.0.0.zip

cd opencv-3.0.0

mkdir release

cd release

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

CMake是一個跨平臺的編譯工具,想深入學習cmake命令的可以百度一下。

編譯命令:

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 ..

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

make命令(-j表示用幾個線程來編譯,這樣可以加快編譯速度,不過這個與makefile的質量有關,有的工程用了-j會編譯出錯):

make -j $(nproc)

上述命令後一般大約要耗時1個小時,甚至更多,視個人電腦硬件配置而定。

執行完以後不要忘了make install:

sudo make install

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

如果編譯過程出錯後想要重新編譯,把release目錄下的CMakeCache.txt刪除掉即可。

Linux平臺上安裝OpenCV

三、設置環境變量

添加庫路徑:

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

Linux平臺上安裝OpenCV

更新系統庫:

sudo ldconfig

Linux平臺上安裝OpenCV

四、用cmake進行測試

DisplayImage.cpp中的源代碼:

#include

#include

using namespace cv;

int main(int argc, char** argv)

{

if ( argc != 2 )

{

printf("[usage]: %s \n", argv[0]);

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;

}

Linux平臺上安裝OpenCV

CMakeLists.txt中的源代碼:

cmake_minimum_required(VERSION 2.8)

project( DisplayImage )

find_package( OpenCV REQUIRED )

add_executable( DisplayImage DisplayImage.cpp )

target_link_libraries( DisplayImage ${OpenCV_LIBS} )

Linux平臺上安裝OpenCV

編譯命令:

cmake .

make

運行命令:

./DisplayImage 01.jpg

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

五、用make進行測試

opencv_test.cpp中的源代碼:

#include "cv.h"

#include "highgui.h"

#include

using namespace std;

#define PICTURE "./01.jpg"

int main(void)

{

IplImage* img = cvLoadImage(PICTURE, 0);

cvNamedWindow( "test", 0 );

cvShowImage("test", img);

cvWaitKey(0);

cvReleaseImage( &img );

cvDestroyWindow( "test" );

return 0;

}

Linux平臺上安裝OpenCV

Makefile中的源代碼:

CXX = g++

CFLAGS = -Wall

LDFLAGS = `pkg-config --cflags --libs opencv`

SRCS = $(wildcard *.cpp)

TARGETS = $(patsubst %.cpp, %, $(SRCS))

all:$(TARGETS)

$(TARGETS):$(SRCS)

$(CXX) -o [email protected] $< $(LDFLAGS) $(CFLAGS)

clean:

-rm -rf $(TARGETS) *~ .*swp

.PHONY: clean all

Linux平臺上安裝OpenCV

編譯命令:

make

運行命令:

./opencv_test

代碼寫得比較簡單,所以顯示效果是一張黑白圖片。

Linux平臺上安裝OpenCV

Linux平臺上安裝OpenCV

相關問題答案