今天安装opencv4.0 beta,配合vs2017commubity版本
1、配置
过程可参考三个博文。 感谢魏云舒、Monster_Girl和King_LJames三位博主!
https://blog.csdn.net/weixin_39393712/article/details/79583274
https://blog.csdn.net/Monster_Girl/article/details/78925141
https://blog.csdn.net/qq_41175905/article/details/80560429
(1)配置Path系统环境变量
此电脑–>右键“属性”–>高级系统设置–>环境变量–>新建: D:\opencv\build\x64\vc15\bin
注: 配置PATH系统环境变量和库目录时,请注意VS版本
vc10表示VS是2010,vc11对应VS2012,vc12对应VS2013,vc14对应VS2015 ,vc15对应VS2017 **
(2)VS2017中配置OpenCV
工程中右击–>属性
包含目录 + 库目录 + 链接器
-
包含目录 配置:
VC++目录—>包含目录:
\opencv\build\include ;
\opencv\build\include\opencv2
说明:我的Opencv4.0 beta版在**\opencv\build\include目录下只有opencv2一个文件夹,不知是否正常? -
库目录 配置:
VC++目录—>库目录:
\opencv\build\x64\vc15\lib
注意:(1)64位系统选择x64,32位系统选择x86
(2)vc10表示VS是2010,vc11对应VS2012,vc12对应VS2013,vc14对应VS2015 ,vc15对应VS2017 -
链接器 配置:
链接器–>输入–>附加依赖项
debug下对应的库为opencv_world400d.lib
release的为opencv_world400.lib说明:
-
未复制opencv_world341.dll和opencv_world341d.dll文件到C:\Windows\SysWOW64
未将bin目录里面的opencv_ffmpeg341_64.dll复制到C:\Windows\System32这个文件夹里面
目前未发现错误**
2、第一个4.0版程序
//#include "stdafx.h" //包含该头文件,会报错,不知什么原因。opencv例程中没有该文件
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
string filename = "calib.bmp";
Mat img = imread(filename); //读一张图片
if (img.empty())
{
printf("Error opening image\n");
waitKey(3000); //等待3s关闭窗口
return 0;
}
namedWindow("原画"); //创建一个“原画”窗口
imshow("原画", img); //在窗口中显示图片
waitKey(); //等待关闭窗口
return 0;
}
编译,运行,
问题1
VS调试时加载一大堆的符号,加载过程很慢,网上说可以点击【工具】—>【选项】—>【调试】—>【符号】中,把【Microsoft符号服务器】前面的√去掉,点击【确定】即可。我没有去掉,设置了一个符号下载目录,准备以后用。
不过时间确实很长。
问题2
提示 “Error opening image”。读不到图片,原因?
一通搜索,找到博文《cv::imread读不出图片的解决办法》
原文:https://blog.csdn.net/xueluowutong/article/details/80893677
完美解决,感谢作者:xueluowutong
解决方案:
(1)图片路径问题:相对路径,把图片放在工程项目中的cpp文件所在的文件夹下;绝对路径,添加图片的绝对路径(注意要用两个\),例如 “…\OPENCV\opencv4beta_test\calib.bmp”或者反斜杠 “…/OPENCV/opencv4beta_test/calib.bmp”
(2)链接库版本不正确:(debug下对应的库为xxd.lib;release的为xx.lib)
imread()不能同时添加带xxd.lib和xx.lib的依赖项,需要单独添加根据Debug和Release模式不同相应的配置不同