1. 程式人生 > >Ubuntu14.04安裝Opencv3.4.0

Ubuntu14.04安裝Opencv3.4.0

Ubuntu14.04安裝Opencv3.4.0


詳細操作步驟可參見官網 Installation in Linux

1.下載原始碼

官網下載 https://opencv.org/releases.html
這裡下載的是opencv3.4.0的版本
這裡我下載的是opencv3.4.0的版本。

2.安裝packages

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

因為第一次接觸和安裝opencv,怕安裝過程有什麼閃失,我把上面可選項也全部安裝了。

3.安裝opencv

先解壓原始碼zip

sudo unzip opencv-3.4.0.zip

進入解壓後的檔案路徑中,建立一個build目錄

sudo mkdir build
cd build

這個目錄是建立在解壓後的檔案路徑裡的,我之前把目錄建立在其他位置,cmake的時候一直報錯找不到CMakeLists.txt
接下來進行配置

cmake [<some optional parameters>] <path to the OpenCV source directory>

官網給出的指導是

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …

這裡的 /usr/local 根據自己的原始碼路徑進行修改,命令的最後面還有兩個點,我之前忘記加上,一直報錯,找了好久沒找出原因
實際操作的時候在 -D 附近有報錯,後面發現文件下方有提示…

Note
Use cmake -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=/usr/local … , without spaces after -D if the above example doesn’t work.

cmake後面可跟多個 -D ,用來指定模組的路徑的,比如
PYTHON_INCLUDE_DIR = /usr/include/python<version> 指定了python的標頭檔案路徑
接下來還是在這個build路徑下,make:

make -j7

執行安裝命令:

sudo make install

到這裡算是安裝完了。

但是試執行demo的時候出了點問題。

4.教程裡的一個例子

例子檢視這裡,在工作目錄下建立一個img1.cpp檔案:

//img.cpp
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main() {
	//string filepath = "169.png";
	Mat img = imread("169.png", 1);

	if (!img.data){
		cout << "No image data.." << endl;
	}

	imshow("Display", img);
	waitKey(0);
	cout << "Hello world " << endl;
	
	return 0;
}

在同一個目錄下建立CMakeLists.txt檔案:

cmake_minimum_required(VERSION 2.8)
project( img1 )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( img1 DisplayImage.cpp )
target_link_libraries( img1 ${OpenCV_LIBS} )

然後在工作目錄下執行

cmake .

這時候報瞭如下錯誤:
Could not find a package configuration file provided by “OpenCV” with any of the following names:
  OpenCVConfig.cmake
  opencv-config.cmake
Add the installation prefix of “OpenCV” to CMAKE_PREFIX_PATH or set
“OpenCV_DIR” to a directory containing one of the above files. If “OpenCV”
provides a separate development package or SDK, be sure it has been
installed.

– Configuring incomplete, errors occurred!

大意就是沒有找到FindOpenCV.cmake這個檔案,然後嘗試去找OpenCVConfig.cmake和opencv-config.cmake,也沒有找到。
我自己在系統根目錄下也沒有找到,不知道是哪裡安裝出了錯誤。但是我在opencv3.4.0的build目錄下找到OpenCVConfig.cmake,所以對img的CMakeLists.txt做了如下修改:

cmake_minimum_required(VERSION 2.8)
project(img1)
set(OpenCV_DIR /home/rrakes/something/opencv/opencv-3.4.0/build) #新增了這一句
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(img1 img1.cpp)
target_link_libraries(img1 ${OpenCV_LIBS})

再一次進行cmake之前要刪除已經生成的CmakeCache.txt和CMakeFiles資料夾

cmake .
make

然後執行

./img1

結果如下:

圖片有點大把整個螢幕都霸了…不過也算是輸出了 ヾ(≧∇≦*)ゝ