Halcon region区域提取及区域转图像

您所在的位置:网站首页 halcon保存区域到文件 Halcon region区域提取及区域转图像

Halcon region区域提取及区域转图像

2023-09-25 04:26| 来源: 网络整理| 查看: 265

在VS中调用Halcon中的分割之类函数后,直接返回显示时会报错,因为是把返回值当成L了Image变量直接赋值给了图像数据buffer,返回的是被分割后的Regions,因此从Regions中获取get_image_pointer1或get_image_pointer3时就会报错,提示函数没有灰度值。

因此需要将Regions连接起来生成一个大的区域,然后将区域进行相关操作转化成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。 region_to_bin

region_to_bin——将将区域转换为二进制字节图像。 函数原型:region_to_bin(Region : BinImage : ForegroundGray, BackgroundGray, Width, Height : ) 功能:region_to_bin将在Region中给定的输入区域转换为“字节”图像,并将ForegroundGray的灰度值分配给该区域中的所有像素。 如果输入区域大于生成的图像,则会在图像边框处裁剪。 背景灰度值设置为BackgroundGray。 参数列表 Region (input_object) :要转换的区域。 BinImage (output_object) :包含转换区域的尺寸Width*Height的结果图像。 ForegroundGray :区域内的灰度值。   Default value: 255   Suggested values: 0, 1, 50, 100, 128, 150, 200, 254, 255   Typical range of values: 0 ≤ ForegroundGray ≤ 255 (lin)   Recommended increment: 1 BackgroundGray (input_control) ——背景灰度值   Default value: 0   Suggested values: 0, 1, 50, 100, 128, 150, 200, 254, 255   Typical range of values: 0 ≤ BackgroundGray ≤ 255 (lin)   Recommended increment: 1 Width (input_control) ——要生成的图像的宽度。   Default value: 512   Suggested values: 256, 512, 1024   Typical range of values: 1 ≤ Width ≤ 1024 (lin)   Minimum increment: 1   Recommended increment: 16   Restriction: Width >= 1 Height (input_control)——要生成的图像的高度。   Default value: 512   Suggested values: 256, 512, 1024   Typical range of values: 1 ≤ Height ≤ 1024 (lin)   Minimum increment: 1   Recommended increment: 16   Restriction: Height >= 1

region_to_label region_to_label -——将区域转换为标签图像。 原型:region_to_label(Region : ImageLabel : Type, Width, Height : ) 功能:region_to_label根据它们的索引(1…n)将输入区域转换成标签图像,即,第一区域被绘成灰度值1,第二区域被绘成灰度值2等。仅使用正灰度值。 对于’byte’图像,索引以取256的模输入。

超出生成图像的区域被适当地剪切。 如果区域重叠,则输入索引较高图像的区域(即,它们按照它们被包含在输入区域中的顺序被绘制)。 如果需要,可以通过调用expand_region使区域不重叠。

将背景(即未被任何区域覆盖的区域)设置为0.这可以用于测试哪个图像范围不存在区域。 参数列表 Region (input_object) :要转换的区域。 ImageLabel (output_object) :包含转换区域的尺寸Width*Height的结果图像。 Type (input_control) :图像像素类型。   Default value: ‘int2’   List of values: ‘byte’, ‘int2’, ‘int4’, ‘int8’ Width (input_control) :要生成的图像的宽度。   Default value: 512   Suggested values: 64, 128, 256, 512, 1024   Typical range of values: 1 ≤ Width ≤ 1024 (lin)   Minimum increment: 1   Recommended increment: 16   Restriction: Width >= 1 Height (input_control) :要生成的图像的高度。   Default value: 512   Suggested values: 64, 128, 256, 512, 1024   Typical range of values: 1 ≤ Height ≤ 1024 (lin)   Minimum increment: 1   Recommended increment: 16   Restriction: Height >= 1

region_to_mean region_to_mean ——用平均灰度值绘制区域。 函数原型:region_to_mean(Regions, Image : ImageMean : : ) 功能:  region_to_mean根据图像Image返回一个图像,其中Regions的区域被绘制为其平均灰度值。 该算子主要是为了将分割结果可视化。 参数列表 Regions (input_object) :输入区域。 Image (input_object):原始的灰度值图像。 ImageMean (output_object) :结果图像与绘制区域。

示例

read_image(Image,'fabrik') dev_close_window () dev_open_window (0, 0, 512, 512, 'black', WindowHandle) regiongrowing(Image,Regions,3,3,6,100) region_to_mean(Regions,Image,Disp) disp_image (Disp, 200000) disp_image(Disp,WindowHandle) set_draw(WindowHandle,'margin') set_color(WindowHandle,'black') disp_region(Regions,WindowHandle)

运行结果如下所示: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3