LEADTOOLS教程:集成LEADTOOLS计算机视觉解决方案——多媒体和运动检测
LEADTOOLS Multimedia SDK是一款功能强大的音频处理 / 视频处理控件,可创建具有专业水准的高品质的多媒体应用程序。您可以使用LEADTOOLS Multimedia SDK创建具有专业水准的高品质的多媒体应用程序。
该控件中加入了诸如捕获、播放和编辑等多媒体功能以及对最新的DirectShow过滤和许多多媒体文件格式的支持,即可以加载和转换多种文件格式(包括WAV、AVI、ASF、WMA、WMV、MPEG-1、OGG等等)。可以编程控制多媒体处理、压缩,视频和音频输入;还增加了摄像控制(亮度、对比度、缩放等等);以及更灵活的捕获选项等等更多功能。
计算机视觉是人工智能的一个领域,可训练计算机解释和理解视觉世界。借助摄像机和视频中的数字图像以及深度学习模型,机器可以准确地识别和分类对象,然后对它们“看到”的内容做出反应。LEADTOOLS建立在将近30年的编程和已获专利的AI算法的基础之上,这些算法处理对图像和视频的理解。在将计算机视觉付诸实践时,我们已为您服务!
在本文中,将介绍如何使用LEADTOOLS Multimedia SDK将计算机视觉整合到您的应用程序中。该LEAD移动侦测过滤器只是众多LEADTOOLS计算机视觉之一,SDK随附的AI功能。运动检测有一个回调,每次视频的当前帧与前一帧不匹配时都会触发该回调。滤镜还会在视频中检测到运动的区域周围绘制矩形。这是将AI用于监视或与UAV应用程序配合使用的完美解决方案。
LEAD运动检测过滤器提供了一个用户界面,您可以将其添加到您的应用中,该界面用于更改过滤器的属性。它允许您更改灵敏度,调整对象大小等。
现在让我们看一下代码!
要查看完整的应用程序,请从上面提供的链接下载程序。下面显示的代码是有关初始化和使用LEADTOOLS回调过滤器以及运动检测过滤器的相关信息。
在项目中创建一个新类,并将其命名为MtnDtCallback。添加以下代码。
public class MtnDtCallback : ILMVMtnDetUserCallback{
public System.Windows.Forms.ListBox LstBx;
public MotionFrameClass mtnClass = new MotionFrameClass();
public int CrtFrame = 0;
public void MtnDtCallbackfnc()
{
}
~MtnDtCallback()
{
}
public int CallbackProc(int lEvent, int pFrame, int lWidth, int lHeight, int lBitCount, int lSize, bool bTopDown)
{
if (lEvent == (int)LMVMtnDetLib.FrameTypeConstants.FRAME_TYPE_STARTMOTION)
{
mtnClass.Started = true;
mtnClass.StartFrame = CrtFrame;
}
if (lEvent == (int)LMVMtnDetLib.FrameTypeConstants.FRAME_TYPE_STARTSTILL)
{
if (mtnClass.Started)
{
mtnClass.EndFrame = CrtFrame - 1;
String x = mtnClass.StartFrame.ToString() + "-" + mtnClass.EndFrame.ToString();
LstBx.Items.Add(x);
mtnClass.Started = false;
mtnClass.StartFrame = 0;
mtnClass.EndFrame = 0;
}
}
CrtFrame = CrtFrame + 1;
return (int)MtnCalBkErrConstants.MTNCALBK_ERR_SUCCESS;
}
public class MotionFrameClass
{
public bool Started = false;
public Int64 StartFrame = 0;
public Int64 EndFrame = 0;
}}现在,您将要创建一个新表单并将其命名为ConvertForm。在这里,您将找到启动运动检测的代码。
convertCtrl1.Preview = true;convertCtrl1.Progress += new Leadtools.Multimedia.ProgressEventHandler(convertCtrl1_Progress);convertCtrl1.SourceFile = SrcFile;convertCtrl1.TargetFormat = TargetFormatType.NULL;mtnCllbck = new MtnDtCallback();mtnCllbck.LstBx = LstBox;if ((convertCtrl1.AllowedStreams & StreamFormatType.Video) == StreamFormatType.Video){
Processor mtnDet = convertCtrl1.VideoProcessors.MotionDetection;
convertCtrl1.SelectedVideoProcessors.Add(mtnDet);
motion = convertCtrl1.GetSubObject(ConvertObject.SelVideoProcessor) as LMVMtnDetLib.ILMVMt
motion.CallbackObj = mtnCllbck;
motion.MinStillTime = 1000;
motion.Interval = 0;
motion.AutoStart = true;
motion.EnableRegion = false;}convertCtrl1.StartConvert();motion.StartDetection();该项目将创建一个已处理的所有移动的列表。双击列表中的一个帧范围,然后将播放该范围的帧,以便您可以看到移动。

本教程内容就是这样了,感兴趣的朋友敬请期待后续内容~
相关内容推荐:
想要购买该产品正版授权,或了解更多产品信息请点击

QQ交谈
在线咨询

渝公网安备
50010702500608号

客服热线