1. 程式人生 > >Ubuntu14.04系統下安裝OpenCV 4.0.0開發環境全過程

Ubuntu14.04系統下安裝OpenCV 4.0.0開發環境全過程

最近研究一個專案時需要用到OpenCV,於是自己嘗試在Ubuntu 14.04系統下安裝了這個開發環境。下面就將具體的過程記錄一下,便於後期查閱和同行分享。

〇、開發環境

首先介紹一下我的開發環境:

  • 物理系統:Win 10 64位;
  • 虛擬工具:Virtualbox 5.2.2;
  • 虛擬系統:Ubuntu 14.04;
  • 軟體版本:OpenCV 4.0.0;

一、準備工作

首先,需要在你的機器上安裝一系列必要的工具,包括:

sudo apt-get update                                      # 這是為了更新你的軟體源
sudo apt-get install build-essential                     # 這是為了安裝編譯所需的庫
sudo apt-get install cmake pkg-config git                # 這是為了安裝一些必要的工具
sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev libgstreamer1.0-dev  libgstreamer-plugins-base1.0-dev

然後,你可以去網上下載OpenCV的原始碼,我是採取git倉庫克隆的方式,直接獲取最新的版本,如下:

git clone https://github.com/opencv/opencv

二、編譯安裝

1、建立編譯目錄

原始碼下載完成後,進入該目錄下,執行以下語句:

cd opencv
mkdir build
cd build

這是為了在原始碼的根目錄下建立一個臨時目錄,用於存放編譯所產生的檔案,不至於汙染原始碼,使得你的原始碼可以根據不同的配置命令分別編譯出多份可執行檔案,每一份都很清晰,不至於混在一起。這個思路,有一個很官方的名字叫OUT SOURCE BUILD,意思就是在程式碼之外的地方進行編譯。而與其相對的,就是IN-SOURCE BUILD,意味在程式碼內進行編譯。所以,如果你不按照我上面的步驟新建一個目錄然後到目錄裡面去編譯的話,系統就會給出一個提示說“In-source builds are not allowed.”,這裡就不截圖了。

2、編譯安裝原始碼

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.0.0 ..
make
sudo make install

說明一下

  • 第一步中,我配置了兩個引數,第一個引數是指定程式為釋出版本,第二個引數是指定安裝目錄,你可以根據你的需要自定義修改;
  • 第一步中,可能會需要下載一個IPPICV外掛,據網上不少同學說,該外掛不好下載,耗時較久,容易失敗,同時也提供了一些解決方案。可是我自己嘗試了三次,都很快就下載好了,因此在此不做多說,如果哪位同學發現自己編譯的過程中下載該外掛時卡住,那麼請自行百度;
  • 第三步中,一定要記得加上sudo,不然會提示許可權不夠;

三、測試效果

完成了上述的所有步驟,就已經萬事俱備,只欠東風了。下面我們就開始進行驗證測試。

進入opencv的原始碼目錄,裡面有一個sample/cpp/example_cmake的子目錄,裡面有一個很簡單的例程,我們就用這個例程來進行演示:

cd opencv/samples/cpp/example_cmake/
cmake .           # 請注意,這裡的cmake後有一個空格,然後是一個點號
make

編譯成功了,執行一下試試:

[email protected]:~/opencv/samples/cpp/example_cmake$ ./opencv_example 
Built with OpenCV 4.0.0-dev

(opencv_example:13315): GStreamer-CRITICAL **: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed
VIDEOIO ERROR: V4L: can't open camera by index 0
No capture

影象如下:
在這裡插入圖片描述
這是因為我的是虛擬機器,沒有攝像頭,因此顯示了黑屏。這一點在上面的輸出提示資訊中也可以看到。如果你的是物理機,也有攝像頭,那麼就會顯示出攝像頭的畫面併疊加上hello opencv的提示語句。

到此,所有工作全部順利完成!恭喜!