再来一篇文章,总结一下我这几天水了什么。
首先就是给VS配置Opencv,主要是参考的这位大佬https://blog.csdn.net/qq_41175905/article/details/80560429非常感谢!!
1、下载Opencv安装包
网址:https://opencv.org/releases.html#
官网网址给出大家可以直接下载,不过那位博主说下载速度极慢,我反正是科学上网一波速度还可以的,如果有特殊情况我给大家分享一个网盘资源(只有3.4.3和4.1.0版本):
链接:https://pan.baidu.com/s/1QQ5TdFURi-vG7siDOSde7Q
提取码:888z
之后Extract解压到文件夹就好
2、配置系统变量
我主要说一下踩的坑,具体操作步骤看第一段的链接。
首先就是你在配置过程中*****opencv\build\x64\vc14\bin这个vc14还是vc15一定要选好了,因为之后你在VS中配置也要根据你选的来,我就是一开始系统变量配的vc14后来VS中配成15的了,很麻烦。
3、进入VS配置属性管理器
根据教程一步步来,这个需要注意的是你的配置是仅存在于本项目中的,当你新开项目的时候你需要再配置一遍,这个很多教程都没有讲到。当然也有一劳永逸的方法,就是你添加一个新的属性表,然后对这个属性表进行配置,之后每次新建项目只要对Debug| x64添加这个新的属性表就可以了。当然我没有试成功,可能跟我dll文件缺失也有关,总之大家嫌一遍遍配麻烦的话可以去搜一搜这个方法。
4、dll文件相关配置
将bin目录下面的opencv_world410.dll和opencv_world410d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面
将bin目录里面的opencv_ffmpeg410_64.dll复制到C:\Windows\System32这个文件夹里面(详细看图
如果是opencv其他的版本,把对应的版本号改掉就可以。
(咱也不知道这个复制是什么原因,也有的博客说是可以直接配置系统变量,直接复制dll还会影响到之后的更新,也有的说三个dll文件都要分别复制到那两个文件夹)
5、检测是否配置成功
给大家一波源码,调用摄像头,可直接使用
//打开摄像头样例
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;
int main()
{
VideoCapture cap(0);
Mat frame;
while (1)
{
cap >> frame;
imshow("调用摄像头", frame);
waitKey(30);
}
return 0;
}
6、Bug!!!
我改了无数次,都不知道哪里错了…dll这个小东西它就是不出来,最后误打误撞也不知道改了哪就成功了。提供几个解决方法:
a、之前复制到系统文件时是否全部复制,我是把三个dll都复制进去了,大家最好再检查一下,(我觉得我大概率是这里错了,因为我中途改了一次版本,可能之后的版本没有复制过去)
b、你之前配置的系统变量vc15是否与VS中的一致
c、调试中debug模式,链接库外部依赖是opencv_world410d 带d的这个后缀是lib不是dll!!不是dll!!两个很容易搞混的。