Bazen alınan görüntüde eksik kalan yerlerin tamamlanması gerekebilir. Aşağıdaki örnek kod, tamamlama işini akıllı bir biçimde yapmaktadır.
Yukarıda görüldüğü gibi parçalar arasındaki boşluk, olabildiğince gerçeğe yakın bir şekilde birleştirilmiştir. Birçok yerde kullanılabilecek olan, prosedürel olarak yazılmış HALCON kodu :
read_image (Image, 'C:/Users/Mustafa/Desktop/aa.png')
bin_threshold (Image, Region)
connection (Region, ConnectedRegions)
CombineSplittedRegions (ConnectedRegions, RegionCount)
dev_set_draw ('fill')
dev_display(Image)
dev_display(RegionCount)
Burada asıl işi yapan CombineSplittedRegions prosedürü ise
count_obj(ConnectedRegions, Number)
if (Number > 1)
while (Number > 1)
select_obj (ConnectedRegions, Obj1, 1)
select_obj (ConnectedRegions, Obj2, 2)
inner_circle(Obj1, Row, Column, Radius1)
inner_circle(Obj2, Row, Column, Radius2)
minR := Radius1
if (Radius2 < Radius1)
minR := Radius2
endif
distance_rr_min(Obj1, Obj2, MinDistance, Row1, Column1, Row2, Column2)
gen_region_line (RegionLines, Row1, Column1, Row2, Column2)
dilation_circle(RegionLines, RegionDilation, minR)
union2(ConnectedRegions, RegionDilation, RegionUnion)
union1(RegionUnion, RegionCombine)
connection(RegionCombine, ConnectedRegions)
count_obj(ConnectedRegions, Number)
endwhile
else
copy_obj(ConnectedRegions, RegionCombine, 1, -1)
endif
inner_circle(RegionCombine, Row, Column, Radius)
rank_region(RegionCombine, RegionCount, Radius, Radius, 50)
return ()
programda kullanılan orijinal resim aşağıdadır. Programı denemek için bunu kullanabilirsiniz.




