日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

OpenCV+Ruby構(gòu)建圖像處理研究平臺

 賢人好客 2010-02-25
OpenCV
OpenCV是一個很流行的圖像處理庫,它為圖像處理算法研究提供了很好的平臺,甚至很多產(chǎn)品在OpenCV的基礎(chǔ)上稍作修改就可以達到目標(biāo)。有關(guān)OpenCV的介紹,abruzzi有一篇不錯的介紹帖子(http://www./topic/463668),所以這里就不再做詳細介紹。

Why OpenCV + Ruby ?
學(xué)院派的圖像處理研究者喜歡用MATLAB,而實際產(chǎn)品開發(fā),則用C/C++居多,特別是嵌入式系統(tǒng),最終都要用C/C++重新實現(xiàn)算法甚至要用匯編優(yōu)化部分代碼。

當(dāng)然,很多公司是學(xué)院派和工程派兼之。

用MATLAB的好處是可以快速實現(xiàn)算法,缺點是當(dāng)你想把算法變成產(chǎn)品的時候,要經(jīng)過一個比較長的過程,要把算法用C/C++再實現(xiàn)一遍。

OpenCV本身就是用C++寫的,而且很多算法已經(jīng)經(jīng)過了優(yōu)化,性能不錯。因此如果直接基于OpenCV開發(fā)算法,在最終轉(zhuǎn)化為產(chǎn)品的時候就很方便。

直接基于OpenCV開展算法研究的一個最大問題是缺乏快速驗證的平臺。雖然OpenCV提供了highgui用于簡單的結(jié)果展示,但是離“方便”還是缺很遠。我過去是用VC/MFC構(gòu)建開發(fā)平臺,提供了很多方便的功能輔助算法研究,但是平臺的構(gòu)建和維護,以及功能的增加都要花費巨大的努力,算法研究人員要為維護平臺而煞費苦心。

一個通用的,易于維護,可擴展的平臺對圖像處理算法研究非常有幫助。

Ruby語言擁有容易學(xué)習(xí),語法優(yōu)雅,表達能力強的特點,而且加上RubyGnome2 GUI庫,可以很方便地實現(xiàn)理想中的圖像處理算法研究平臺。

另外,還有其他幾個因素使得Ruby適合做這樣的平臺:
1. RubyInline可以讓你在ruby程序中嵌入C代碼,這對于嘗試一些貼近底層的算法調(diào)整非常方便。
2. Ruby的C擴展還算比較容易編寫。
3. Ruby是動態(tài)語言,可以方便地為平臺增添插件功能,或者提供一個腳本控制臺。

在這里不能不提到Python,Python是一門優(yōu)秀的腳步語言,也有很多庫支持,特別是OpenCV官方就提供了Python的綁定。用Ruby或是Python只是個人喜好的問題。


Tui Image Studio
這是一個用Ruby寫的,支持OpenCV的跨平臺圖像算法研究平臺軟件。它為圖像處理研究提供了許多基本設(shè)施,例如直方圖查看,區(qū)域分割與選擇,攝像頭連接等,而更多的圖像處理算法則通過插件的形式來提供。

當(dāng)你想嘗試一個新的算法的時候,如果現(xiàn)有的插件中不能實現(xiàn),就可以新寫一個插件。多個插件可以以鏈接的方式協(xié)同工作,當(dāng)然插件也可以暴露供外部調(diào)用的接口。

插件的界面和流程控制用ruby編寫。當(dāng)需要用C的時候,你可以編寫C擴展或者直接在插件的ruby代碼中嵌入C代碼,Tui平臺會通過RubyInline自動為你編譯。

通常情況下,為OpenCV本身提供的功能編寫插件,包括UI代碼都在100行以內(nèi)。

在Tui中算法驗證通過以后,把這個算法在實際產(chǎn)品中實現(xiàn)則相對簡單:因為都是基于OpenCV,增加的算法代碼也都是用C寫的。

你編寫的插件越多,積累的算法也就越多,下一步算法研究也就越容易。

另外,Tui平臺還提供分布式處理工具:有些算法需要巨大的運算量,要對一個數(shù)萬張圖片的圖庫驗證一個算法需要很長的時間,這個時候你就需要幾臺或數(shù)十臺PC來進行并行運算。Tui為你提供了這樣的便捷工具,你可以發(fā)布你的插件到所有安裝了Tui的機器并分配驗證任務(wù),最后收集結(jié)果報告。

Tui Image Studio截圖:



圖中演示了Canny邊緣檢測,直方圖,高通濾波,以及一個從攝像頭獲取實時視頻并做人臉檢測的插件。

Conclusion
OpenCV+Ruby為圖像處理研究提供了一個利器,可以快速驗證算法并平滑過渡到最終產(chǎn)品。Ruby用作GUI程序開發(fā)已不僅僅是玩具而已,RubyGnome2可以用于開發(fā)復(fù)雜的,嚴(yán)肅的桌面應(yīng)用程序。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多