在ubuntu14.04下安裝Opencv3,遇到了許多不明白的問題,第一次安裝成功了 並無什麼問題,系統重裝後再次安裝,卻出現了不少問題,特做筆記。python
一 按照官網安裝Opencv步驟:linux
1.須要的包:git
GCC 4.4.x 或更高
github
CMake 2.8.7 或更高
shell
Git
ubuntu
GTK+2.x 或更高,包括頭(libgtk2.0-dev)
ide
pkg-config
測試
Python 2.6 或之後,Numpy 1.5或之後,和開發包(python-dev,python-numpy)
ui
ffmpeg 或者libav開發包:libavcodec-dev, libavformat-dev, libswscale-devthis
可選包:libtbb2 ,libtbb-dev
可選包:libdc1394 2.x
可選包:libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
能夠用一下代碼進行安裝:
基本:
sudo apt-get install build-essential
必須:
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
可選:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2.下載安裝包opencv-3.0.0.zip,也能夠自行上opencv官網下載http://opencv.org/。
解壓安裝包到你想要的地方,本文以存放主文件加下。
利用終端進入opencv3文件夾,代碼以下: 3.
cd ~/opencv-3.0.0
4. 新建build文件夾存放opencv的編譯文件,進入build文件夾代碼以下
mkdir build cd build
5. 配置opencv文件,代碼以下:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
或者使用cmake-gui用圖形界面編譯。
6. 進行編譯,代碼以下:
make
7. 安裝opencv庫到系統,代碼以下:
sudo make install
這樣OpenCV就可使用了。
二 測試
新建一個HelloWorld.cpp,代碼以下:
#include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; int main( int argc, char** argv ) { if( argc != 2 )//判斷參數是不是兩個 { printf( " No image data \n " ); return -1; } char* imageName = argv[1]; Mat image; image = imread( imageName, 1 );//讀入圖片 if( !image.data)//判斷是否有數據 { printf( " No image data \n " ); return -1; } namedWindow( imageName, CV_WINDOW_AUTOSIZE ); imshow( imageName, image );//顯示圖片 waitKey(0); return 0; }
新建CMakeLists.txt,代碼以下:
cmake_minimum_required(VERSION 2.8) project(helloworld) add_executable(helloworld HelloWorld.cpp) find_package(OpenCV REQUIRED) target_link_libraries(helloworld ${OpenCV_LIBS})
在兩個文件所在目錄新建build文件夾存放編譯代碼,並進行編譯,代碼以下:
mkdir build cd build cmkae .. make
以後能夠看見build文件夾裏生成一個helloworld的可運行文件,運行代碼:
./helloworld pitcure.jpg
picture.jpg爲傳入的圖片,做爲參數,放在build文件夾裏,也能夠本身編寫路徑。
三 問題
以上就是OpenCV安裝全過程,安裝過程當中可能碰到一些問題,例舉一些。
在編譯的過程當中可能會碰到找不到Qt5文件的狀況,只是一個警告能夠不理,若是有強迫症的同窗能夠安裝一下Qt5
CMake Warning at cmake/OpenCVFindLibsGUI.cmake:18 (find_package): By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5Core", but CMake did not find one.
另外一個是ICV hash校驗值不符的問題
CMake Warning at 3rdparty/ippicv/downloader.cmake:54 (message): ICV: Local copy of ICV package has invalid MD5 hash: 0103b909e19ca9c6497a7ae696c16480 (expected: 8b449a536a2157bcad08a2b9f266828b) Call Stack (most recent call first): 3rdparty/ippicv/downloader.cmake:108 (_icv_downloader) cmake/OpenCVFindIPP.cmake:235 (include) cmake/OpenCVFindLibsPerf.cmake:12 (include) CMakeLists.txt:526 (include) -- ICV: Downloading ippicv_linux_20141027.tgz... CMake Error at 3rdparty/ippicv/downloader.cmake:71 (file): file DOWNLOAD HASH mismatch for file: [/home/jason/program/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b/ippicv_linux_20141027.tgz] expected hash: [8b449a536a2157bcad08a2b9f266828b] actual hash: [0103b909e19ca9c6497a7ae696c16480] Call Stack (most recent call first): 3rdparty/ippicv/downloader.cmake:108 (_icv_downloader) cmake/OpenCVFindIPP.cmake:235 (include) cmake/OpenCVFindLibsPerf.cmake:12 (include) CMakeLists.txt:526 (include)
以後查了不少資料也沒有發現也不知道該怎麼解決,後來去查了一下代碼,發現這個是下載ippicv_linux_20141027.tgz時的校驗和不符,查看了配置文件,發現能夠自行從http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv這裏下載,奇怪的是編譯時從這裏下載的文件和本身下載的文件校驗值竟然不同,也真是神奇,將下載的文件
~/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b ,代替原來的同名文件,ok問題解決。