歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux非root下安裝OpenCV 2.4.1

Linux非root下安裝OpenCV 2.4.1

日期:2017/2/28 14:33:54   编辑:Linux教程

因為程序在本地運行出現內存不足(mat類型create時,需要(15000+22000)*(33*321)*4=1,567,764,000bytes空間,15000和22000為正負樣本數量,33為樣本大小32加1,321=32*10+1,CV_32SC1類型數據每個像素占用4個bytes),這樣也就是差不多超過1.5G,當初腦殘裝了32位系統,現在表示無能為力分配這麼多內存。)所以需要在服務器上運行程序。由於服務器裝有舊版本OpenCV,我的程序需要新OpenCV庫裡的東西,所以只能在我的用戶下重裝一下。

大體流程 參考:http://www.linuxidc.com/Linux/2014-04/99752.htm

1.首先在終端運行下列命令進行必要的編譯環境安裝。
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev

2.下載OpenCV-2.4.1
# tar -jxvf OpenCV-2.4.1.tar.bz2
# cd OpenCV-2.4.1

3.終端運行
# mkdir build
# cd build
# cmake ../(此處參考下面的命令可以修改make的目錄,默認是在/usr/local,但是非root用戶不能這樣,否則後面有make的時候可能失敗,因為需要把一些文件寫入/usr/local/下面,但是這個目錄一般用戶可能沒有write權限)

4.依次運行
# make
# make install

5.配置必要的庫
# sudo gedit /etc/ld.so.conf.d/opencv.conf
添加/usr/local/lib這句到文件中,文件或許是空的,不影響。
# sudo ldconfig
# sudo gedit /etc/bash.bashrc
添加下面兩行到文件的末尾並保存。
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

6.運行測試程序
# mkdir opencv_samples
# cp OpenCV-2.4.1/samples/c/* opencv_samples
# cd opencv_samples/
# chmod +x build_all.sh
# ./build_all.sh
# ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg

不過之前cmake在服務器上的都有,重點就是install的時候需要修改一下位置,不能默認裝在/usr/local/下,下面來自:http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 不過上面有個地方需要修改: D跟CMAKE是連在一起的。

推薦閱讀

Ubuntu 12.04 安裝 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm

CentOS下OpenCV無法讀取視頻文件 http://www.linuxidc.com/Linux/2011-07/39295.htm

Ubuntu 12.04下安裝OpenCV 2.4.5總結 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 10.04中安裝OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm

基於QT和OpenCV的人臉識別系統 http://www.linuxidc.com/Linux/2011-11/47806.htm

Copyright © Linux教程網 All Rights Reserved