最近要做caffe,所以要轉ubuntu系統。這個系統給我的最大感覺還是應用匱乏,管理非可視化。與經典的window相比,不斷的報錯,不正常的安裝路徑管理都讓人很抓狂。不過配置opencv的時候給我的感覺就是他的原理比Windows的還要複雜,要用cmake去變異資源文件,然後一會這一會那,但是感官上是方便的。更可控。因爲你不追究底層的原理的話,你只要輸完命令坐着喝喝茶,看他刷屏就行。而windows上的用一次VS還要配一次,給你的錯誤反饋也是非常模糊的,就告訴你是找不到這個文件,至於是沒有添加環境變量還是沒有添加依賴項,對不起,你自己去找。
總而言之。病毒少,輕量化,錯誤提示具體的linux是作爲工程樣機的好選擇。但是作爲辦公和日常的平臺,怕不是要砸電腦。
下面就讓我們開始這次的配置教程:
首先登錄opencv官網進入下載源文件。因爲linux沒有發行版本,所以我們只能下載opencv的source文件。下載好後,先添加一些必要的庫
輸入
sudo apt-get install build-essential
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libboost-all-dev libhdf5-serial-dev
libgflags-devlibgoogle-glog-dev liblmdb-dev protobuf-compiler
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa
libglu1-mesa-devsudo apt-get install build-essential libgtk2.0-dev libavcodec-dev
libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
重複的話系統會自動過濾掉的。這裏有點注意,如果系統報錯的話多半是其他應用由於佔用了這個下載工具。要用kill殺掉那個,具體根據錯誤百度下就好了,Ubuntu強就強在所有的錯誤都是明確告訴你的,而且很容易百度到解決方法。
然後解壓縮自己下的opencv包,我是放在Downloads的opencv2413下面了。用cd進入到/home/用戶名/Downloads/opencv2413 下。接着我們準備去make。這裏也要下載一些cmake的組件和依賴庫
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev
libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
sudoapt-get install build-essential cmake libgtk2.0-dev pkg-configpython-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
然後就可以用 sudo apt-get install cmake 來安裝cmake了
安裝完畢後在opencv2413下輸入cmake .
這裏要注意是 cmake 空格 然後點。到此cmake的配置完成了。接下來就是要make出linux下的文件了。
輸入sudo make 就會進入漫長的編譯過程。
完成後再輸入 sudo make install
把make出來的文件安裝好。這樣安裝就徹底結束了,接着開始配置環境。
輸入 sudo gedit /etc/ld.so.conf.d/opencv.conf
會打開一個文件,基本上是空的,然後末尾加上 /usr/local/lib 這一步其實就把他的opencv的庫加入到系統直接可以調用的庫了。就相當於在Windows下面在環境變量裏添加路徑後就可以直接在dos裏運行python一樣的道理。
保存後輸入sudo ldconfig 使其生效
然後sudo gedit /etc/bash.bashrc 在末尾加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
然後輸入sudo source /etc/bash.bashrc使其生效 (事實上我輸入這個無效,source命令沒找到,但最後也成功了)
最後用sudo updatedb 更新下database就可以了
測試的話直接進入你的opencv2413/sample/c 下
輸入
chmod +x build_all.sh
./build_all.sh
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
可以的話就可以了