QQ登录

只需一步,快速开始

halcon regiongrowing函数介绍

[ 复制链接 ]
1.regiongrowing(Image : Regions : Row, Column, Tolerance, MinSize : )
将图像分割成相同强度的区域——光栅化成大小为Row, Column的矩形。
为了确定相邻的两个矩形是否属于同一区域,只使用其中心点的灰度值。
如果灰度值差小于或等于Tolerance,则将矩形合并为一个区域。


如果g_{1}和g_{2}是两个待检测的灰度值,i满足下面条件就合并:
|g1-g2|<Tolerance

对于“'cyclic”类型的图像,使用以下公式:
2019-05-30_210552.jpg
对于大于一个像素的矩形,在调用regiongrowing之前,
通常应该使用至少为Row * Column的低通滤波器对图像进行平滑处理
(这样矩形中心的灰度值就可以代表整个矩形)。
如果图像噪声小,矩形小,在很多情况下可以省略平滑。


结果区域是所选大小 Row * Column的矩形的集合。
只返回包含至少MinSize 点的区域。

Regiongrowing是一种非常快速的操作,因此适合于时间紧迫的应用程序。



例程:
read_image (Image, 'mreut')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'white', WindowID)
median_image (Image, ImageMedian, 'circle', 2, 'mirrored')
regiongrowing (ImageMedian, Regions, 1, 1, 2, 100)
fill_up_shape (Regions, RegionFillUp, 'area', 1, 100)
closing_circle (RegionFillUp, RegionClosing, 7.5)
dev_clear_window ()
dev_set_draw ('fill')
dev_set_colored (12)
dev_display (RegionClosing)
dev_set_color ('black')
dev_set_draw ('margin')
dev_display (RegionClosing)

2.regiongrowing_mean(Image : Regions : StartRows, StartColumns, Tolerance, MinSize : )
regiongrowing_mean使用区域的平均灰度值(从StartRows和startcolumn给出的点开始)执行区域划分。
当前区域任意点的平均灰度值被计算出。
如果与当前平均值的差值小于Tolerance,则将区域边界处的灰度值添加到区域中。
小于MinSize的区域被抑制。


如果没有给定起始点(空元组),则展开过程从最左上角的点开始,
并在创建区域之后继续使用第一个未处理的点。


例程:
read_image (Image, 'fabrik')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'white', WindowID)
median_image (Image, ImageMedian, 'circle', 2, 'mirrored')
regiongrowing (ImageMedian, Regions, 1, 1, 2, 5000)
shape_trans (Regions, Centers, 'inner_center')
connection (Centers, SingleCenters)
area_center (SingleCenters, Area, Row, Column)
regiongrowing_mean (ImageMedian, RegionsMean, Row, Column, 25, 100)
dev_clear_window ()
dev_set_draw ('fill')
dev_set_colored (12)
dev_display (RegionsMean)
dev_set_color ('black')
dev_set_draw ('margin')
dev_display (RegionsMean)

3.regiongrowing_n(MultiChannelImage : Regions : Metric, MinTolerance, MaxTolerance, MinSize : )
regiongrowing_n执行多通道区域增进。n个通道产生一个n维特征向量。
如果相邻点的特征向量相对于给定Metric的差值位于区间[MinTolerance, MaxTolerance],
则将相邻点聚合为同一区域。只有4个社区的邻居被检查。
可以使用以下指标:


设g_{A}为图像上一个点的灰度值特征向量A,
同样g_ {B}为a点邻近点B的灰度值特征向量B。
g (d)为灰度值索引d。
另外,让 MinT表示MinTolerance和MaxT表示MaxTolerance。
则:
'1-norm':绝对值之和
2019-05-30_210552.jpg

2-norm
欧几里得距离
2019-05-30_210552.jpg
3-norm'
p - Norm p=3
2019-05-30_210552.jpg
'4-norm
p - Norm p = 4
2019-05-30_210552.jpg
'n-norm
氏距离
2019-05-30_210552.jpg
面积小于MinSize的区域被抑制


参数
MultiChannelImage 输入图像
Regions输出区域
Metric特征向量距离的度量。
取值较多,有
'1-norm', '2-norm', '3-norm', '4-norm', 'correlation', 'dot-product', 'gray-max-diff', 'gray-max-ratio', 'gray-min-diff', 'gray-min-ratio', 'length-diff', 'length-ratio', 'max-abs-diff', 'max-abs-ratio', 'max-diff', 'mean-abs-diff', 'mean-abs-ratio', 'mean-diff', 'mean-ratio', 'min-abs-diff', 'min-abs-ratio', 'min-diff', 'n-norm', 'n-norm-ratio', 'plane', 'variance', 'variance-diff', 'variance-ratio'
具体每个对应公式,可F1查看介绍
MinTolerance,MaxTolerance特征距离的阈值的高低阈值。
MinSize输出区域的最小大小。


例程:
read_image (Image, 'ic')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'white', WindowID)
set_display_font (WindowID, 16, 'mono', 'true', 'false')
median_image (Image, ImageMedian, 'circle', 4, 'mirrored')
* regiongrowing_n (ImageMedian, Regions, '1-norm', 0, 2, 30)
regiongrowing_n (ImageMedian, Regions, 'dot-product', 0, 60, 30)
* regiongrowing_n (ImageMedian, Regions, 'n-norm', 0, 3, 30)
dev_clear_window ()
dev_set_draw ('fill')
dev_set_colored (12)
dev_display (Regions)
dev_set_color ('black')
dev_set_draw ('margin')
dev_display (Regions)
disp_continue_message (WindowID, 'black', 'true')
stop ()
read_image (Combine, 'combine')
texture_laws (Combine, ImageTexture1, 'el', 2, 5)
texture_laws (Combine, ImageTexture2, 'ls', 2, 5)
compose3 (Combine, ImageTexture1, ImageTexture2, MultiChannelImage)
dev_set_colored (12)
regiongrowing_n (MultiChannelImage, Regions, 'max-diff', 0, 40, 30)
* regiongrowing_n (MultiChannelImage, Regions, '2-norm', 0, 25, 30)
* regiongrowing_n (MultiChannelImage, Regions, 'n-norm-ratio', 0.95, 100, 30)
dev_set_draw ('fill')
dev_display (Combine)
dev_display (Regions)
  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)





回复

使用道具 举报

快速回复 返回列表 客服中心 搜索