https://opencv.org/releases/page/3/原版压缩包,分zip和windows的exe。
https://github.com/opencv/opencv/releases/tag/3.4.3 也是一个下载途径
https://github.com/opencv/opencv_contrib/releases/tag/3.4.3 contrib,也分版本的,要对应吧
(contrib的一个总目录https://github.com/opencv/opencv_contrib/releases)
linux的安装方法(参考的是别人的3.2.2的过程)
1. sudo apt-get install build-essential
2. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3. sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
cmake(下过了,连接不找了,何况他这是linux的cmake)
build建在源文件路径下
有专门的参数指定额外的库
CMAKE_INSTALL_PREFIX安装路径
OPENCV_EXTRA_MODULES_PATH模块路径
在终端执行以下两步:
第一步:
cd opencv-3.2.0/build
第二步:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D OPENCV_EXTRA_MODULES_PATH=/home/jason/opencv_contrib-3.2.0/modules/ ..
如果不安装opencv_contrib模块,则第二步的命令为:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320
cmake过程中可能遇到的问题:
如果网络不好,出现ippicv_linux_20151201.tgz无法在终端下载的情况,则可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件),如路径/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/
移动的时候,可以另外打开一个终端操作:
sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
如果同样有其他类似的文件无法下载,方法同上。
在终端执行以下两步:
第1步:
sudo make
第2步:
sudo make install
linux下这样算安装完成
windows版本的cmake过程
1.用cmake-gui,选中opencv的根目录,选中build目录。
2.点configure,3.4.3+vs2015+default(失败,别人有个3.0.0-vs2013的,opencv本身是vs不相关的吧??或者说默认的编译选项太多了?但是我不知道怎么选啊)
核心问题是编不过去,是找到别人的参考,还是自己根据错误把配置选项全删了?
关掉WITH_CUDA,居然成功了,看来就是CUDA问题。generate也成功了
这个表里不止有选项打钩,还有变量,在其中找到Name为OPENCVEXTRAMODULESPATH的参数,然后把它的Value设置为opencvcontrib的路径
要精细到modules路径
3.generate生成,生成
最后,会得到一个OpenCV.sln?
用VS
打开D:/VS2015/opencv-3.4.0/build/目录下的OpenCV.sln
编译debug版本库:在“解决方案'OpenCV'(3.0.0有141个项目?3.4.3我只有30个项目?)”上面点击右键-->重新生成解决方案
实测报错
http://tieba.baidu.com/p/5682396502
我的3.4.2怎么报4.0的错误?
错了,第二次是139个项目,之前可能是路径设定再source下的build,可能和其他配置有冲突,互相改写了?现改名mybuild,好像也不是,选项里那些build,都是根据输出路径自动生成的,修改之后一样的错误
再勾上nonfree,确实是141个项目
项目设置是否对?debug,win32?
3.找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”,然后就在D:\opencv3\opencv\mybuild\install中发现了许多东东。
什么时候设置?生成之后?
然后是自己项目的引用(这里的vc12限于VS2013,VS2015应该是vc14)
-
VC++目录-->包含目录,添加:
D:\opencv3\opencv\mybuild\install\include -
VC++目录-->库目录,添加:
D:\opencv3\opencv\mybuild\install\x86\vc12\lib
D:\opencv3\opencv\mybuild\install\x86\vc12\staticlib -
链接器-->输入-->附加依赖项,添加opencv_xxxxxd.lib(这个见仁见智,不同版本名称不同,总之就是openc库目录的所有)
额外的:
surf什么的属于收费模块,应该勾选如下选项?这是否与前边的错误有关?(按理说这是编译之后使用才可能出现的错误,目前卡在了编译)但是勾选之后这一步都过不去了,不勾选,好歹是能出sln,顶多是sln编译不过,