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();
该项目将创建一个已处理的所有移动的列表。双击列表中的一个帧范围,然后将播放该范围的帧,以便您可以看到移动。
本教程内容就是这样了,感兴趣的朋友敬请期待后续内容~
相关内容推荐:
想要购买该产品正版授权,或了解更多产品信息请点击