halcon初识region


一、什么是region?

Region 为某些附和要求性质的像素的子集,或者说一些被选择的图块区域s,region大小不受图像限制(一个点都可成为一个region),有fill和margin两种表达方式,类似于游程编码(一种无损压缩编码),可用于压缩,eg:用a2b3c4代表aabbbcccc

二、halcon中的region操作
1、二值化算子threshold   
 原文地址

函数原型:threshold(Image: Region: MinGray,MaxGray: )

功能:

使用全局阈值分割图像,获取像素值介于MinGray和MaxGray的区域。

 参数列表:

第1个参数Image是输入变量,表示输入图像

第2个参数Region是输出变量,表示被分割后的图像

第3个参数MinGray是输入变量,阈值分割像素的最小值,默认值为128.0,建议可用值:0.0, 10.0, 30.0,64.0, 128.0, 200.0, 220.0, 255.0

第4个参数MaxGray是输入变量,阈值分割像素的最大值,默认值为255.0,建议可用值:0.0, 10.0, 30.0,64.0, 128.0, 200.0, 220.0, 255.0

注:最后两个参数的限制条件:MaxGray>=MinGray。

可能的前置应用函数:histo_to_thresh()(根据直方图决定灰度值门限)、min_max_gray()(计算区域内最大最小灰度值)、sobel_amp()(Sobel算子检测边缘)、binomial_filter()(binomial滤波器平滑图像)、gauss_image()(离散高斯函数平滑图像)、reduce_domain()(缩小图像区域)、fill_interlace()(插补两个半个视频图像)

可能的后置应用函数:connection()(连接区域)、dilation1()(扩大区域)、erosion1()(腐蚀区域,变小)、opening()(打开区域)、closing()(关闭区域)、rank_region()(归类区域)、shape_trans()(改变区域形状)、skeleton()(计算区域框架)

可被替换函数:class_2dim_sup()(采用二维空间像素分类分割图像)、hysteresis_threshold()(磁滞门限操作)、dyn_threshold()(局域阀值分割图像)、bin_threshold()(自动产生的阀值分割图像)、char_threshold()(为提取的字符产生一个分割阀值)、auto_threshold()(直方图决定阀值分割图像)、dual_threshold()(对标记的图像做门限操作)

2、特征选取算子select_shape

当我们想要提取Region时,图像处理后,往往存在几个类似的Region,此时,需要根据Region的一些特殊特征,来选择指定的Region。

求Region指定特征值:region_features(Regions : : Features : Value)

根据特征值选择区域:select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )

region的各种特征

例程:select_shape.hdev

read_image(Image,'fabrik')
dev_close_window()
dev_open_window(0,0,512,512,'black',WindowID)
dev_set_color('white')
dev_set_draw('fill')
regiongrowing(Image,Regions,1,1,3,10)
×//区域生长法分割图像以获取区域
 dev_set_color('red')
select_shape(Regions,SelectedRegions,'convexity','and',0.95,1)  
×//特征为‘凸性’
dev_set_color('green')
select_shape(Regions,SelectedRegions,'width','and',100,512)
×//特征为'宽度'
 dev_set_color('blue')
select_shape(Regions,SelectedRegions,'area','and',1,100)
×//特征为‘面积’

其中的算子: regiongrowing(Image: Regions: Row, Column, Tolerance, MinSize:)

函数作用:用区域生长实现图像分割

函数原理:

如果相邻像素的灰度值差小于等于Tolerance,则被融为一个区域。因为矩形一般大于1个像素,所以常常在调用regiongrowing前会用大小至少为Row*Column的低通滤波器平滑一下。如果图像包含小噪声并且矩形很小,平滑后这些因素大都会被去除。而区域包含至少MinSize个点才被挑选出来。区域生长是一个非常快的算子,因此适合用于对时间要求严苛的应用中。

3、区域联合操作









  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值