HALCON示例程序dem_trees.hdev提取樹
示例程序源碼(加注釋)
- 關于顯示類函數解釋
dev_close_window ()
read_image (Mreut, ‘mreut_y’)
read_image (MreutDem, ‘mreut_dgm_2.0’)
get_image_size (Mreut, Width, Height)
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
get_system (‘clip_region’, Information)
set_system (‘clip_region’, ‘false’)
dev_set_draw (‘margin’)
dev_set_color (‘red’) - texture_laws - 使用Laws紋理過濾器過濾圖像。
- texture_laws(輸入圖像:紋理變換圖像:濾波器,減少灰度值,掩膜大小 ?
texture_laws (Mreut, ImageTexture, ‘ee’, 2, 5) - median_separate - 使用兩個分離的矩形進行中值濾波。
- median_separate(圖片:中值濾波后圖像:掩膜寬度,掩膜高度,邊界處理方式 ?
median_separate (ImageTexture, ImageSMedian, 25, 25, ‘mirrored’) - 二值化
threshold (ImageSMedian, TexturedRegion, 30, 255)
dev_display (Mreut)
dev_display (TexturedRegion)
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop () - scale_image_max - 將圖像縮放到字節圖像的最大值范圍內的最大灰度值
- scale_image_max(圖像:最大灰度值 ::)
scale_image_max (MreutDem, ImageScaleMax) - dual_rank - 用圓形或矩形蒙版對圖像灰度進行非線性變換開運算、均值、閉運算。
- dual_rank(圖片:變換后的圖像:掩膜類型,半徑,濾波器模式,邊界處理方式 ?
dual_rank (ImageScaleMax, ImageRank, ‘circle’, 15, 10, ‘mirrored’) - 兩圖像相減
sub_image (ImageScaleMax, ImageRank, ImageSubRank, 1, 0) - 二值化
threshold (ImageSubRank, High, 5, 255) - zoom_region - 縮放區域。
- zoom_region(原始區域:縮放后區域:寬度比例,高度比例:)
zoom_region (High, HighLarge, 8, 8) - 移動區域
move_region (HighLarge, HighLargeMoved, -250, -600) - 用一個矩形元素剪輯區域
clip_region (HighLargeMoved, HighClipped, 0, 0, 511, 511) - 二值化
threshold (Mreut, Dark, 0, 130) - 求交集
intersection (TexturedRegion, Dark, RegionIntersection) - 填充孔洞
fill_up (RegionIntersection, RegionFillUp) - 分割連通域
connection (RegionFillUp, ConnectedRegions) - 使用面積進行篩選
select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 250, 10000000) - 使用圓形元素進行閉運算
closing_circle (SelectedRegions, TexureAndHigh, 2.5)
dev_display (Mreut)
dev_display (TexureAndHigh)
set_system (‘clip_region’, Information)
處理思路
這個例子比較復雜,我還沒有研究透徹,持續更新吧。但是使用到了一些算子還是收獲比較大。texture_laws 、median_separate 、dual_rank、zoom_region等算子。
后記
大家有什么問題可以向我提問哈,我看到了第一時間回復,希望在學習的路上多多結交良師益友。