Halcon自學筆記


編寫一個簡單的HDevelop程序(獲得所有回形針的方向,並在中心位置顯示)

1.首先讀取一張圖片:read_image (Image, 'G:/halcon/imgs/Clip.PNG')  Image為輸出的變量名,后一個參數為圖片路徑

2.根據灰度值把回形針分離出來,使用灰度直方圖獲取閾值:threshold (Image, Region, 0, 56)   Image為輸入的圖像,Region為輸出的圖像,0,56為閾值

3.connection算子用來計算一個區域中聯通的部分,用不同顏色表示出來:connection(Region,ConnectedRegions)  

Region為輸入的圖像,ConnectedRegions為輸出的圖像

4.根據特征選擇區域:select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 475, 595)

5.獲得回形針的方向和重心:

orientation_region(SelectedRegions,Phi)
area_center(SelectedRegions,Area,Row,Column)

算子orientation_region會返回一個元組Phi,數組的每個元素值表示:對象元組SelecetdRegions中對應的每個區域的方向。

算子area_center把每個區域的Area,Row,Column的值以元組的方式返回

6.在循環體中訪問檢測結果:

for Index := 0 to |Phi|-1 by 1
  set_tposition(3600,Row[Index],Column[Index])
  write_string(3600,deg(Phi[Index])+'degrees')
endfor

算子set_tposition把圖形窗口中的文本光標位置移動至索引Index所對應的區域的中心位置。3600是目標圖形窗口的窗口句柄(每個圖形窗口對應一個窗口句柄)Row[Index]是HDevelop語言的另一個算子,通過它來訪問Tuple元組中的元素。

算子write_string的作用是在圖形窗口的光標位置輸出一個指定字符串。

算子deg也是HDevelop語言的一部分,它的作用是把弧度轉化成角度。

算子+的作用是將兩個字符串合並成一個字符串,在本例中,在兩個操作數+之前,HDevelop會自動進行類型轉換,把deg(Phi[Index])從double轉換成string類型

原圖:

效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM