内容简介:最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的选用的二次开发DEMO路径是解压后的: Demo示例/c#开发示例/实时预览示例代码二按照说明把相应的dll和文件夹放到工程对应的bin目录,并成功运行demo之后,预览图像中如果有移动物体,就会显示绿色的方块格状区域, 问询海康威视的工程师后,得知是默认开启了移动侦测框,取消这个设置有两种方式,以下是原文:
最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的 SDK
选用的二次开发DEMO路径是解压后的: Demo示例/c#开发示例/实时预览示例代码二
按照说明把相应的dll和文件夹放到工程对应的bin目录,并成功运行demo之后,预览图像中如果有移动物体,就会显示绿色的方块格状区域, 问询海康威视的工程师后,得知是默认开启了移动侦测框,取消这个设置有两种方式,以下是原文:
这个是移动侦测的规则框,是播放库叠加的内容
您可以直接关掉移动侦测的功能,调用接口不关闭移动侦测功能只关闭绿色格子显示有两种方式,一种是客户端取消显示,一种是设备端取消叠加:
- 调用NET_DVR_RealPlay_V40传窗口句柄直接预览默认显示该叠加信息,此时调用NET_DVR_GetRealPlayerIndex获取播放库句柄,然后调用播放库接口PlayM4_RenderPrivateData(该接口调用请参考播放库SDK编程指南)可以控制显示或者取消显示。
- 通过NET_DVR_GetDVRConfig(命令:NET_DVR_GET_PICCFG_V40)、NET_DVR_SetDVRConfig(命令:NET_DVR_SET_PICCFG_V40)获取和设置,其中的移动侦测参数NET_DVR_PICCFG_V40—》NET_DVR_MOTION_V40里面的byEnableDisplay设置为0即可,也可以WEB或者或者客户端软件登录设备进配置界面直接手动设置取值动态显示
对于使用的C#demo来说,对应的代码如下:
//声明一个NET_DVR_PICCFG_V40类型的类对象 public CHCNetSDK.NET_DVR_PICCFG_V40 m_struPicCfgV40; //以下是函数体内使用的代码 uint dwSize = (uint)Marshal.SizeOf(m_struPicCfgV40); //一个指针和对应的结构体,SET和GET Config的时候都是使用指针,但是操作赋值的时候使用的是结构体 IntPtr ptrPicCfgV40 = Marshal.AllocHGlobal((Int32)dwSize); Marshal.StructureToPtr(m_struPicCfgV40, ptrPicCfgV40, false); uint dwReturn = 0; int iGroupNo = iChannelNum[(int)iSelIndex]; //通道号 Channel number if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PICCFG_V40, iGroupNo, ptrPicCfgV40, dwSize, ref dwReturn)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_GET_PICCFG_V40 failed, error code= " + iLastErr; //获取IP资源配置信息失败,输出错误号 Failed to get configuration of IP channels and output the error code //MessageBox.Show(str); } else { m_struPicCfgV40 = (CHCNetSDK.NET_DVR_PICCFG_V40)Marshal.PtrToStructure(ptrPicCfgV40, typeof(CHCNetSDK.NET_DVR_PICCFG_V40)); //重点是设置这里的byEnableDisplay为0,取消移动侦测框 m_struPicCfgV40.struMotion.byEnableDisplay = 0; //不要忘记结构体转换成指针 Marshal.StructureToPtr(m_struPicCfgV40, ptrPicCfgV40, true); if (!CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_PICCFG_V40, iGroupNo, ptrPicCfgV40, dwSize)) { uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string str = "NET_DVR_SET_PICCFG_V40 failed, error code= " + iLastErr; //MessageBox.Show(str); } else { //MessageBox.Show("NET_DVR_SET_PICCFG_V40配置成功!" + iGroupNo); CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PICCFG_V40, iGroupNo, ptrPicCfgV40, dwSize, ref dwReturn); m_struPicCfgV40 = (CHCNetSDK.NET_DVR_PICCFG_V40)Marshal.PtrToStructure(ptrPicCfgV40, typeof(CHCNetSDK.NET_DVR_PICCFG_V40)); //MessageBox.Show("NET_DVR_GET_PICCFG_V40!" + m_struPicCfgV40.struMotion.byEnableDisplay); } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 读vue的变化侦测
- Vue侦测相关api
- Vue 源码剖析 —— 对象变化侦测
- Vue 源码剖析 —— 变化侦测相关 API 实现原理
- Sophos Intercept X EDR:智能、简单的端点侦测与响应
- 文件预览 kkFileView v1.1 新增多媒体预览支持等
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First HTML5 Programming(中文版)
埃里克•弗里曼 (Eric Freeman)、伊丽莎白•罗布森 (Elisabeth Robson) / 中国电力出版社 / 2012-9 / 78.00元
《Head First HTML5 Programming(中文版)》内容简介:你可能想创建具有动态性、交互性、包含丰富数据而且互连的Web页面。先等一下,Web页面?为什么不用HTML5创建成熟的Web应用呢?另外,为什么不使用现代技术,像在移动设备上一样轻松地应用到桌面浏览器呢?当然,你肯定希望使用最新的HTML5技术来完成,比如地理定位、视频、2D绘制、Web存储、Web工作线程等,是不是?......一起来看看 《Head First HTML5 Programming(中文版)》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
RGB CMYK 转换工具
RGB CMYK 互转工具