halcon区域转图像用于create_shape_model创建模板

在对图像进行处理时,有时需要用到二值化处理,但经过阈值分割后的图像为区域类型。此时不可直接使用create_shape_model创建模板,需要转为Image。

第一种,使用自带算子。Halcon中有三个区域转图像算子:region_to_bin、region_to_label、region_to_mean.

region_to_bin(Region,BinImage,ForegroundGray,BackgroundGray,Width,Height)

它将一个区域转化成一个二进制字节图像。给区域内的所有像素赋给前景灰度值,如果输入区域大于生成的图像,则会在图像边界处截断;

region_to_label(Region,ImageLabel,Type,Width,Height)

它将区域转化为一个标签图像,通过索引值:第一个区域赋予灰度值1,第二个区域赋予灰度值2,依此类推……这里仅仅使用正的灰度值,直到256。区域大于生成图像则会被适当地截断。如果区域重叠,则较高值的图像会被输出。如果想重叠,可以调用expand_region进行处理。Type=‘int2’、‘int4’、‘byte’

region_to_mean(Regions,Image,ImageMean)

用它们的均值来填充图像区域,返回Image。

上述几种较为麻烦,且不例像,现在只想得到存在分割提取后区域的图像,可以创建空白图像,将得到的区域贴到上面

bin_threshold(TemplateImage,binRegion)
 *创建空白图像,将得到的区域贴到上面
*创建一个具有指定的固定灰度值的图像
gen_image_proto (TemplateImage, genImage, 255)
*将区域绘制到图像中。
paint_region (binRegion, genImage, paintImage, 50, 'fill')
create_shape_model (paintImage, 'auto', rad(0), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelId)
get_shape_model_contours (ModelContours, ModelId,1)

效果较好且理想。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值