
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.

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)








