Linux非root下安装OpenCV 2.4.1


因为程序在本地运行出现内存不足(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库里的东西,所以只能在我的用户下重装一下。
 
大体流程 参考:
 
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

CentOS下OpenCV无法读取视频文件

Ubuntu 12.04下安装OpenCV 2.4.5总结

Ubuntu 10.04中安装OpenCv2.1九步曲

基于QT和OpenCV的人脸识别系统

相关内容