一, Windows配置Opencv
这个网上教程很多,我就随便转载一个吧!
http://blog.csdn.net/dcrmg/article/details/51809614
注:IDE 工程项目属性配置时的几个理解
名词理解
包含目录:存放外部库的头文件,在项目属性上配置类似于添加环境变量
配置属性 --> VC++目录 --> 库目录:这个有点类似全局环境变量,一般像语言环境放入这里。比如:opencv,Python。。。
配置属性——>链接器——>附加库目录:第三发SDK库目录
配置属性——>链接器——>输入——>附加依赖项:选择附加库目录下的个别库文件进行链接配置完成之后注意如果出现
计算机找不到openc_world300d.dll
的情况,别急,有可能是由于你设置的环境变量需要重启才能生效。如果没用,那么将相应的dll文件放置C:\Windows\System32\
试试。当然如果你的电脑是64位就放置C:\Windows\SysWOW64
试试。
二,VS配置大华SDK
- 下载SDK
注:由于VS是使用32编译,顾你要下载sdk_win32,和你的电脑系统无关(当然好像64也可以通过)。
https://www.dahuatech.com/service/downloadlists/836.html
2 .先跑一个例子,使用他们提供的程序
发现可以使用的
3,将源码程序导入VS2012
- 配置Opencv
- 配置sdk
配置SDK时,若出现经典错误
error LNK2019: 无法解析的外部符号,_imp_XXX 在什么地方被引用
千万别急,两种原因
(1) 属性——>配置属性——>VC++目录——>包含目录是加入向头文件目录,源码这里的头文件都放在./include
目录下
(2) 检查是否将附加库是否引入,有两种办法解决
- 属性配置
- 命令在出错的那个文件最上面加上
#pragma comment(lib,"./lib/XXX.lib")
然后会有一大波警告,我们不用管.生成,Debug
正常显示!!!
强烈推荐看看这篇博客,写的很赞,看的出博主下了功夫的,虽然是海康的,但大部分都是一样的
OpenCV_海康威视SDK_VS2012配置及实时预览(非海康(其他)网络摄像头IPC)二次开发
MFC(vs2013)+opencv+海康SDK_显示视频教程
- 编写自己的测试项目
》新建win32项目
》项目属性配置Opencv
》编写C++文件
》运行
代码如下:
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>
using namespace cv;
using namespace std;
int main()
{
//捕获摄像头
cv::VideoCapture vcap;
cv::Mat img;
cout << "Main函数运行" <<endl;
const String videoStringAddress="rtsp://admin:admin@192.168.1.108/cam/realmonitor?channel=1&subtype=0";
if(!vcap.open(videoStringAddress)){
cout << "Error opening video stream or file" <<endl;
return -1;
}else{
cout<<"success"<<endl;
}
cv::namedWindow("Output Window");
for(;;){
if(!vcap.read(img)){
cout <<"No Frame" << endl;
cv::waitKey();
}
cv::imshow("Output Window",img);
if(waitKey(1) >=0) break;
}
}
OpenCV之VideoCapture的使用——打开网络摄像头/图像序列
注意:videoStringAddress这个值需要根据你自己的情况而定。我这里用的是大华HDW3200,故使用rtsp协议,后面的值分别为账户名,密码,IP。
PS:Debug 时出现错误
两个办法解决,一个是从微软服务中下载这些符号,网上有很多教程第二个就是直接跳过Debug,直接运行也能避开这个错误(很粗暴,但很有用)