Çatlak, Çizik, Çizgi vs. bulma

Genelde gözle dahi zor görülen çatlak, çizgi, çizik vs. bulunması işlemi bazen oldukça baş ağrıtıcı olabilir. Cam çatlağı bulunması, ahşap ya da mermer yüzeyde damarların kontrolü, tıbbi görüntüler, metalik yüzeydeki çiziklerin tesbiti gibi örneklerde karşımıza sıkça çıkan bu uygulamalarda alınan  görüntünün hem arka zemini ile uğraşmak (görüntüye giren yansımalar, noktacık şeklindeki tozlar vs. ayrıştırılmalı) hem de ön plandaki çizgiler hassas olarak seçilebilmelidir.
Uygulamaya göre pek çok farklı yaklaşım getirilmekle birlikte, bu tür uygulamalarda

  • Gauss Filtresi Uygulama
  • Gradient Domain Manipulation tekniği uygulama
  • Photometric stereo yöntemine göre görüntü alma

vb yöntemler ilk akla gelenlerdir.

Yukardaki resimde görüldüğü gibi, lines gauss bize çizgileri, gradient_domain işlemi ise arka zemin temizlemeyi ve çizgileri belirginleştirmeyi göstermektedir. Her iki tekniğin de HALCON kurulumu ile gelen angio-part isimli resme uygulandığı HALCON programcığı ise aşağıdadır. Kendi örneklerinizde uygulamalar daha komplike olacaktır.

(gradient domain manipulation tekniği, zemin üzerindeki resim üzerinde yer alan, genelde istenmeyen lekelerin elenmesi ve ön plana çıkartılmak istenen yerlerin belirginleştirilmesi suretiyle resmin yumuşatılması işlemidir. Bazı durumlarda çok iyi sonuçlar verebilmektedir.)

dev_update_off ()
dev_close_window ()
read_image (Angio, 'angio-part')
get_image_size (Angio, Width, Height)
dev_open_window (0, 0, 3*Width/2, 3*Height/2, 'black', WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
lines_gauss (Angio, Lines, 2.3, 0.0, 0.7, 'dark', 'true', 'parabolic', 'true')
dev_display (Angio)
dev_set_color ('green')
dev_display (Lines)
disp_message (WindowHandle, 'X-Ray image with extracted contours', 'window', 20, 12, 'black', 'true')
disp_continue_message (WindowHandle, 'black', 'true')
stop()
*
gen_image_const (DX, 'real', Width, Height)
gen_image_const (DY, 'real', Width, Height)
count_obj (Lines, Number)
*
for I := 1 to Number by 1
    select_obj (Lines, Line, I)
    get_contour_xld (Line, Row, Col)
    if (|Row| < 10)
        continue
    endif
    get_contour_attrib_xld (Line, 'angle', Angle)
    get_contour_attrib_xld (Line, 'width_left', WidthL)
    get_contour_attrib_xld (Line, 'width_right', WidthR)
    get_contour_attrib_xld (Line, 'contrast', Attrib)
    * To process the lines, the point at which the gray value drops to
    * 25% of the contrast between the line and the background will be
    * displayed.  This point is given by sqrt(3/4) for the parabolic
    * line model.
    RowR := Row+cos(Angle)*WidthR*sqrt(0.75)
    ColR := Col+sin(Angle)*WidthR*sqrt(0.75)
    RowL := Row-cos(Angle)*WidthL*sqrt(0.75)
    ColL := Col-sin(Angle)*WidthL*sqrt(0.75)
    tuple_max ([RowR,RowL], Max)
    tuple_max ([ColR,ColL], Max2)
    if (Max < Height and Max2 < Width)
        set_grayval (DX, int(RowR), int(ColR), Attrib*sin(Angle))
        set_grayval (DY, int(RowR), int(ColR), Attrib*cos(Angle))
        set_grayval (DX, int(RowL), int(ColL), -Attrib*sin(Angle))
        set_grayval (DY, int(RowL), int(ColL), -Attrib*cos(Angle))
    endif
endfor
real_to_vector_field (DY, DX, VectorField, 'vector_field_relative')
reconstruct_height_field_from_gradient (VectorField, SmoothedImages, 'poisson', [], [])
dev_display (SmoothedImages)
disp_message (WindowHandle, 'Smoothed image', 'window', 20, 12, 'black', 'true')

Gradient domain manipulation allows strong image smoothing simply by suppressing all gradients below a certain threshold.

As result, only strong edges remain while small changes (which are typically caused by noise) are removed.

 

Mavis Kütahya ve Eskişehir’de

Mavis, Kütahya OSB de kurulu olan kameralı kontrol sistemlerine bakım vermek ve yeni modelleri tanıtmak amacıyla bugün Kütahya’da bulunmaktadır. Aynı gün, Kameralı Cam kontrolü (bardak, şişe vb.) çalışmaları için, başka bir firmaya geçecek ve ekipman tedarik edecektir. Bu firmada yapılacak çalışmalar, seri üretim yapılan camlı mamüllerin, kırık, çatlak, form bozukluğu, hare vb. hatalara karşı kamera ile %100 kalite kontrolünün yapılması işlemidir.

Ertesi gün (7 Eylül 2010, Salı) Eskişehir Organize sanayi Bölgesinde, Arçelik soğutucu tesislerinde yeni başlanılan OCR (Optik karakter tanıma) projesi için aydınlatma ve kamera yerleştirme işlemlerini gerçekleştirecektir.