Movid 庫分析

來源:互聯網
上載者:User

Movid
is the acronym for Modular Open Vision Interaction Daemon. It's a crossplatform and Open Source tracker, designed to be as modular as possible.

 

code download :http://github.com/tito/Movid

 Movid思路分析

      Movid高度模組化,主要功能模組在tito-Movid-3d5b78b/src檔案夾下面。模組moModule負責處理,模組間共用連接埠資料moDataStream。moModule體系通過moModule.h中的宏定義實現自動化綁定。

      模組間連接埠資料共用通過指標淺拷貝,共用記憶體, 因為movid只是可視化opencv,輸入資料來源於camera或者video,對於二者opencv自動會管理每幀的管理,所以movid中moDataStream不需要管理連接埠資料的生命週期。

      moModule體系,包括在moDataStream中使用了多線程,偶對MT還只是理解皮毛,慚愧~

      moProperty中定義moModule的其他一些屬性,比如canny運算元需要的兩個int型參數,定義如下:

 moCannyModule::moCannyModule() : moImageFilterModule(){<br />MODULE_INIT();<br />// declare properties<br />this->properties["lower_threshold"] = new moProperty(100);<br />this->properties["lower_threshold"]->setMin(0);<br />this->properties["lower_threshold"]->setMax(500);<br />this->properties["upper_threshold"] = new moProperty(200);<br />this->properties["upper_threshold"]->setMin(0);<br />this->properties["upper_threshold"]->setMax(500);<br />this->setInputType(0, "IplImage8");<br />this->setOutputType(0, "IplImage8");<br />}

 

      moPipeline裡面管裡建立整個可視化情境,特別是moPipeline::parse函數,通過解析字串命令建立情境。

      Movid的介面在web上實現,movid.cpp中負責網路通訊部分。

      終端使用者在網頁上,以連線的方式產生了一個情境圖,從而產生一個模組間的調用序列,將這些字串傳給伺服器,伺服器端Movid解析產生結果,傳給用戶端,顯示最終結果圖片。所以這個角度說,Movid並不是所見即所得 (WYSIWYG)的編程,gui只是一種表示,跟gui層跟資料層是分離的。

      Movid的執行機制有點神奇,一直沒有看到對所有模組進行拓撲排序的函數,難道通過MT就這可夠了???研究ing~

      Movid示範例子,順序建立結點,按照結點ID號遍曆所有節點,調用poll / update函數。。。

demo screenshot:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.