ILMVMtnDetUserCallback接口

这是一个用户回调接口,应该实现它来接收运动发生时的通知。的方法注册回调ILMVMtnDet: CallbackObj财产。这个接口有一个方法。

数据类型:

MtnCalBkErrConstants:

类型定义(v1_enum)枚举MtnCalBkErrConstantsMTNCALBK_ERR_SUCCESS = 0,MTNCALBK_ERR_PRESERVEDATA = 100,} MtnCalBkErrConstants;

FrameTypeConstants:

类型定义枚举FRAME_TYPE_STARTMOTION,FRAME_TYPE_MOTION,FRAME_TYPE_STARTSTILL,FRAME_TYPE_STILL,} FrameTypeConstants;

列出帧类型的可能值。

FRAME_TYPE_STARTMOTION 这是一个运动帧。上一帧是静止帧,因此这是检测到运动的第一帧
FRAME_TYPE_MOTION 这是一个运动帧。前一帧也是一个运动帧。
FRAME_TYPE_STARTSTILL 这一帧是静止帧。前一帧是运动帧,所以运动停止了。
FRAME_TYPE_STILL 这一帧是静止帧。前一帧也是静止帧。

接口方法:

HRESULT CallbackProc(长lEvent,长pFrame,长lWidth,长lHeight,长lBitCount,长lFrameSize, VARIANT_BOOL bTopDown,长*pRet);

参数

莱维 类型的框架。这个参数告诉当前帧是静止帧还是已经检测到运动。可能的值是:
价值 意义
FRAME_TYPE_STARTMOTION 这是一个运动帧。前一帧是静止帧,所以这是第一个检测到运动的帧。
FRAME_TYPE_MOTION 这是一个运动帧。前一帧也是一个运动帧。
FRAME_TYPE_STARTSTILL 这一帧是静止帧。前一帧是运动帧,所以运动停止了。
FRAME_TYPE_STILL 这一帧是静止帧。前一帧也是静止帧。
pFrame 指向帧数据的有效指针。这包含了整个图像。您对该数据所做的任何更改都将反映在保存或显示在屏幕上的内容中。
lWidth 由pFrame指向的图像的宽度(像素)。
lHeight pFrame指向的图像的高度(以像素为单位)。
lBitCount 由pFrame指向的图像的位/像素。目前只支持24位图像。
lFrameSize pFrame所指向的数据的总大小(以字节为单位)。
bTopDown 如果图像位于左上角(第一个字节表示像素(0,0)),则为TRUE。
如果图像位于左下(缓冲区中的第一行包含图像中的最后一行)则为FALSE。换句话说,第一个字节表示像素(lighight - 1,0)。

描述

当有一个(多个)对象在视频上移动时,过滤器将调用此方法。pFrame参数是包含对象的源帧数据。lSize参数是帧大小。

如果lEvent为FRAME_TYPE_STARTMOTION或FRAME_TYPE_MOTION,则认为该帧为“运动”帧。如果lEvent为FRAME_TYPE_STARTSTILL或FRAME_TYPE_STILL,则该帧被认为是“Still”帧。

在处理此事件时,您可以使用ILMVMtnDet::RectCount, ILMVMtnDet::RectLeft, ILMVMtnDet::RectTop, ILMVMtnDet::RectWidth和ILMVMtnDet::RectHeight属性来获取移动被检测到的矩形。这些矩形仅对运动帧有效。对于静态帧,ILMVMtnDet::RectCount将为0。

只有在处理CallbackProc时才能访问这些属性。您不应该在此回调中执行冗长的计算,因为当您在CallbackProc内部时,不会处理其他图像。

用户可以通过修改帧数据对帧产生任何影响,在这种情况下,回调函数必须返回MTNCALBK_ERR_PRESERVEDATA值,以便保留用户的更改。

返回

MTNCALBK_ERR_SUCCESS或MTNCALBK_ERR_PRESERVEDATA如果成功,则返回HRESULT错误码。

LEADTOOLS Filters C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。