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 :