%*****ERSİN ÖZDEMİR İSTANBUL ÜNV. BİYOMEDİKAL MÜH. 05/2010***** %Buffer'ın initialize edilmesi clc; clear; %RAM Değişkenleri global vid gray_picture rgb_picture global T_Point cutted_border_size target_border_size target_point global X_MAX Y_MAX %Default Değerler X_MAX = 320; Y_MAX = 240; target_point = [1 1]; cutted_border_size = [200,200]; target_border_size = [50,50]; %*** Treshold değeri *** T_Point = 210; %Video formatları V_320X240 = 'RGB24_320x240'; V_640X360 = 'RGB24_640X360'; V_800X488 = 'RGB24_800X488'; V_960X544 = 'RGB24_960X544'; HD_1280X720 = 'RGB24_1280X720'; %video formatının seçilmesi V_FORMAT = V_640X360; %MAX ve MIN noktaların atanması switch(V_FORMAT) case V_320X240 X_MAX = 320; Y_MAX = 240; case V_640X360 X_MAX = 640; Y_MAX = 360; case V_800X488 X_MAX = 800; Y_MAX = 488; case V_960X544 X_MAX = 960; Y_MAX = 544; case HD_1280X720 X_MAX = 1280; Y_MAX = 720; end %Videodan görüntünün alınması vid = videoinput('winvideo',1,V_FORMAT); %Target'ın oluşturulması square_target_shape(); %Sürekliliğin kazandırılması while(1) %Videonun ekranda gösterilmesi preview(vid); %Videodan örnek resim alınması rgb_picture = getsnapshot(vid); %Gri skalaya çevirme gray_picture = rgb2gray(rgb_picture); %Gri resmin ekrana basılması imshow(gray_picture) %Resmin taranması for x=1:X_MAX for y=1:Y_MAX %gri resimdeki noktanın değeri pixel_value = gray_picture(y,x); if (pixel_value > T_Point) %hedefin bulunduğu ilk nokta target_point = [x y] %yeni sınır değerlerin hesaplanması calculate_new_border(); break; end end %ikincil kontrol if (pixel_value > T_Point) target_point = [x y] calculate_new_border(); break; end end %hedef çiz if (pixel_value > T_Point) display_target(); end %akıllı haraket smart_motion(); end