ubuntu 14.04 64位 安裝Opencv3.1.0 (包含opencv_contrib模塊)

ubuntu 14.04 64位 安裝Opencv3.1.0 (包含opencv_contrib模塊)

寫在前邊:

據官方說法,目前還不是太穩定的算法模塊都在opencv_contrib裏邊,由於不穩定,所以不能在release版本里發行,只有在穩定以後纔會放進release裏邊。但是這裏邊有很多我們經常要用的算法,比如SIFT,SURF等(在xfeatures2d 模塊裏邊)。官網提供了說明,可以把opencv_contrib擴展模塊添加編譯到已安裝的opencv3.0.0裏邊,也可以安裝的時候直接把擴展模塊編譯進去一併安裝。

 

1.依賴關係:

  • GCC 4.4.x or later
  • CMake 2.8.7 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev)
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev

注:官方文檔中雖然說其中一些依賴包是可選的,但是最好還是都裝上,以防出問題。

以上依賴包可用以下命令安裝:

1
2
3
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.下載源碼:

a.可以從opencv官網直接下載:http://opencv.org/downloads.html

b.也可以從github上clone:

1
2
3
cd ~/<my_working_directory>  //比如工作目錄爲opencv即,cd ~/opencv
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git

  

3.CMake Opencv源碼:

建立一個編譯目錄(例如:/build)把cmake後的文件都放在這裏邊。

1
2
3
cd ~/opencv
mkdir build  //建立一個build目錄,把cmake的文件都放着裏邊
cd build   //進入build目錄

  

然後開始cmake,這裏需要注意幾個cmake的參數,比較重要。

1
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..


注:命令中最後的"  .. "(空格+兩個點)千萬不要忘記

其中 CMAKE_BUILD_TYPE=Release / Debug

OPENCV_EXTRA_MODULES_PATH 就是用來指定要編譯的擴展模塊,後邊加上剛下載的opencv_contrib模塊的路徑即可。

這裏官方文檔上還給出了其他一些參數,但是我沒用過,這裏就不再描述了。有需要的可以查看http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html

進入上述中新建的build文件目錄中,進行如下命令

 eg:

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ../opencv

linux文件目錄結構如下

opencv

---opencv

---opencv_contrib

---build

4.把代碼編譯成可執行文件,這裏官方推薦使用多進程編譯,推薦七個進程:

1
make -j7 # 並行運行七個jobs,這一步也在build目錄中進行

  

5.安裝。

1
sudo make install

  

6.運行測試。

我是用python+opencv的,我這裏直接運行opencv自帶的python的例子程序

1
2
cd <opencv3.1.0_dir>/samples/python/
python asift.py

結果:

 

 

參考文獻:

http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html

https://github.com/Itseez/opencv_contrib/blob/master/README.md


轉載:http://www.cnblogs.com/asmer-stone/p/5089764.html


在使用c++語言進行運行

當運行出現如下錯誤時

./a.out: error while loading shared libraries: libopencv_core.so.3.1: cannot open shared object file: No such file or directory

首先進行配置:

進入終端,輸入 sudo vi  /etc/ld.so.conf.d/opencv.conf

然後在文件中插入以下文字

/usr/local/opencv/

輸入:wq 退出

在終端中輸入 sudo ldconfig 即可

http://stackoverflow.com/questions/19164343/opencv-libopencv-core-so-2-4-cannot-open-shared-object-file-no-such-file-or

然後新建文件 vi test.cpp ,在文本中輸入如下代碼

#include <iostream>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main(int argc,char* argv[])
{
	const string WINDOW_NAME = "lena";
	const string INPUT_PIC = "lena.jpg";
	Mat srcImg = imread(INPUT_PIC);
	if(srcImg.empty())
	{
		cout << "image do not exist" <<endl;
		return -1;
	}
	namedWindow(WINDOW_NAME);
	imshow(WINDOW_NAME,srcImg);
	waitKey(0);
	return 0;
}

注: 圖片和.cpp 在相同的目錄下
有三種常規方式進行編譯,鏈接和執行的。
1.使用終端命令

進行編譯和鏈接 ,在命令行中輸入 

g++ test.cpp -lopencv_core -lopencv_highgui -lopencv_imgcodecs

或者

g++ test.cpp `pkg-config --libs opencv`

然後執行 ./a.out 即可

2. 使用Makefile文件

在當前目錄下建立一個Makefile 文件,然後在文件中添加如下內容:

#first way
main:main.o
	g++ -o main main.o -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs
main.o:main.cpp
	g++ -c main.cpp

# second way
#CFLAGS = `pkg-config --cflags opencv`
#LIBS = `pkg-config --libs opencv`

#% : %.cpp
#	g++ -o $@ $<  $(CFLAGS) $(LIBS)

添加完成後,在當前目錄先執行 eg: make main

執行完成後,輸出main 文件,執行 ./main 即可

3. 使用Cmake 的方式

在當前目錄中添加CMakeLists.txt 文件,在文件中添加如下內容:

cmake_minimum_required(VERSION 2.8) 
PROJECT (name)
find_package(OpenCV REQUIRED )
set( NAME_SRC
    ./main.cpp    
)

#set( NAME_HEADERS       
#     include/header.h
#)

INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include )
link_directories( ${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)

#add_executable( name ${NAME_SRC} ${NAME_HEADERS} )
add_executable( name ${NAME_SRC} )

target_link_libraries( name ${OpenCV_LIBS} )

添加完成後,在當前目錄中新建一個build目錄,mkdir build,

然後切換到build目錄中,使用 cd build

在build文件夾目錄中 執行cmake 命令,使用示例如下:

cmake ..  //  .. 代表上一級目錄 ,

make

執行完成後,會有bin 目錄生成,進入bin目錄,cd bin

發現有 name 文件

執行 ./name 命令即可。


相關其他鏈接:

http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

http://www.tuicool.com/articles/EBVNnuV

https://www.linuxhint.com/how-to-install-opencv-on-ubuntu/




發佈了6 篇原創文章 · 獲贊 127 · 訪問量 86萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章