因为最近要上《数字图像处理》课,所以配置了一下OpenCV2.4.8 + VS2015的环境。
因为OpenCV2.4.8的Windows官方安装文件不能支持VS2015(build下没有vc14),一开始参考了
http://blog.youkuaiyun.com/poem_qianmo/article/details/19809337和http://www.cnblogs.com/sfzjn/p/4714117.html
上的VS2015+OpenCV2.4.X的配置方法,作者提供的示例用这种方法确实能运行,因为只调用了imread和imshow等简单函数,所以没出问题。
下面做简单的tutorial示例时,发现cout << " " << M报内存Exception,其中M是Mat类型的变量。即cout Mat报错。
包括http://blog.youkuaiyun.com/keith_bb/article/details/50834771?locationNum=2这里的方法都不可用。
根本原因是我用VS2015调用了OpenCV提供的vc12中的dll(OpenCV2.4.8提供支持的最高版本是vc12),不同版本的VS对cout的实现有区别,因此出现conflict。
解决的根本办法是用CMake生成VS2015工程,然后自己编译。
我生成了OpenCV2.4.8+VS2015+Win10的build。在我的下载里面:
http://download.youkuaiyun.com/detail/zhangweilst/9631315
下载之后按http://blog.youkuaiyun.com/poem_qianmo/article/details/19809337中的方法配置即可。不同的是需要把vc10换成我对应文件夹内的vc14。
Enjoy!
zhangweilst