C#應用視頻教程3.2 Halcon軟體測試

來源:互聯網
上載者:User

標籤:更新   img   版本   index.php   安裝   位置   科學研究   執行流程   c#   

Halcon是影像處理比較牛逼的一個軟體(德國人的東西,做的非常強大,裡面整合的演算法很多,可能你一輩子研究這個也做不過他),然而牛逼歸牛逼,康耐視,基恩士也很牛逼,但是日本人的東西一般太過封閉,屌絲用不起,也用不上,用上了也很難自己DIY(我們研究Halcon因為他只是一個PC平台的影像處理庫,不管你用C#還是C++,QT,JAVA都可以自己開發上位的程式,自己搭配相機做項目,而不是被各種硬體和軟體的限制)。

http://www.mvtec.com/products/halcon

?

講到Halcon,就不得不講到OpenCV,在C#中也有對應的類庫叫做EmguCV,很多人下載,安裝,然後就沒有然後了。相比於Halcon,OpenCV的難度很大(個人感覺僅僅適合做研究使用,雖然他是開源的,免費的),如果要快速的測試專案,還是要用商業的成熟的東西(你對比一下上下的兩個網站,明顯鞥呢感覺到一個是產品,一個是科學研究的半成品)

http://www.emgu.com/wiki/index.php/Main_Page

?

安裝過程就不介紹了,可以看我附件提供的(也可以自己百度,可能有更新的版本),安裝完成之後開啟軟體,然後可以直接開啟一個映像擷取視窗,定位到某個有圖片的檔案夾

?

點擊插入代碼,可以在程式編輯器中看到自動產生的程式碼

?

Halcon非常強大,我們記住幾個基本的快速鍵(可以測試不斷的按F6,看不斷的執行read_image的效果,雙擊這個read_image還會自動定位到運算元視窗,你可以修改這個函數的參數)

F2:程式重設

F5:程式運行

F6:單步運行

?

我們採集完了靜態檔案夾的圖片,現在來嘗試一下直接採集視頻裝置,切換成映像擷取介面,點擊檢測(自動顯示成DirectShow),然後切換到串連頁面,點擊串連-採集

?

點擊即時就可以採集到即時的映像,切換到代碼產生即可向上面一樣得到播放視頻的代碼(F5可以連續運行不斷擷取相機的映像)

?

因為時間有限,我們直接研究本節的重點,特徵匹配(就是找東西),開啟常式的視窗,在裡面輸入關鍵字,比如match,就會自動顯示所有相關的範例,直接開啟這個best_match_rot_mg_clip1.hdev

?

仔細研究這個程式,雖然有幾十行,但是其實代碼都是像指令碼語言的樣子,非常容易理解,一般是直接先F5看整體的運行效果,可以發現他就是把圖片中所有的回形針找出來(所謂的找出來就是找到特徵的中心點,顯示XY座標和旋轉角,畫一個綠色的箭頭表示找到了)

?

我們再來看一下他的執行流程(F2先重設,然後F6逐步執行到所示的位置),注意create_template_rot方法從字面的意思就是建立一個模板(你要在映像中找到所有的長得很像的,就先要設定一個基準模板),執行到這一步的時候可以看到左下角的變數視窗的TemplateID已經產生了,而後面找到的元素的XY座標和旋轉角等等還都是問號(問號表示還沒有值)

?

然後定位到這個best_math_rot_mg的函數,雙擊可以看到他的輸入輸出(雖然是一條命令,但是後面的參數已經包括了輸入和輸出),可以簡單理解為就是前面建立了一個模板,這裡只要拿著模板就可以到指定映像地區中找結果,找到的結果返回包括X,Y,angle,Error四個參數

?

剛才直接F5的時候不容易看清楚,這裡單步F6就可以看到找到每個回形針的時候的結果參數的變化了(這個範例其他的代碼部分包括了對映像的處理,像threshold,connection,reduce_domain,我們暫時先不管他,只要基本理解Halcon的影像處理完整流程即可)

?

如果要接著深入探討,可以看他的下一個範例,如果設定回形針的地區為其他部位(如果專業做影像處理的人肯定需要掌握這些技巧,因為每一個具體項目要處理的映像是不一樣的,你需要瞭解不同的映像最適合用哪些方法的組合完成最高效,最精準的匹配,每次需求也不一樣,可能這次是抓回形針的中間,下次是頭部,再下次只找最匹配的前面三個)

?

我們如何自訂特徵?肯定要自訂繪製矩形,而不是給我們自己設定的矩形視窗。Halcon為我們提供了兩種繪製矩形的方法,draw_rectangle1和draw_rectangle2,我們可以直接在運算元視窗中輸入部分代碼,然後讓他自動補全,完成之後注意參數對的上即可(不管是否帶方向,只是輸入的參數不同而已,最後對應的gen_rectangle1和gen_rectangle2都能把具體參數拿到然後產生Rectangle這個東西,後面的步驟就都一樣了)

?

測試一下不帶方向的繪製矩形的方法(滑鼠左鍵拖出一個紅色框,右鍵結束繪製,不管你按F6單步還是F5連續,執行到這一步就必須要畫完才會接著執行,隨後這個映像不管如何旋轉都能找到我們設定的模板的XY和方向)

?

測試一下帶方向的矩形框(也是滑鼠左鍵框,滑鼠放到藍色十字架上設定原點,然後放到紅色的寬度和高度上可以設定矩形的大小,放到綠色箭頭上可以設定初始的方向,其他動作跟上面的一樣)

?

?

更多教學視頻和資料下載,歡迎關注以下資訊:

我的優酷空間:

http://i.youku.com/acetaohai123

?

我的線上論壇:

http://csrobot.gz01.bdysite.com/

?

問題交流:

QQ:910358960

郵箱:[email protected]

?

?

?

?

C#應用視頻教程3.2 Halcon軟體測試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.