Görüntü İşleme ile Varlık Yokluk Kontrolü (Rectifier Kullanımı)

endüstriyle görüntü işleme uygulamaları
Görüntü işleme ile varlık yokluk kontrolü, görüntü işleme sistemleri,kameralı ölçüm sistemleri

Görüntü işleme uygulamalarında, özellikle kontrol edilecek ürünler konveyör bant veya benzeri bir sistemle kamera önüne geldiğinde, bazen ürünler düzgün bir şekilde gelmeyebilir.

Bu tür durumlarda, sistemde tanımlanan referans görüntü ile ürün, hangi açıda gelirse gelsin, rectifier fonksiyonu kullanılarak referans görüntü üzerinde düzgün bir şekilde yerleştirilebilmektedir.

Görüntü işleme ile varlık yokluk kontrolü, görüntü işleme sistemleri,kameralı ölçüm sistemleri

Yukarıda görselde yer alan örnek sistemde, sağ tarafta ürünlerin doğrultulması (rectifier) yapılarak LED varlık yokluk kontrolü gerçekleştirilmektedir.

Bu amatörce çekilen görüntülerde, doğrultma işleminden sonra kırmızı renkteki LED için bir ROI (Region of Interest – İlgilenilen Bölge) belirlenerek varlık yokluk kontrolü yapılabilmektedir.

Halcon Kodları – Ana çalışma fonksiyonu

read_image (Image, ImageFiles[Index])
    dev_set_window (WindowHandle)
     dev_display (Image)
     dev_set_window (WindowHandle1)
    find_scaled_shape_model (Image, ModelID, 0, rad(360), 0.98, 1.02, 0.6, 1, 1, 'least_squares_high', [5,3], 0.9, Row, Column, Angle, Scale, Score)
    count_seconds (EndSeconds)
    
    get_shape_model_contours (ModelContours, ModelID, 1)
    
    vector_angle_to_rigid (Row, Column, Angle, RowModel[0], ColumnModel[0], 0, HomMat2DImage)
    affine_trans_image (Image, ImageAffineTrans, HomMat2DImage, 'constant', 'false')
    full_domain (ImageAffineTrans, ImageFull)
    gen_rectangle1 (ROI_0, 415.849, 1092.98, 598.073, 1281.1)
    reduce_domain(ImageFull, ROI_0, ImageReduced)
    decompose3(ImageReduced, R, G, B)
    dyn_threshold(R, G, RegionDynThresh, 20, 'light')
    connection(RegionDynThresh, ConnectedRegions)
    
    select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 3000, 6000)

    count_obj(SelectedRegions, Number)
    if(Number=0)
        dev_disp_text('NOK', 'window', 20, 20, 'red', [], [])
    else
        dev_disp_text('OK', 'window', 20, 20, 'green', [], [])
    endif
  

Model Oluşturma Halcon Kodları

gen_rectangle1 (ModelRegion, 519.647, 380.789, 1059.4, 1301.26)
area_center (ModelRegion, Area, RowModel, ColumnModel)
reduce_domain (Image, ModelRegion, TemplateImage)
create_shape_model (TemplateImage, 7, rad(0), rad(360), rad(0.12), ['point_reduction_high','no_pregeneration'], 'use_polarity', [26,44,47], 4, ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)


hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_translate (HomMat2DIdentity, RowModel, ColumnModel, HomMat2DTranslate)
affine_trans_contour_xld (ModelContours, ModelContoursAffineTrans, HomMat2DTranslate)

Benzer Yazılar