简介:
一直以来都是在ubuntu下使用opencv,最近因为有《图像处理与模式识别》这门课,需要使用vs2015+opencv提交课程作业,因为opencv官方编译好的exe没有contrib部分,就索性自己来cmake,还是鼓足了很大的勇气的,不过还是要勇敢踩坑。
一、编译前准备
1.cmake3.10.3
官网下载,或者【百度云下载】,提取码【hk1p】,自行百度自己安装
2.opencv源码
opencv-3.4.1: https://github.com/opencv/opencv/releases
opencv_contrib-3.4.1: https://github.com/opencv/opencv_contrib/releases
二、cmake编译opencv
1.打开cmake,首先编译opencv-3.4.1, 选定 源码路径 和 编译输出路径 ,如下图:
这里我自己定义的源码路径是:D:/opencv3.4.1/sources/opencv-3.4.1 , 编译输出路径是: D:/opencv3.4.1/build
然后单击 configure , 并选择如下图所示的配置,(我的电脑装的是vs2015 x64)
然后点击Finish,就可以开始进行编译了。
2. 编译opencv-3.4.1过程中遇到的问题,及解决办法
出现问题的原因的是,cmake过程中,需要从国外网站下载一下文件,导致下载不下来。
具体做法是,自己去取下载这三个文件,这里我给出容易下载失败的文件百度云链接,也可以去源码对应的github仓库中的3rdparty中下载自己没有下载成功的文件
opencv_ffmpeg_64.dll 【百度云下载】,提取码:【p4tu】
oepncv_ffmpeg.dll 【百度云下载】,提取码:【qvm6】
ffmpeg_version.cmake 【百度云下载】,提取码:【bm61】
上面文件分别在下面两个压缩文件中,可以去仓库下载,这里我也给出自己下载的链接
ffmpeg相关:【百度云链接】,提取码:【fvy4】 ippicv相关:【百度云链接】,提取码:【2q72】
解决方法:可以参考这个博客【参考链接】
但是我需要说的是,我在配置过程中在编译ippicv_2017u3_win_intel64_general_20170822.zip时,无论我怎么弄始终没有成功,后来我就索性把 WITH_IPP 给勾选掉了,这才编译通过,当然这是权宜之计,尽量还是都配置。
3. 编译opencv_contrib-3.4.1
在OPENCV_EXTRA_MODULES_PATH 下将opencv_contrib-3.4.1路径加入进去,如下图:
编译这个的过程中,竟然没有出错,通常可能也会因为网速的原因而失败的。具体可能失败的文件及解决办法也可以参考上述那个博客!
4. Cmake最后一步
最后点击 “Generate” ,然后出现 Configuring done, 这时候我们就编译好了opencv-3.4.1 + opencv_contrib-3.4.1的源码了
5. opencv在vs2015下的配置
这里就不展开说了,网上有很多教程,一步一步照着来就好了
6. 测试程序
1 #include<opencv2\opencv.hpp>
2 using namespace cv;
3 int main()
4 {
5 Mat srcImage = imread("1.jpg");//图片必须添加到工程目录下
6 //也就是和main.cpp文件放在一个文件夹下!!!
7 imshow("srcImage", srcImage);
8 waitKey(0);
9 }
能正确打开一张图片,说明opencv编译和配置成功