HalCon学习笔记6

halcon的数据结构之region、xld

机器视觉的任务之一就是识别图像中的包含某种特性的区域,比如执行一个阈值分割处理,因此至少我们还需要一种数据结构,它可以表示一副图像中一个任意的像素子集,我们把区域定义为离散平面的任意子集

使用halcon算子threshold来看看得到区域的效果,其中红色部分就是灰度值在123到255的所有像素点的集合,他们将作为一个整体作为一个区域,使用变量Region表示

   

read_image(Image,'fabrik')
get_image_size(Image, Width, Height)

dev_close_window()
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)
dev_display(Image)

threshold(Image, Region, 128, 255)
connection(Region, ConnectedRegions)

select_shape(ConnectedRegions, SelectedRegions, 'rectangularity', 'and', 0.9, 1)
select_shape(SelectedRegions, SelectedRegions1, 'area', 'and', 7450, 99999)
*填充SelectedRegions1
fill_up(SelectedRegions1, RegionFillUp)
*抠图
reduce_domain(Image, RegionFillUp, ImageReduced)

threshold(ImageReduced,Region1,0,130)

threshold_sub_pix(ImageReduced, Border, 158)
*xldlength为90~120
select_contours_xld(Border, SelectedContours, 'contour_length', 90, 120, -0.5, 0.5)

count_obj(SelectedContours, Number)
*填充SelectedContours
gen_region_contour_xld(SelectedContours, Region2, 'filled')
reduce_domain(ImageReduced, Region2, ImageReduced1)

 HalCon学习笔记6_第1张图片HalCon学习笔记6_第2张图片

 

HalCon学习笔记6_第3张图片HalCon学习笔记6_第4张图片 

 

HalCon学习笔记6_第5张图片 

 

你可能感兴趣的:(机器视觉,halcon,学习,算法)