opencv编译linux
如果只是从人工智能的角度来说,linux的优势并不大。我能想到的几个可能的优势有:
1) 包管理。比如你要用c++的一个库opencv,linux下面直接apt-get install libopencv,然后在makefile里面加上-I `pkg-config opencv`就好了。如果是(老版)visual studio里面你要先打开浏览器,搜索opencv的网站,下载,解压,记住路径,回到vs右击工程,点属性,vc++ directories,点编辑,点添加,把路径粘贴进去。蛋都要碎了。
但是!这个优势只在vs2010发布以前有效。新版的vs你只需要右击工程,点nu-get package manager,然后搜索opencv点确定就没了。
2) 各种自动化。比如你写了个训练svm的程序,有1000个svm要训练。在linux下面可以把这个训练的程序编译成可执行文件trainsvm,接口是类似./trainsvm input1.txt svm1.dat。然后在命令行下面seq 1 1000 | xargs -I{} -n 1 -P 12 bash -c './trainsvm input{}.txt svm{}.dat'一下就开了12个进程一块训练,某个进程训练完了以后立马会有下一个补上有木有。(就是管程的概念)我在windows下面用c#实现这样的功能要将近100行,还没有xargs灵活。批量处理超级方便啊。用parallel还可以在多台机器上分布式训练。
但是!你在windows上装个cygwin这些也全都有。。
3) 有时候数据量太大了需要去amazon租ec2并行计算。windows机器比linux贵啊摔。还有配置相对慢。linux弄个小脚本分分钟就把环境都配好了(夹个私货,比如这是我的ec2 linux配直脚本 https://github.com/grapeot/debianinit )。价格这个无解。。配置方面windows的非官方包管理器chocolatey还比较弱,如果有谁知道如何快速配置windows环境欢迎指教。
所以基本结论是,如果只是想日人工智能,老老实实拱算法先,哪个熟用哪个。如果蛋痛想折腾,linux可玩性和逼格都要更胜一筹。而且用熟了以后完成任务(get things done)的能力会加强不少。
‘贰’ linuxopencv生成的静态或动态库怎样在调用的时候不用安装openvcv环境
使用cmake编译opencv静态链接库(静态库),配置环境变量(动态库和静态库一样),复制dll文件。
将这三个dll分别复制到C:WindowsSystem32和C:WindowsSysWOW64目录下。
配置包含目录:视图->其它窗口->属性管理器。配置库目录然后配置附加依赖项。
‘叁’ 怎么安装opencv linux
OpenCV是一个基于开源发行的跨平台计算机视觉库,它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。在linux上安装opencv的方法如下:
工具:
Windows7、VMware Workstation 12 Pro、ubuntu-15.10、opencv-3.0.0.zip
步骤:
一、安装关联库
1、安装编译工具:sudo apt-get install build-essential
编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。
‘肆’ opencv for linux 是 sources版吗
opencv的各个安装版本其实都是带有源码的。只不过windows版本已经编译好了各种dll等库文件,因为windows的系统版本相对固定。linux操作系统版本太多,没法直接给出各种so文件,所以linux版本一般都是源代码版本,然后使用cmake进行编译安装。