海康威视网络摄像头-预览出现绿色移动侦测规则框

栏目: ASP.NET · 发布时间: 7年前

内容简介:最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的选用的二次开发DEMO路径是解压后的: Demo示例/c#开发示例/实时预览示例代码二按照说明把相应的dll和文件夹放到工程对应的bin目录,并成功运行demo之后,预览图像中如果有移动物体,就会显示绿色的方块格状区域, 问询海康威视的工程师后,得知是默认开启了移动侦测框,取消这个设置有两种方式,以下是原文:

最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的 SDK

选用的二次开发DEMO路径是解压后的: Demo示例/c#开发示例/实时预览示例代码二

按照说明把相应的dll和文件夹放到工程对应的bin目录,并成功运行demo之后,预览图像中如果有移动物体,就会显示绿色的方块格状区域, 问询海康威视的工程师后,得知是默认开启了移动侦测框,取消这个设置有两种方式,以下是原文:

这个是移动侦测的规则框,是播放库叠加的内容

您可以直接关掉移动侦测的功能,调用接口不关闭移动侦测功能只关闭绿色格子显示有两种方式,一种是客户端取消显示,一种是设备端取消叠加:

  1. 调用NET_DVR_RealPlay_V40传窗口句柄直接预览默认显示该叠加信息,此时调用NET_DVR_GetRealPlayerIndex获取播放库句柄,然后调用播放库接口PlayM4_RenderPrivateData(该接口调用请参考播放库SDK编程指南)可以控制显示或者取消显示。
  2. 通过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);
    }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Anatomy

Web Anatomy

Robert Hoekman Jr.、Jared Spool / New Riders / 2009-12-11 / USD 39.99

At the start of every web design project, the ongoing struggles reappear. We want to design highly usable and self-evident applications, but we also want to devise innovative, compelling, and exciting......一起来看看 《Web Anatomy》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具