Delik-Perçin Boyutlarının ve Birbirleri Arasındaki Mesafelerin Kontrolü

Otomotiv sektöründe hizmet veren bir firmada bakır malzeme üzerindeki delik ve perçinlerin bulunup,boyutlarının ve birbirleri arasındaki mesafelerin kontrol edilmesi amaçlı bir sistem devreye aldık.

Geliştirdiğimiz arayüz sayesinde program farklı modellere uyarlanabiliyor. Modelin tanıtılması için operatör tarafından ürünün ölçümleri yapıldıktan sonra gerçek değerleri girilerek kaydedilmelidir. Tanıtılan modeldeki piksel-milimetre oranı kullanılarak ölçüm sonucunda bulunan piksel değerleri milimetre cinsinden ifade edilmektedir.

Deliğin bulunması :

var_threshold (ImageReduced, Region, 75, 75, 0.2, 2, 'dark')
closing_circle(Region, RegionClosing, 2.5)
opening_circle(RegionClosing, RegionOpening, 7)
connection(RegionOpening, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
smallest_circle (SelectedRegions, Row, Column, Radius)
gen_circle(Circle, Row, Column, Radius)
set_color(WinHandle, 'blue')
disp_region(Circle, WinHandle)

Perçinin bulunması :

var_threshold (ImageClosing, Region, 20, 20, 0.3, 3, 'light')
connection (Region, ConnectedRegions)
closing_rectangle1 (ConnectedRegions, RegionClosing, 10, 50)
opening_rectangle1 (RegionClosing, RegionOpening, 4, 120)
connection (RegionOpening, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions, ['area', 'height'], 'and', [1000, 180], [2800, 290])
count_obj (SelectedRegions, Number)
if (Number = 2)
    union1 (SelectedRegions, RegionUnion)
    smallest_rectangle1 (RegionUnion, Row1, Column1, Row2, Column2)
    gen_rectangle1 (Rectangle1, Row1, Column1, Row2, Column2)
    w := Column2 - Column1
    h := Row2 - Row1
    area_center(Rectangle1, Area5, Row5, Column5)
    set_color(WinHandle, 'blue')
    disp_region(Rectangle1, WinHandle)
endif

Delik çapı,perçin eni-boyu,merkezlerinin satır-sütun değerleri kullanılarak mesafeler bulunuyor. OK-NOK durumlarını gösteren örnek program görüntüleri :