Pharmacode okuma

Genelde medikal sektörde yaygın olan Pharmacode tipindeki barkodları okumak, sanıldığı kadar kolay olmayabilir. Aşağıdaki örnek, zor resimlerde (perspektif bozulmuş, net olmayan vb etkiler) pharmacode okumayı olanaklı hale getiren HALCON 10 kodudur.

set_display_font (3600, 16, 'mono', 'true', 'false')
*Pharma code yükleyelim
read_image (Image, 'PharmaCode3486.jpg')
*manual olarak barkod çizgilerini belirleyelim
bin_threshold (Image, Region)
connection(Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','height'], 'and', [1000,180], [15000,300])
count_obj(SelectedRegions, Number)
if (Number > 4)
    union1(SelectedRegions, RegionUnion)
    *barkodu içeren en küçük rectangle2 yi bul
    smallest_rectangle2(RegionUnion, Row, Column, Phi, Length1, Length2)
    gen_rectangle2(Rectangle, Row, Column, Phi, Length1, Length2)
    reduce_domain(Image, Rectangle, ImageReduced)
    *barkodu 0-255 arası scala ya yay
    scale_image_max(ImageReduced, ImageScaleMax)
    *şimdi barkod okuma işlemlerine geç
    create_bar_code_model ([], [], BarCodeHandle)
    decode_bar_code_rectangle2 (ImageScaleMax, BarCodeHandle, 'PharmaCode', Row, Column, Phi, Length1, Length2, DecodedDataStrings)
    get_bar_code_object (SymbolRegions, BarCodeHandle, 'all', 'symbol_regions')
    clear_bar_code_model (BarCodeHandle)
    disp_message (3600, DecodedDataStrings, 'image', 10, 10, 'green', 'true')
endif

Projede kullanılan barkod orijinal resmi