Sunteți pe pagina 1din 14

Roboți Inteligenți

Student: Ștefan Ioan Adrian


Specializarea: Master IESI
An: II

Februarie 2019
Rezultate

Poziția Poziția
Cadru
Videoclip Dimensiune Obiect pe axa pe axa
imagine
X Y
viplanedeparture.mp
240x360 11 31 109.8 124.6
4
viplanedeparture.mp
240x360 18 30 147.5 107
4

1. Rezultate obținute pentru obiectul 11:

Cadru imagine 31 (X), număr obiect 11 (Y), poziție pe axa X 109.8 (Z)
Cadru imagine 31 (X), număr obiect 11 (Y), poziție pe axa Y 124.6 (Z)

Poziție obiect 11 cadru 31


Deplasarea obiectului 11 în timp și răspunsul sistemului
2. Rezultate obținute pentru obiectul 18:

Cadru imagine 30 (X), număr obiect 18 (Y), poziție pe axa X 147.5 (Z)
Cadru imagine 30 (X), număr obiect 18 (Y), poziție pe axa Y 107 (Z)

Poziție obiect 18 cadru 30


Deplasarea obiectului 18 în timp și răspunsul sistemului
Obținerea caracteristicilor și a numărului de obiecte dintr-un videoclip
Vizualizarea grafică a obiectelor și a caracteristicilor acestora
%Filmul de control se afla in calea (verificati pe calculatorul propriu!)
%C:\ProgramFiles\MATLAB\R2006b\toolbox\vipblks\vipdemos\viplanedeparture.avi
%prelucrare robotvision2.mdl (timp de simulare 1 sec)
% Setari model simulativ
% Nr. Bloburi maxim - 50
% Tipul iesirilor - Structure with time
clc
%s = size(videobw);
O = [] ;
A = A.signals.values;
N = N.signals.values;
XY = XY.signals.values;
A = reshape(A, 1, 50,31);
%A31 = A(:,:,31)';%afisare de control vector coloana - aria obiectelor din
cadrul 31
for j=1:N(1,1,31)
for k=1:max(size(A(1,1,:)))
Aria(j,k)=A(1,j,k); %aria obiectului j din cadrul k
XCG(j,k)=XY(2,j,k);
YCG(j,k)=XY(1,j,k);
Obiect=[double(Aria(j,k)), XCG(j,k), YCG(j,k)];
O=[O ; Obiect];
end
end
figure(1);
plot(XY(2,:,31),XY(1,:,31),'o'); %atribute de reprezentare
set(gca,'YDir','reverse');
DimImg=size(videobw);
XMIN=0;
XMAX=DimImg(:,2,:);
YMIN=0;
YMAX=DimImg(:,1,:);
axis([XMIN XMAX YMIN YMAX]);
grid;
xlabel('X [pixeli]');
ylabel('Y [pixeli]');
figure(2);
Aria = reshape(A, 50, 31);
mesh(double(Aria));
xlabel('Cadrul de imagine');
ylabel('Obiectul detectat');
zlabel('Aria [pixeli]');
figure(3);
XCG = reshape(XY(:,1,:),50,31);
mesh(XCG); xlabel('Cadrul de imagine');
ylabel('Obiectul detectat');
zlabel('XCG [pixeli]');
figure(4);
YCG = reshape(XY(:,2,:),50,31);
mesh(YCG);
xlabel('Cadrul de imagine');
ylabel('Obiectul detectat');
zlabel('YCG [pixeli]');
figure(5);
imshow(single(videobw(:,:,31))); %Evolutia pozitiei obiectelor pentru n-
cadre,31 incepand cu cadrul p
p=31;
n=1;
size(O);
figure(6);
plot(O(1:n*N(1,1,31),2)',O(1:n*N(1,1,31),3),'o');
set(gca,'YDir','reverse');

Crearea structurilor de date pentru a fi procesate de către sistemul FUZZY


% Object number
object = 18;
% Number of frames
frames = 151;

% X Processing
X = XY.signals.values(object, 1, :);
X = reshape(X, 1, frames);
X = double(X);
X = X';
X = [XY.time, X];

% Y Processing
Y = XY.signals.values(object, 2, :);
Y = reshape(Y, 1, frames);
Y = double(Y);
Y = Y';
Y = [XY.time, Y];

% Aria Processing
Aria = A.signals.values(object, 1, :);
Aria = reshape(Aria, 1, frames);
Aria = double(Aria);
Aria = Aria';
Aria = [A.time, Aria];
Sistemul FUZZY de analiză

S-ar putea să vă placă și