1. 程式人生 > >centos7下opencv3的安裝

centos7下opencv3的安裝

text import -m out 準備 而是 span font 處理

  前面說過opencv和python模塊的安裝,版本是基於opencv 2的,這篇主要說一下opencv3的安裝過程以及相關依賴問題的解決,同樣opencv3的安裝包在官網上可以下載,最新穩定版是3.3.0,下載之後安裝包為:opencv-3.3.0.zip;opencv3的安裝包比2大了2倍以上,改動很大,支持的擴展也很多,具體官網上列出如下:

  技術分享

  這些依賴部分簡單說明如下:

  1). gcc一般系統都會有

  2). cmake要手動安裝並且版本要大於2.8.12,安裝過程之前也寫過

  3). git這個不是必須的,根據需要安裝

  4). GTK不需要也可以不裝,需要的話去官網下載包編譯即可

  5). pkg-config一般系統自帶

  6). python默認用系統的2.7最好提前安裝一下numpy,具體過程前面安裝opencv2都說過

  7). ffmpeg依賴,opencv視頻處理部分是基於ffmpeg的,所以如果想用opencv3來處理視頻那麽必須安裝ffmpeg依賴,並且不能下載官網上最新的ffmpeg,opencv調用的是比較老的系統版本,待會會說明怎麽使用yum安裝

  8). 其他依賴 比如libjpeg或者libpng等,這些盡量都要安裝上,用默認的yum源就可以

  9). CUDA GPU支持,如果有GPU並且驅動和CUDA Toolkit都已經正確安裝,那麽opencv會自動支持

  下面開始安裝,解壓安裝包並進入:

unzip opencv-3.3.0.zip
cd opencv-3.3.0/
mkdir build

  這裏為了不汙染源碼環境,要求必須在新目錄中編譯,現在如果直接開始編譯那麽中間會下載ippicv_2017u2_lnx_intel64_20170418.tgz並且非常慢,這個如果需要可以提前下載好,如果不需要可以屏蔽,下載地址是:http://www.linuxfromscratch.org/blfs/view/svn/general/opencv.html 進入下載即可,配置方法如下:

  首先編輯ippicv.cmake文件 vim 3rdparty/ippicv/ippicv.cmake

然後找到ocv_download這個函數部分,URL下面有一個下載鏈接,我這裏修改如下:

  技術分享

  配置成上面這個前提本機要啟動一個服務器,比如apache,nginx或者python自帶的都行,python自帶的啟動要在上面那個tgz所在的同一目錄啟動,啟動命令是: python -m SimpleHTTPServer 80 另外apache或者nginx的web目錄中也要放入上面下載的文件才可以,具體目錄都可以自己定義的,只要能下載到就可以,另外如果不用就更簡單了,隨便修改一下原來的下載域名下載不到即可,修改完之後保存並退出,這時候編譯時下載就很快了

  然後如果需要ffmpeg支持,那麽需要安裝相關的庫,安裝過程如下:

# 安裝epel擴展源
yum -y install epel-release
# 添加擴展源
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
# 安裝ffmpeg依賴
yum -y install ffmpeg ffmpeg-devel

  現在ffmpeg依賴就安裝好了,如果沒有網絡的話,建議現在一臺有網的計算機上安裝收集到具體的rpm包,然後再復制過去安裝即可,當然如果不使用opencv的視頻處理庫,而是直接使用ffmpeg解碼,那麽上面步驟就完全不需要了

  現在ippicv和ffmpeg都準備好了,那麽可以開始安裝opencv3了

  執行cmake配置:

cd build/
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..

  上面如果CMAKE_INSTALL_PREFIX安裝目錄不指定,默認是安裝到/usr/local下和系統放一塊,完成之後可以查看支持的相關擴展,沒問題執行編譯並安裝:

make -j4
make install

  執行完就安裝成功了,關於python的支持配置和之前完全一樣,復制cv2.so模塊到python庫目錄下即可;另外ffmpeg支持測試如下:

  首先進入解壓好的源碼目錄,不是安裝目錄,然後再執行 cd samples/cpp/example_cmake/ 進入示例目錄,會看到裏面有一個example.cpp文件,在原來基礎上修改如下:

 1 #include "opencv2/core.hpp"
 2 #include "opencv2/imgproc.hpp"
 3 #include "opencv2/highgui.hpp"
 4 #include "opencv2/videoio.hpp"
 5 #include <iostream>
 6 
 7 using namespace cv;
 8 using namespace std;
 9 
10 int main()
11 {
12     cout << "Built with OpenCV " << CV_VERSION << endl;
13     Mat image;
14     VideoCapture capture("/root/test.mp4");
15     if(capture.isOpened())
16     {
17         cout << "Capture is opened" << endl;
18         for(int i = 0;i < 10;i++)
19         {
20             capture >> image;
21             if(image.empty())
22                 break;
23             char image_name[6];
24             sprintf(image_name, "%d.jpg", i);
25             imwrite(image_name, image);
26         }
27     }
28     else
29     {
30         cout << "No capture" << endl;
31     }
32     return 0;
33 }

  上面的代碼很簡單就是從視頻中解出來10幀圖片,視頻文件自己找一個測試即可,編輯完成之後執行下面命令編譯:

cmake .
make

  如果執行編譯沒什麽問題,那麽現在應該生成了一個opencv_example的可執行程序,然後 ./opencv_example 執行即可,正常應該可以生成0.jpg~9.jpg這10張圖片

  到這裏opencv3環境就安裝好了

centos7下opencv3的安裝