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等算子。
后记
大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。