Sunteți pe pagina 1din 5

Sisteme de vedere artificială Lucrarea de laborator nr.

LUCRAREA NR. 3

1. Scopul lucrării
În cea de-a treia lucrare de laborator se propune studiul asupra transformărilor geometrice
ce pot fi aplicate pe imagini picturale.

2. Breviar teoretic
Reamintim etapele de prelucrare a informaţiilor realizate de un Sistem de Vedere
Artificială:
• achiziţia şi formarea imaginilor
• preprocesarea imaginilor
• segmentarea imaginilor
• descrierea
• recunoaşterea formelor
• interpretarea

⎡ x1 ⎤
x = ⎢ ⎥ → clasificare
⎢x ⎥
⎣ n⎦
achiziţie şi
segmentare descriere recunoaştere interpretare
preprocesare

Camera
TV Braţ
robot
controler
robot

1
Sisteme de vedere artificială Lucrarea de laborator nr. 3

Dacă în lucrarea numărul 1 s-a discutat despre achiziţia şi formarea imaginilor, cea de
faţă începe tratarea etapei preprocesării imaginilor, pentru care atât marimea de intrare cât şi
cea de ieşire sunt imagini picturale (iconice).

3 Transformări geometrice

3.1. Noţiuni generale


Transformările geometrice (spaţiale) sunt necesare atunci când se doreşte eliminarea
anumitor distorsiuni geometrice introduse de imperfecţiuni ale dispozitivului de captare, sau
când se doreşte compararea imaginilor aceluiaşi obiect obţinute cu dispozitive de captare
diferite. În realizarea transformărilor spaţiale se disting două etape:
a. Transformarea coordonatelor pixelilor imaginii iniţiale;
b. Calcularea nivelurilor de gri ale pixelilor noii imagini.

a. Transformarea coordonatelor pixelilor pune în evidenţă relaţia dintre coordonatele


pixelilor din imaginea iniţială şi coordonatele pixelilor din imaginea transformată:
Tx ( x, y ) = x′ şi Ty ( x, y ) = y ′ .

Astfel, pixelului de coordonate (x,y) din imaginea iniţială îi va corespunde pixelul (x’,y’) din
imaginea transformată (fig. 1).
(x’,y’)

(x,y)

Fig. 1
Dintre transformările uzuale, amintim:
- transformarea biliniară:
⎧ x' = a0 + a1 x + a 2 y + a3 xy

⎩ y ' = b0 + b1 x + b2 y + b3 xy
(sunt necesare patru perechi de puncte pentru determinarea coeficienţilor)
- transformarea afină:
⎧ x' = a0 + a1 x + a2 y

⎩ y ' = b0 + b1 x + b2 y
(sunt necesare doar trei perechi de puncte pentru determinarea coeficienţilor).

2
Sisteme de vedere artificială Lucrarea de laborator nr. 3
Folosind transformarea afină cu anumiţi parametri se pot defini următoarele operaţii:
rotaţia, translaţia, scalarea şi înclinarea cu un anumit unghi faţă de o anumită axă.
Transformarea duce la schimbarea sistemului de coordonate. Pentru a studia influenţa
acestei schimbări, se foloseşte iacobianul J :
Dacă J = 0, atunci nu există transformare inversă.
Dacă J = 1, atunci aria este invariantă la transformare.
Pentru transformarea biliniară, J = a1b 2 − a2 b1 + (a1b 3 −a3b1 ) x + (a3b 2 − a2 b3 ) y .

Pentru transformarea afină, J = a1b 2 −a2 b1 .


Amintim că iacobianul se defineşte ca fiind:
∂x' ∂y '
∂x ∂x
J=
∂x' ∂y '
∂y ∂y

Transformări utile:
- înclinarea cu unghiul ϕ pe direcţia y:

⎧ x' = x + y ⋅ tgϕ
⎨ (J=1, aria nu se modifică).
⎩ y' = y
- scalarea cu factorul a pe direcţia x şi b pe direcţia y:
⎧ x' = ax
⎨ (J=ab, aria se modifică).
⎩ y ' = by
- translaţia pe direcţia x cu a şi pe y cu b:
⎧ x' = x − a
⎨ (J=1, aria nu se modifică).
⎩ y' = y − b
- rotaţia cu unghiul ϕ :

⎧ x' = x ⋅ cos ϕ + y ⋅ sin ϕ


⎨ (J=1, aria nu se modifică).
⎩ y ' = − x ⋅ sin ϕ + y ⋅ cos ϕ

b. Interpolarea reprezintă metoda de estimarea a nivelului de gri a unui punct situat între
pixelii imaginii. Interpolarea nivelelor de gri este necesară deoarece coordonatele obţinute
prin transformare, x` şi y` nu sunt numere întregi, ci sunt numere reale, şi nu se suprapun
peste grila noii imagini. Astfel, se realizează o aproximare a tonurilor de gri ale pixelilor
imaginii noi. Metodele de interpolare cele mai întâlnite sunt:
- metoda vecinului cel mai apropiat;

3
Sisteme de vedere artificială Lucrarea de laborator nr. 2
- interpolarea liniară;
- interpolarea bicubică.
Considerând punctul (x`,y`) din imaginea nouă, dacă se aplică transformata inversă T −1 ,
se obţin coordonatele (x,y) reale din imaginea iniţială. Pe baza acestor coordonate, şi a
nivelelor de gri din imaginea iniţială, se aproximează nivelul de gri al pixelului (x`,y`) din
imaginea nouă.

3.2. Funcţii Matlab utile în transformările spaţiale:


¾ redimensionarea imaginii - imresize
imresize – modifică dimensiunile imaginii folosind o metodă de interpolare cunoscută;
¾ rotirea imaginii – imrotate
imrotate – roteşte o imagine cu un anumit unghi primit ca parametru;
¾ selectarea unei anumite zone dreptunghiulare din imagine – imcrop
imcrop – noua imagine va conţine o zonă dreptunghiulară inclusă în prima imagine.

3.3. Funcţii Matlab utile în realizarea unor transformări generale:


maketform – realizează structura unei transfomări geometrice;
cp2tform – realizează structura unei transfomări geometrice;
imtransform – aplică o transformare generală unei imagini;

Notă: Observaţi exemplele de utilizarea a acestor funcţii din help-ul Matlab.

3.4 . Exemplu
Următorul exemplu realizează o transformare de perspectivă a unei texturi tip tablă de
şah. Urmăriţi efectul acestor funcţii.
I = checkerboard(20,1,1);
figure; imshow(I)
T = maketform('projective',[1 1; 41 1; 41 41; 1 41],...
[5 5; 40 5; 35 30; -10 30]);
R = makeresampler('cubic','circular');
K = imtransform(I,T,R,'Size',[100 100],'XYScale',1);
figure, imshow(K)

4
Sisteme de vedere artificială Lucrarea de laborator nr. 3

4 Exerciţii
4.1. Realizaţi o funcţie de scalare (redimensionare), utilizând metoda de interpolare a
vecinului cel mai apropiat
4.2 Scrieţi o funcţie Matlab care să realizeze rotaţia unei imagini grayscale cu un anumit
unghi primit ca parametru
Observaţii: se va utiliza interpolarea prin metoda vecinului cel mai apropiat.
4.3 Dezvoltaţi o funcţie pentru crearea unei piramide de scalări

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