LEADTOOLS教程:集成LEADTOOLS計算機視覺解決方案——多媒體和運動檢測
LEADTOOLS Multimedia SDK是一款功能強大的音頻處理 / 視頻處理控件,可創(chuàng)建具有專業(yè)水準的高品質(zhì)的多媒體應用程序。您可以使用LEADTOOLS Multimedia SDK創(chuàng)建具有專業(yè)水準的高品質(zhì)的多媒體應用程序。
該控件中加入了諸如捕獲、播放和編輯等多媒體功能以及對最新的DirectShow過濾和許多多媒體文件格式的支持,即可以加載和轉(zhuǎn)換多種文件格式(包括WAV、AVI、ASF、WMA、WMV、MPEG-1、OGG等等)。可以編程控制多媒體處理、壓縮,視頻和音頻輸入;還增加了攝像控制(亮度、對比度、縮放等等);以及更靈活的捕獲選項等等更多功能。
計算機視覺是人工智能的一個領(lǐng)域,可訓練計算機解釋和理解視覺世界。借助攝像機和視頻中的數(shù)字圖像以及深度學習模型,機器可以準確地識別和分類對象,然后對它們“看到”的內(nèi)容做出反應。LEADTOOLS建立在將近30年的編程和已獲專利的AI算法的基礎(chǔ)之上,這些算法處理對圖像和視頻的理解。在將計算機視覺付諸實踐時,我們已為您服務(wù)!
在本文中,將介紹如何使用LEADTOOLS Multimedia SDK將計算機視覺整合到您的應用程序中。該LEAD移動偵測過濾器只是眾多LEADTOOLS計算機視覺之一,SDK隨附的AI功能。運動檢測有一個回調(diào),每次視頻的當前幀與前一幀不匹配時都會觸發(fā)該回調(diào)。濾鏡還會在視頻中檢測到運動的區(qū)域周圍繪制矩形。這是將AI用于監(jiān)視或與UAV應用程序配合使用的完美解決方案。
LEAD運動檢測過濾器提供了一個用戶界面,您可以將其添加到您的應用中,該界面用于更改過濾器的屬性。它允許您更改靈敏度,調(diào)整對象大小等。
現(xiàn)在讓我們看一下代碼!
要查看完整的應用程序,請從上面提供的鏈接下載程序。下面顯示的代碼是有關(guān)初始化和使用LEADTOOLS回調(diào)過濾器以及運動檢測過濾器的相關(guān)信息。
在項目中創(chuàng)建一個新類,并將其命名為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; }}
現(xiàn)在,您將要創(chuàng)建一個新表單并將其命名為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();
該項目將創(chuàng)建一個已處理的所有移動的列表。雙擊列表中的一個幀范圍,然后將播放該范圍的幀,以便您可以看到移動。
本教程內(nèi)容就是這樣了,感興趣的朋友敬請期待后續(xù)內(nèi)容~
相關(guān)內(nèi)容推薦:
想要購買該產(chǎn)品正版授權(quán),或了解更多產(chǎn)品信息請點擊“咨詢在線客服”