这里我介绍2种方法
(1)利用别人写好的脚本编译,相对来说省力一点
上Github下载别人写好的脚本文件,网址
https://github.com/jayrambhia/Install-OpenCV
解压缩后,进入Ubuntu/2.4,有不同版本的OpenCV脚本文件。这里我们选择opencv2.4.10(据说opencv2.4.9会编译出错)。
修改opencv2_4_10.sh文件
(这一步很重要,不改虽然opencv能够编译安装成功,但最后运行doppia时,还是会报错)
还记得我们之前在《doppia编译之一:前言及安装CUDA》执行的./deviceQuery后得到的显卡信息吗?这个时候我们就能用到它啦!其中有一项参数是这样的
CUDA Capability Major/Minor version number: 3.0
- 1
- 1
这里我们修改opencv2_4_10.sh就要根据这个参数。把脚本文件中
cmake -D CUDA_ARCH_BIN=3.2 -D CUDA_ARCH_PTX=3.2
- 1
- 1
改成和你自己显卡相匹配的值,比如这里,我们把它改成
cmake -D CUDA_ARCH_BIN=3.0 -D CUDA_ARCH_PTX=3.0
- 1
- 1
这里我的理解是,你编译opencv时设置CUDA的运行能力要和CUDA的实际运行能力一致,不然在运行程序时,就会执行出错。(当然这只是我自己的理解,如果有错误,请指正。)
编译安装opencv
在修改好opencv_2_4_10脚本后,接下来的事情就简单了,你只要执行
sudo ./opencv2_4_10.sh
- 1
- 1
程序会自动帮你安装依赖库及opencv,你要做的就是耐心等待。
(这里它会自动下载opencv,当然有些时候资源不好,程序自动下载会比较慢,这时你可以根据opencv2_4_10.sh提供的下载地址自己用迅雷下好,毕竟迅雷才是下载神器嘛!下载好之后,在opencv2_4_10.sh同目录下创建文件夹OpenCV,并将下载好的zip文件放入OpenCV,这里要注意我们下载的zip的文件名中”opencv-2.4.10.zip”均为小写,而在opencv2_4_10.sh,它检查opencv是否下载的字符名为“OpenCV-2.4.10.zip”,所以我们需要将zip文件名改为“OpenCV-2.4.10.zip”)
(2)第二种方法相对复杂一点,要自己编译opencv
安装编译器及编辑器
在编译opencv之前,你要确保你的系统里有gcc、g++、eclipse、eclipse cdt以及cmake,cmake-gui。可以通过xxx –version 查询软件版本,如果没有,可以根据提示安装,或者直接执行以下命令:
sudo apt-get install xxx # xxx代表以上软件安装包
- 1
- 1
安装相应软件。在装好之后,可以运行eclipse自带的helloworld程序验证安装是否成功。
cmake编译opencv
解压opencv下载包后,进入opencv/sources目录,运行cmake-gui,选择opencv/sources为输入路径,输出路径的话你可以自己新建一个文件夹,或者默认用opencv/,点击“configure”,弹出对话框中选择
Eclipse CDT4-Unix MakeFiles
- 1
- 1
作为其默认编译器,点击“Finish”,开始编译。编译完成后,在Name组合框下,检查“WITHCUDA”是否被勾选。(一般它会自动检测你的机器是否安装CUDA,如果没被勾选,要确认CUDA是否安装成功,确认后,勾选“WITHCUDA”)如果你想运行opencv示例来验证是否安装成功的话,你还可以勾选“opencv Samples”。最后,点击“generate”,成功后,cmkae编译完成。
安装依赖库
在安装opencv之前,我们需要安装一些opencv的依赖库。
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libswscale-dev libjasper-dev
- 1
- 1
安装oepncv
安装好依赖库之后,我们就可以开始安装opencv啦。
在cmake编译的输出路径下,终端输入
sudo make #(这一步opencv2.4.9可能会出错,建议使用opencv2.4.10)
- 1
- 1
创建opencv。最后就是安装opencv,输入命令
sudo make install
- 1
- 1
到这里,我们的opencv编译安装就算成功啦!当然你可以编译opencv的samples验证一下安装正确与否。(不过一般sudo make 能达到100%,出问题的可能性就不大啦!)
引用博客:
https://gist.github.com/bearpaw/c38ef18ec45ba6548ec0
http://www.cnblogs.com/jeakon/archive/2013/05/08/3066469.html
doppia及作者相关介绍链接:
http://blog.csdn.net/xizero00/article/details/43227019
https://bitbucket.org/rodrigob/doppia