基於haclon的曲線針識別實例

基於haclon的曲線針識別實例 
本例子介紹了一個利用haclon對曲線針進行識別的例子,目標是計算並確定曲線針的位置和方向,曲線針如圖所示:

這裏寫圖片描述 
1.啓動HDevelop,新建一個程序: 
這裏寫圖片描述 
2.讀入圖片: 
在輸入算子函數處輸入read_image 
這裏寫圖片描述 
輸入圖片變量名:Image1,圖片的路徑點擊filename.read選取圖片路徑。 
點擊輸入會看到程序輸入區出現輸入圖片命令的代碼 
這裏寫圖片描述 
運行程序: 
這裏寫圖片描述 
窗口左側圖像變量區會出現相應的圖像變量,並且圖像窗口顯示讀入的圖像。 
3.選取可視化-工具-灰度直方圖命令 
這裏寫圖片描述 
點擊閾值旁邊的使能 。調整閾值的最小值和最大值,調整過程中可以看到閾值調整的實時圖: 
這裏寫圖片描述 
當閾值爲10到55左右時圖像2值處理效果較好。 
4.添加閾值分割函數threshold。 
設置閾值最小值爲10,最大值爲55.點擊輸入插入代碼 
這裏寫圖片描述 
這裏寫圖片描述 
5.添加後繼函數 
選中剛插入的程序行,打開菜單欄中的 建議-後繼函數。選擇connection算子。目的是把選擇的像素分割成區域。 
這裏寫圖片描述 
單擊確定。通過connection計算得到的區域用不同的顏色顯示。 
這裏寫圖片描述 
6.鼠標移到圖形變量ConnectedRegions右鍵顯示目錄—選擇。出現如下圖所示,測量出來的區域。 
這裏寫圖片描述 
發現區域數比曲線針數多了1個,因爲圖像左上角有干擾圖像。 
7.根據特徵值選擇區域排除干擾區域 
點擊可視化—工具—特徵值直方圖工具,它有助於選擇擁有共同屬性或特性的區域。 
這裏寫圖片描述 
激活area旁邊的使能 。移動最小和最大值剔除干擾區域: 
這裏寫圖片描述 
點擊插入代碼,運行程序查看區域,發現區域數爲13,干擾區域已經被剔除 
這裏寫圖片描述 
添加orientation_region(SelectedRegions,Phi) 得到針的方向,返回的Phi爲針的方向角度 
area_center(SelectedRegions,Area,Row,Cloumn)返回每個針區域的中心位置。 
運行程序得到結果,結果在控制變量區域有顯示 
這裏寫圖片描述 
8.在循環體中訪問檢測結果。 
點擊菜單欄—算子—控制—for 
設置參數: 
這裏寫圖片描述 
|Phi|-1是HDevelop語言的一部分,|Phi|表示元組元素的個數。點擊輸入。 
然後在for循環中添加如下代碼: 
set_tposition(3600,Row[index],Cloumn[Index]) 
這裏寫圖片描述 
write_string(3600,deg(Phi[Index])+’degree’) 
這裏寫圖片描述 
算子set_tposition把圖形窗口中的文本光標位置移至索引Index所對應的區域的中心位置。3600是目標圖形窗口的窗口句柄。顯示在窗口標題欄 
Row[Index]是HDevelop語言的另外一個算子。通過它來訪問突破了元組的一個元素。 
算子write_string的作用是在圖形窗口中,在當前光標位置輸出指定字符。deg()是把弧度轉換爲角度的意思。 
9.最後結果如圖所示: 
這裏寫圖片描述 
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章