halcon-regiongrowing区域增长法分割图像为区域_不执行

halcon-regiongrowing区域增长法分割图像为区域_迭代_02



在HDevelop中

dev_update_off()
read_image (Image, 'D:/bb/tu/8.jpg')
get_image_size (Image, Width, Height)
regiongrowing (Image, Regions, 1, 1, 3, 1000)
*区域增长法分割图像为区域
*此方法分割的区域可能有重叠
*参数1:输入图像
*参数2:分割后的输出区域
*参数3Row和参数4Col :定义了在图像内相邻移动的模板的长和宽度大小
*参数5:两个相邻模板中心灰度值差,如果小于这个值就合并为同一区域
*参数6:作为一个限制,限定了用上面方法分割出的区域面积最终不能小于MinSize给定的值,否则不作为区域输出


gen_empty_region (NoPixel)
*创建一个空区域
*count_obj返回1 这个区域的面积是0。

expand_region (Regions, NoPixel, RegionExpanded1, 'maximal', 'image')
*填充区域之间的间隙或分割重叠区域
*参数1:Regions要膨胀的区域
* 如果是区域:不执行膨胀,而是只分割重叠区域,将重叠区域均匀地分布到各个区域里。
* 因为与原区域的交集是在收缩操作后计算出来的,因此可能会导致输出区域出现间隙。
* 这可以通过第二次调用expand_region来防止,并将原始区域的补集作为ForbiddenArea
*参数2:ForbiddenArea禁止膨胀的区域
*参数3:RegionExpanded1膨胀后结果区域
*参数4:迭代次数
* 默认值: 'maximal' 函数一直执行直到不可膨胀
* 建议值: 'maximal',0,1,2,3,5,7,10,15,20,30,50,70,100,200
* 传递0的话,返回未重叠的全部区域
* 典型值范围:0≤ Iterations≤ 1000
*参数5:扩展模式
* 'image' 目的是填充区域之间的间隙,输入区域将迭代地膨胀,直到它们触及另一个区域或图像边缘
* 'region' 目的是分割重叠区域



dev_set_colored (10)
*设置输出颜色的数量

dev_open_window (10, 10, Width, Height, 'black', WindowHandle)
dev_display (RegionExpanded1)


halcon-regiongrowing区域增长法分割图像为区域_默认值_03



在QtCreator中

HObject  ho_Image, ho_Regions, ho_NoPixel, ho_RegionExpanded1;
HTuple hv_Width, hv_Height, hv_WindowHandle;
ReadImage(&ho_Image, "D:/bb/tu/8.jpg");
GetImageSize(ho_Image, &hv_Width, &hv_Height);
Regiongrowing(ho_Image, &ho_Regions, 1, 1, 3, 1000);
//区域增长法分割图像为区域
//此方法分割的区域可能有重叠
//参数1:输入图像
//参数2:分割后的输出区域
//参数3Row和参数4Col :定义了在图像内相邻移动的模板的长和宽度大小
//参数5:两个相邻模板中心灰度值差,如果小于这个值就合并为同一区域
//参数6:作为一个限制,限定了用上面方法分割出的区域面积最终不能小于MinSize给定的值,否则不作为区域输出


GenEmptyRegion(&ho_NoPixel);
//创建一个空区域
//count_obj返回1 这个区域的面积是0。

ExpandRegion(ho_Regions, ho_NoPixel, &ho_RegionExpanded1, "maximal", "image");
//填充区域之间的间隙或分割重叠区域
//参数1:Regions要膨胀的区域
// 如果是区域:不执行膨胀,而是只分割重叠区域,将重叠区域均匀地分布到各个区域里。
// 因为与原区域的交集是在收缩操作后计算出来的,因此可能会导致输出区域出现间隙。
// 这可以通过第二次调用expand_region来防止,并将原始区域的补集作为ForbiddenArea
//参数2:ForbiddenArea禁止膨胀的区域
//参数3:RegionExpanded1膨胀后结果区域
//参数4:迭代次数
// 默认值: 'maximal' 函数一直执行直到不可膨胀
// 建议值: 'maximal',0,1,2,3,5,7,10,15,20,30,50,70,100,200
// 传递0的话,返回未重叠的全部区域
// 典型值范围:0≤ Iterations≤ 1000
//参数5:扩展模式
// 'image' 目的是填充区域之间的间隙,输入区域将迭代地膨胀,直到它们触及另一个区域或图像边缘
// 'region' 目的是分割重叠区域



if (HDevWindowStack::IsOpen())
SetColored(HDevWindowStack::GetActive(),10);
//设置输出颜色的数量

SetWindowAttr("background_color","black");
OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_RegionExpanded1, HDevWindowStack::GetActive());