win10 64 + VS2010 + Opencv 2.4.9 + HIKVISION(海康)
海康相机型号:DS-2CD2512F-IS
参考连接http://blog.csdn.net/wanghuiqi2008/article/details/31404571
先上效果图
其中,在连接时遇到了X64与X86兼容问题:
海康SDK在X64(配置时用的时X64),程序运行时采用的X64,但opencv2.4.9配置时又采用的时X86,所以在使用X64的时候,会出现opencv找不到lib文件,所有在程序中添加了以下代码:
- #pragma comment( lib, "opencv_highgui249d.lib")
- #pragma comment( lib, "opencv_core249d.lib")
- #pragma comment( lib, "opencv_imgproc249d.lib")
主要程序如下:
- #include <cstdio>
- #include <iostream>
- #include <ctime>
- #include <Windows.h>
- #include "HCNetSDK.h"
- #include "highgui.h"
- #include "cv.h"
- #pragma comment( lib, "opencv_highgui249d.lib")
- #pragma comment( lib, "opencv_core249d.lib")
- #pragma comment( lib, "opencv_imgproc249d.lib")
- using namespace cv;
- using namespace std;
- //typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
- //PROCGETCONSOLEWINDOW GetConsoleWindow;
- int main(int argc, char * argv[])
- {
- //---------------------------------------
- // 初始化
- NET_DVR_Init();
- //设置连接时间与重连时间
- NET_DVR_SetConnectTime(, );
- NET_DVR_SetReconnect(, true);
- //---------------------------------------
- //获取控制台窗口句柄
- //HMODULE hKernel32 = GetModuleHandle((LPCWSTR)"kernel32");
- //GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
- //---------------------------------------
- // 注册设备
- LONG lUserID;
- NET_DVR_DEVICEINFO_V30 struDeviceInfo;
- lUserID = NET_DVR_Login_V30("192.168.199.3", , "admin", "guoji123", &struDeviceInfo);
- if (lUserID < )
- {
- printf("Login error, %d\n", NET_DVR_GetLastError());
- NET_DVR_Cleanup();
- return -;
- }
- //---------------------------------------
- //cvNamedWindow("camera",CV_WINDOW_AUTOSIZE);
- IplImage* frame;
- //定义JPEG图像质量
- LPNET_DVR_JPEGPARA JpegPara = new NET_DVR_JPEGPARA;
- JpegPara->wPicQuality = ;
- JpegPara->wPicSize = ;
- char * Jpeg = new char[*];
- DWORD len = *;
- LPDWORD Ret = ;
- if(!NET_DVR_SetCapturePictureMode(BMP_MODE))
- {
- cout<<"Set Capture Picture Mode error!"<<endl;
- cout<<"The error code is "<<NET_DVR_GetLastError()<<endl;
- }
- //bool capture = NET_DVR_CaptureJPEGPicture(lUserID,1,JpegPara,"1111");
- vector<char>data(*);
- while()
- {
- bool capture = NET_DVR_CaptureJPEGPicture_NEW(lUserID,,JpegPara,Jpeg,len,Ret);
- if(!capture)
- {
- printf("Error: NET_DVR_CaptureJPEGPicture_NEW = %d", NET_DVR_GetLastError());
- return -;
- }
- for(int i=;i<*;i++)
- data[i] = Jpeg[i];
- Mat img = imdecode(Mat(data),);
- imshow("camera",img);
- waitKey();
- }
- //FILE * fp = fopen("3.jpg","wb");
- //fwrite(Jpeg,1,123*1024,fp);
- //fclose(fp);
- return ;
- }
win10 64 + VS2010 + Opencv 2.4.9 + HIKVISION(海康)的更多相关文章
- (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功
(win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...
- Win10 64位+VS2015+Opencv3.3.0安装配置
Win10 64位+VS2015+Opencv3.3.0安装配置 1.我们首先下载VS2015.OpenCV3.3.0. 1.1 VS2015下载 在官网https://visualstudio.mi ...
- Hadoop 3.2.1 win10 64位系统 vs2015 编译
Hadoop 3.2.1 win10 64位系统 vs2015 编译 1 环境配置 1.1 JDK下载安装 1.1.1 下载 JDK 1.8 (jdk1.8.0 ...
- win10 64位专业版系统中显示32位dcom组件配置的方法
word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...
- VS2010+Opencv+SIFT以及出现的问题-关于代码sift_3_c的说明
http://blog.sina.com.cn/s/blog_a6b913e30101dvrt.html 一.前提 安装Opencv,因该版本的SIFT是基于Opencv的. 下载SIFT源码,见Ro ...
- Win10 64位安装SQL2000(个人版)
默认Win10上是不允许安装SQL2000的,毕竟SQL2000已经是10多年前的老软件了,但是因为它成熟稳定,相比SQL2005,SQL2008R2,SQL2012,SQL2014,体积要小的多,所 ...
- WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件实现视觉检测
近段时间开始接触halcon,但是在VS2015里面使用,无论是配置还是生产EXE文件,都不如意. 加上网上的教程很多,经过多次测试,其实有很多地方无需修改,如果修改的太多也失去了直接添加封装的意义. ...
- 外网win10 64位环境下 为内网win7 32位安装三方包的最靠谱手段:python64位、32位全安装。
经过一周的各种折磨,如题.以下是我的经验和教训. 我的外网是win10 64位,内网环境win7 32位.由于未知原因,anaconda无法安装!!! 其实最靠谱的安装三方包的还是whl包.但是很有可 ...
- 解决win10 64位 + Python3 安装PyAutoIt报不是有效win32应用程序的办法
在win10 64位 + Python3的环境中,安装pyautoit第三方包的时候,报错提示为:不是有效win32应用程序.因为这个问题,进了python群,去寻求答案,却告知为,换32位的电脑,这 ...
随机推荐
- 第五周作业--测试与版本发布(Alpha版本)
github传送门:https://github.com/Bubblegod/StardrewValley 一.BUG以及修复 a.修复的BUG: 1.存在着运行环境改变后,资源找不到问题 BUG描述 ...
- numpy.where() 用法详解
numpy.where (condition[, x, y]) numpy.where() 有两种用法: 1. np.where(condition, x, y) 满足条件(condition),输出 ...
- 类的构造器-init和new
提到构造器,大家都会想到 __init__,那么__new__是什么?也是构造器. init 构造器 都很熟悉了,直接上代码 class MyClass(object): def __init__(s ...
- return 返回值的用法
#coding:utf-8 # (1)把数据返回到函数调用处 def func(): # return 1 # return "aaabb" return [1,2,3,4] re ...
- Mac 下配置Lua环境
1.下载LUA源码包 curl -R -O http://www.lua.org/ftp/lua-5.3.1.tar.gz 2.解压并进入目录 tar -xvf lua-.tar.gz cd lua- ...
- 我在MySQL免安装版使用过程中遇到的问题记录
我的MySQL版本为:mysql-5.7.16-winx64 安装时间为:2016年5月10号 由于是免安装版,下载好压缩文件之后解压到特定目录下,再打开命令行运行几行命令即可. 在一次操作中,发现无 ...
- erlang工作总结
总结下自己在做erlang的经验 1.不管什么样的情况下,一定要关注好函数的返回值再来使用,不知道返回值盲目的使用的话,不仅不能达到目标,而且不存在代码/报错提醒.得不偿失. 2.构思好自己的想法,定 ...
- char * p = "abc"与const char *p = "abc"
char * p = "abc"与const char *p = "abc"的区别是什么呢? 第一个语句会产生问题: warning: deprecated c ...
- Restful架构学习
Restful规范的架构是一种简洁并且面向资源的规范方式,其概念和起源大家google一下就好. 以下记录认识和搭建Restful规范的技术架构过程(入门级别),在网上发现了一张技术架构图很接近最初想 ...
- PythonStudy——字典 Dictionary
# 容器(集合):存放多个值的变量# 单列容器(系统中的单列容器很多):list | tuple# 双列容器(map):只有dict,存放数据 成对出现,dict存放数据采用 key-value键值对 ...