内容简介:最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的选用的二次开发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 新增多媒体预览支持等
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
可爱的Python
哲思社区 / 电子工业出版社 / 2009-9 / 55.00元
本书的内容主要来自CPyUG社区的邮件列表,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书。笔者试图将优化后的学习体验,通过故事的方式传达给读者,同时也分享了蟒样(Pythonic式)的知识获取技巧,而且希望将最常用的代码和思路,通过作弊条(Cheat Sheet,提示表单)的形式分享给有初步基础的Python 用户,来帮助大家......一起来看看 《可爱的Python》 这本书的介绍吧!