VS2012+OpenCV+大华SDK

一, 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

  1. 下载SDK

注:由于VS是使用32编译,顾你要下载sdk_win32,和你的电脑系统无关(当然好像64也可以通过)。

https://www.dahuatech.com/service/downloadlists/836.html

2 .先跑一个例子,使用他们提供的程序


ShowDemo

发现可以使用的

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_显示视频教程

  1. 编写自己的测试项目

》新建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 时出现错误


issue-02

两个办法解决,一个是从微软服务中下载这些符号,网上有很多教程第二个就是直接跳过Debug,直接运行也能避开这个错误(很粗暴,但很有用)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容