million threshold

Yarısı Beyaz, Yarısı Siyah olan zemin üzerinde, gri renkli nesneyi seçmek için hangi threshold tipi en uygundur?

Alternatif bir yaklaşım olarak 2 defa üst üste çalıştırılmış bin_threshold, en etkili sonucu verecektir.

ÜStteki görüntüde, kırmızı dörtgen içindeki alana bin_threshold komutu uygulandığında;

Koyu pixelleri seçecektir. Biz, bu koyu pixeller içindeki, civatayı, yani gri bölgeyi seçmek istiyoruz. Bu durumda, Bu bölgeye 2. defa bin_threshold uygulandığında, gri bölge açık olarak kalacağından, gri bölge dışındaki siyah bölgeyi seçecektir. difference komutu ile siyah bölge dışlanıp, gri bölge seçilir.

En son, filtreleme komutları ile birlikte, tam olarak civata seçilmiş olur.

Tüm programın HALCON kodu aşağıdaki gibidir.


read_image (Image, 'civata.bmp')
draw_rectangle2(3600, Row3, Column3, Phi1, Length11, Length21)
gen_rectangle2 (Rectangle, Row3, Column3, Phi1, Length11, Length21)
reduce_domain (Image, Rectangle, ImageReduced)

bin_threshold(ImageReduced, Region1)
reduce_domain(ImageReduced, Region1, ImageReduced1)
gray_opening_shape(ImageReduced1, ImageOpening1, 1, 1, 'octagon')
bin_threshold(ImageOpening1, Region2)
difference(ImageOpening1, Region2, Region)

connection(Region, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
fill_up(SelectedRegions, RegionFillUp)
closing_circle(RegionFillUp, RegionClosing, 2)
opening_circle(RegionClosing, RegionOpening, 3)
connection(RegionOpening, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 20, 99999)
dev_display(Image)
dev_set_color('green')
dev_display(SelectedRegions)