安装了ubuntu14.04
分辨率有问题,于是安装英伟达显卡驱动,一个比较简单地方法就是安装Cuda,这里安装的是Cuda7.0版本。
原文地址:http://blog.youkuaiyun.com/altenli/article/details/44199539
若需要cuDNN加速的童鞋,可以参考上面的网址安装CUDA6.5
本步骤能实现用Intel核芯显卡来进行显示, 用NVIDIA GPU进行计算。
1. 安装开发所需的依赖包安装开发所需要的一些基本包
sudo apt-get install build-essential # basic requirement sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe2. 安装CUDA及驱动2.1 准备工作在关闭桌面管理 lightdm 的情况下安装驱动似乎可以实现Intel 核芯显卡 来显示 + NVIDIA 显卡来计算。具体步骤如下:
- 首先在BIOS设置里选择用Intel显卡来显示或作为主要显示设备
-
进入Ubuntu, 按 ctrl+alt+F1 进入tty, 登录tty后输入如下命令
sudo service lightdm stop该命令会关闭lightdm。如果你使用 gdm或者其他的desktop manager, 请在安装NVIDIA驱动前关闭他。
2.2 (貌似可以略过)安装NVIDIA显卡驱动输入下列命令添加驱动源
sudo add-apt-repository ppa:xorg-edgers/ppasudo apt-get update安装346版驱动
sudo apt安装完成后, 最好把下列包也一并安装上 (否则以后可能会缺少文件)
sudo apt安装完成后 reboot.
2.3 下载deb包及安装CUDA使用deb包安装CUDA及驱动能省去很多麻烦(参见CUDA Starting Guide)。下载对应于你系统的CUDA deb包,
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb sudo apt-get update
我下载的是7.0版的,需要先注册才能获得RC版下载权限。
我下载的是deb包,
先双击后在Ubuntu Software Center里点install。
或用下列命令添加软件源然后在终端中用下列命令安装CUDA
sudo apt-get install cuda安装完成后重启电脑.
sudo reboot2.4 安装cuDNN由于还没有出配合CUDA7.0的cuDNN下载,所以暂时不安装cuDNN,以免发生不知名错误。
2.5 设置环境变量安装完成后需要在/etc/profile中添加环境变量, 在文件最后添加:
export PATH保存后, 执行下列命令, 使环境变量立即生效
source /etc/profile同时需要添加lib库路径: 在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下
/usr/local/cuda/lib64保存后,执行下列命令使之立刻生效
sudo ldconfig
安装完CUDA7.0之后安装opcv2.4.9
连接地址:http://my.oschina.net/u/1757926/blog/293976
1. 先从sourceforge上下载OpenCV的源码
2. 解压到任意目录
-
unzip opencv-2.4.9.zip
3. 进入源码目录,创建release目录
-
cd opencv-2.4.9
-
mkdir release
4. 可以看到在OpenCV目录下,有个CMakeLists.txt文件,需要事先安装一些软件
-
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
5. 进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下
-
cd release
6. cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下
-
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
7. 安装
-
sudo make install
8. 测试,在某个目录下建立一个test.cpp文件
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char* argv[])
{
Mat image;
image = imread(argv[1], 1);
if (argc != 2 || !image.data)
{
printf("No image data\n");
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey(0);
return 0;
}
9. 写一个cmake的makefile,也叫CMakeLists.txt
project(test)
find_package(OpenCV REQUIRED)
add_executable(test test)
target_link_libraries(test ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
10. 编译+运行
-
cmake .
-
make
-
得到可执行文件test
11. 随便弄个jpg图片做个测试,注意要和上面那个可执行文件放在同一目录下面,我这里名字取的是test.jpg。
12. ./test test.jpg 如果能看到照片,那就表示成功了。
make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/cuda_compile_generated_matrix_operations.cu.o] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2
解决方法:
(1)依赖包
只要一安装完Ubuntu12.04LTS,就可以直接运行以下命令,不用多管了就。下载500多M,需要1G的磁盘。
sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libxi-dev libxmu-dev freeglut3-dev
note that
(1)libtiff4-dev should be changed into libtiff5-dev in Ubuntu 15.0
(2) if build with CUDA, then we should add -D CUDA_ARCH_BIN="5.0" where 5.0 is the GPU capability, MUST add 5.0, NOT 5
(3) if build with CUDA, then "opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization" error will occur, so we need to replace the file with another one which is in http://blog.
(2)解压OpenCV2.4.2
生成一个文件叫做OpenCV-2.4.2
tar -xjvf OpenCV-2.4.2.tar.bz2
(3)进入OpenCV-2.4.2文件夹
新建文件夹 build---->进入build文件夹,运行下面的"run:"提示的命令 ---->make ----> sudo make install
run:
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON -D WITH_QT=ON -D WITH_CUDA=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local-D CUDA_ARCH_BIN="5.0" ..
note that we can declare "-D WITH_OPENGL=ON -D WITH_QT=ON -D WITH_CUDA=ON ", but actually wedon't need to declare it for CUDA or "-D BUILD_JAVA=ON" for java_bindings , as long as there exists CUDA and JAVA+ANT on your mahine, it will automatically build CUDA and JAVA Bindings. How to build up CUDA and JAVA OpenCV, look my blogs.
把cuda禁掉,后面标红的删掉,前面cuda=on改为off
(4)添加库的路径
sudo gedit /etc/ld.so.conf.d/opencv.conf (这文件在运行gedit之前是没有的) ----〉添加内容 /usr/local/lib到此文件 ---->在终端输入命令sudo ldconfig
注意:sudo make install 之后原来的那个OpenCV-2.4.2 文件应该没用处了,真正的.h文件在/usr/local/include, .so文件在/usr/local/lib
(5)设置环境变量
sudo gedit /etc/bash.bashrc 在文件最后加入下面一行并保存:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
注意:为什么要求(4)和(5)?因为是为了让g++/gcc编译器能找到.so和.h文件。怎样找到?在/usr/loca/lib/pkgconfig文件夹里面有一个文件叫做opencv.pv,里面专门说明了这个.h和.so文件在哪里。
(6)运行
(6-1)重启Ubuntu或重新登录账户,使得OpenCV安装生效。在一个文件夹,随便哪个文件夹下面touch 一个.cpp文件,用来显示图片。
1 #include <highgui.h> 2 #include <iostream> 3 using namespace std; 4 int main(int argc,char **argv) 5 { 6 IplImage* image = cvLoadImage(argv[1]); 7 if(argc < 2 || image==NULL) 8 { 9 cout<<"No image data\n"; 10 return -1; 11 } 12 cvNamedWindow("Display Image",CV_WINDOW_AUTOSIZE); 13 cvShowImage("Display Image",image); 14 cvWaitKey(0); 15 cvReleaseImage(&image); 16 cvDestroyWindow("Display Image"); 17 return 0; 18 }
假设此文件叫做showimg.cpp,编译加上运行的话,我们应该这样做:
g++ -o showimgexe showimg.cpp `pkg-config opencv --cflags --libs`
这样就会生成一个可运行文件。然后测试:这里后面的是图像, 就是argv[1],都懂得,不用多说。
./showimgexe demo.jps
虽然不多说,但是还是要说下这个pkg-config, 这个命令需要跟一个.pc文件。上面的opencv是/usr/lib/pkgconfig文件夹下面的文件叫做哦opencv.pc。(note that if we install opencv with CUDA, and want also run GPU stuff code, we need add "-L/usr/local/cuda/lib64" in --LIBs flags)如果这个文件叫chase.pc那么应该改为pkg-config chase --cflags --libs。 这里的--cflags指明编译过程需要的头文件去哪里找, --libs指明连接过程中so文件去哪里找。那去哪里找?看文件opencv.pc本身就知道了。还有这个命令之外的引号的问题:不是"",不是'',是``!!!!尼玛是不是很坑爹。``值的是ESC键下面那个键,就在Tab上面。
还有一点想说的是:一旦这个showimgexe生成,随便在那个文件夹下都可以运行了。当然必须是在自己的主机上,其他机器根本没安装opencv你想运行那是不可能的。
注:
我们可以将这个showimgexe文件放在一个$PATH变量文件夹下面。
比如我自己增加一个PATH变量:额,PATH变量就是文件夹嘛哎呀。
vim ~/.bashrc
然后在最后加入export PATH=/home/chase/ticker/bin:PATH,重新登陆输入echo PATH,查看是否成功。
(6-2)Codelocks链接OpenCV: http://blog.youkuaiyun.com/cenziboy/article/details/7570139
(7)卸载 OpenCV
into the build file and run: sudo make uninstall
本文详细介绍在Ubuntu 14.04上安装CUDA 7.0和OpenCV 2.4.9的过程,包括安装依赖、配置环境变量等关键步骤,并解决了安装过程中可能遇到的错误。

被折叠的 条评论
为什么被折叠?



