Sunteți pe pagina 1din 23

Vaman Teodora Noiembrie 2021

TAID

Laborator 1. Percepția stimulilor vizuali

1. Unghiul de vizualizare si frecventa spatiala

a) filtru gaussian trece-jos -> folosit pentru a elimina informatia de frecventa inalta
( se elimina schimbarile bruste din imagine, detaliile fine )

clear; clc;
im = imread('buildings_original.bmp ');
imGray = rgb2gray(im);
hsize = [13 13]; %dim filtru
sigma = 0.8;
h = fspecial('gaussian', hsize, sigma);
imf = imfilter(imGray, h);
figure(1)
imshow(imGray)
title("figura originala")

figure(2), imshow(imf)
title("figura dupa filtrare - apare un pic blurata
deoarece s-a eliminat informatia de la frecvente inalte")

figure(3), imshow(imGray - imf)


title("diferenta dintre imaginea filtrata si cea originala
- se observa ca s-au eliminat contururile fine")
Vaman Teodora Noiembrie 2021
TAID

Zonele cele mai afectate de filtru sunt zonele in care exista treceri
bruste de la o culoare la alta (contururi)
Vaman Teodora Noiembrie 2021
TAID

Trecerile bruste de culoare din jurul ochilor sunt atenuate, dar zona
din spate care este mai uniforma este mai putin blurata.
Vaman Teodora Noiembrie 2021
TAID

b) filtru laplacian trec sus -> acest filtru lasa sa treaca doar informatia de frecventa
inalta => in imagine vor ramane doar contururile
clear; clc;
im = imread('buildings_original.bmp ');
imGray = rgb2gray(im);
hsize = [13 13]; %dim filtru
sigma = 0.8;
%h = fspecial('gaussian', hsize, sigma);
h = fspecial('laplacian');

imf = imfilter(imGray, h);


figure(1)
imshow(imGray)
title("figura originala")

figure(2), imshow(imf)
title("figura dupa filtrare TRECE SUS - au ramas
contururile")

figure(3), imshow(imGray - imf)


title("diferenta dintre imaginea filtrata si cea
originala")

Se observa ca in aceasta imagine a ramas informatia de la frecvente inalte, dar


contururile sunt mult mai evidentiate decat in cazul in care aplicam filtru gaussian si
facem diferenta intre imaginea originala si cea filtrata.
Vaman Teodora Noiembrie 2021
TAID

Se observa ca cele mai evidente treceri de culoare au fost cele din jurul ochilor si a penelor.
Concluzie: filtru trece jos atenueaza trecerile bruste de culoare (contrurul) , filtrul trece sus
le lasa doar pe ele sa treaca
Vaman Teodora Noiembrie 2021
TAID

c) imsharpen -> evidentiaza mult mai bine detaliile


clear; clc;
im = imread('buildings_original.bmp ');
im2 = imread('parrots.bmp ');
imGray = rgb2gray(im);
imGray2 = rgb2gray(im2);
ims1 = imsharpen(imGray, 'Radius', 2, 'Amount', 1);
ims2 = imsharpen(imGray2, 'Radius', 2, 'Amount', 1);
figure(1), imshow(ims1)
title("buildings original dupa sharpening")
figure(2), imshow(ims2)
title("parrots dupa sharpening")
Vaman Teodora Noiembrie 2021
TAID

2. Sensibilitatea la lumina si la contrast


Codul folosit:
%%
S = fSin2(-3,-3);
figure(1), imshow(S)

%%

freq = logspace(0.1, 0.9, 600)';


C = logspace(-3, 0, 600);
L = 800;
x = linspace(-2 * pi, 2 * pi, 600);
y = linspace(1, 400, 600);
[xx,yy] = meshgrid(x, y);
[newfreq , newC] = meshgrid(freq, C);
z = L .* (newC .* sin(2 .* pi .* newfreq .* xx) + 1);
figure, imshow(z, []);
shading interp;
axis('off')

clear; clc;
img = imread('buildings_original.bmp ');
imgGray = rgb2gray(img);
frem = remez(10,[0 0.2 0.3 0.42 0.5 0.6 0.8 1],[0.77 0.95
1 0.95 0.9 0.75 0.45 0.23]);
h_rem2D = ftrans2(frem);
[H,w] = freqz(frem,1,64,'whole');
colormap(jet(64))
figure, plot(w/pi-1,fftshift(abs(H)))
figure, freqz2(h_rem2D,[32 32])

imf = imfilter(imgGray, h_rem2D);


figure(1), subplot(121), imshow(imgGray),
xlabel('original');
subplot(122), imshow(imf), xlabel('filtrat cu CSF');

figure(2)
imshow(imgGray - imf)
Vaman Teodora Noiembrie 2021
TAID

diagrama sensibilității la contrast Campbell- Robson:

Elementele care au fost extrase din imaginea originala.


Vaman Teodora Noiembrie 2021
TAID

Se observa ca detaliile care au fost eiminate sunt liniile din jurul ochilor si conturul penelor.
Insa imaginea finala nu pare sa fi pierdut niciun detaliu.
Vaman Teodora Noiembrie 2021
TAID

Am incercat testul pe o imagine cu multe contururi, dar in imaginea filtrata nu pare sa se fi


pierdut niciun detaliu. Insa daca ne uitam la diferenta dintre cele doua imagini se observa ca
s-au eliminat destul de multe elemente.
Vaman Teodora Noiembrie 2021
TAID
Vaman Teodora Noiembrie 2021
TAID

Pentru acest exemplu am incercat sa caut o imagine in care conturul sa fie mai important.
Singurul loc in care se observa o pierdere de detalii este trecerea de la floare la fundal care
este un pic mai blurata in imaginea filtrata. Insa pentru la prima vedere nu par sa existe
deloc diferente.
Vaman Teodora Noiembrie 2021
TAID

3. Mascare si evidentiere
Codul folosit:
imfinfo('lighthouse2.bmp')
a = imread('lighthouse2.bmp');
l = size(a(:,:,1),1);
c = size(a(:,:,1),2);
noise(:,:,1) = 255*uint8(rand(l/4,c));
noise(:,:,2) = 255*uint8(rand(l/4,c));
noise(:,:,3) = 255*uint8(rand(l/4,c));

figure(1),imshow(a,'InitialMagnification',100)
figure(2),imshow(noise,'InitialMagnification',100)

b = a; c = a; d = a;
b(1:128,:,:) = a(1:128,:,:)+ 0.2.*noise;
d(258:385,:,:) = a(258:385,:,:)+ 0.2.*noise;
c(385:512,:,:) = a(385:512,:,:)+ 0.2.*noise;
figure(3),subplot(131),imshow(b),title('Evidentiere')
subplot(132),imshow(c),title('Mascare')
subplot(133),imshow(d),title('Mascare - Evidentiere')

Dupa cum se poate observa, in prima imaginea banda de zgomot a fost adaugata in partea
de sus a imaginii, care este o parte uniforma doar cu frecvente joase (e doar culoarea
albastra a cerului), si prezenta zgomotului este foarte evindenta. Aceasi banda de zgomot
aplicata in partea de jos a imaginii, parte cu foarte multe detalii, nu produce acelasi efect ->
zgomotul aproape ca nu e perceput deloc. Am adaugat banda si in zona de mijloc doar
pentru a evidentia faptul ca in zona foarte detaliata ( iarba si casa de pe tarm ), zgomotul nu
se observa deloc, pe cand in partea cu marea si cerul acesta este foarte evident.
Vaman Teodora Noiembrie 2021
TAID

4. Non-independenta in frecventa spatiala si orientare


f = 7;
s1 = fSin2(0,f);
s2 = fSin2(0,4*f)+fSin2(0,5*f)+fSin2(0,6*f);
figure(1),subplot(2,1,1), colormap(gray),imagesc(s1)
subplot(2,1,2), colormap(gray),imagesc(s2)

Cele doua imagini par sa aiba aceasi periodicitate, dar acest lucru e o iluzie.
Daca ne uitam la semnalele sinusoidale:

Primul grafic e un sinus de frecventa f=7Hz, al doilea este 4*f, iar al treilea este suma
4f+5f+6f, echivalent cu exemplul anterior. Se observa aceasi impresie de perioada egala.
Vaman Teodora Noiembrie 2021
TAID

s3 = fSin2(3,f);
s4 = fSin2(-3,f);
figure(2),subplot(3,1,1),colormap(gray),imagesc(s3)
subplot(3,1,2),colormap(gray),imagesc(s4)
subplot(3,1,3),colormap(gray),imagesc(s3+s4)

Acest exercitiu a presupus combinarea a doua imaginii oblice, dar rezultatul pare a fi format
doar din linii orizontale si verticale. Acest lucru este datorat faptului ca stimulii
preponderenti in mediul nostru au orientari verticale si orizontale, deci celulele neuronale s-
au adaptat mult mai mult pentru a vedea aceste orientari, chiar si acolo unde acestea nu
exista.
Vaman Teodora Noiembrie 2021
TAID

5. Adaptarea
In prima faza, cand ne concentram pe punctul negru apare
fenomenul de adaptare => cele doua pete dispare. Sistemul
vizual primeste stimuli de aceasi frecventa pentru mai mult timp
ceea ce duce la o scadere a sensibilitatii incepe sa scada. Practic
sistemul decide ca nu are rost sa prelucreze informatia daca
aceasta nu se modifica. In a doua faza, mutand privirea in alta
parte se pare ca cele doua pete apar, dar apar inversate.
Presupun ca acest fenomen apare deoarece pentru a face pata
neagra sa apara dispara ea trebuie combinata cu valori albe
astfel stimuland acei neuronii. In momentul in care ne mutam privirea pentru cateva
secunde acei neuroni inca raman stimulati si apare ca si cum am vedea o pata alba. Acest
lucru se intampla echivalent pentru pata alba.

Un domeniu in care adaptarea joaca un interesant este recunoasterea faciala. De exemplu,


se pare ca daca ne uitam pentru cateva secunde la fata fericita, in momentul in care ne vom
uita la fata neutra aceasta va parea mai nervoasa si invers, adaptandu-ne la fata nervoasa va
face fata neutra sa para mai fericita. ( Visual adaptation: Neural, psychological and
computational aspects, Colin W.G. CliffordMichael A. Webster )
Vaman Teodora Noiembrie 2021
TAID

6. Modelarea celulelor neuronale simple din cortexul vizual


Crearea unei functii gabor
% O functie gabor rezulta din inmultirea unui sinus cu o
functie gausiana
N = 101;
x = -50:50;
y = -50:50;
f = 5;
[X,Y] = meshgrid(x,y);
grating = cos(2*pi*f*X / N);
figure(1), imagesc(grating),colormap gray
title('functie sinus')

% crearea unei functii gaussiene


std = N/(2*f);
gauss = exp(-((X-0.5).^2+(Y-0.5).^2)/(2*std^2));
figure(2), imagesc(gauss),colormap gray
title('functie gaussiana')

% crearea unei functii gabor


test_gabor = gauss.*grating;
figure(3), imagesc(test_gabor),colormap gray,
title('functie gabor 2D')
figure(4), mesh(test_gabor), title('functie gabor 3D');
Vaman Teodora Noiembrie 2021
TAID

% Caracteristica se aseamana cu campul receptor al unei


celule simple.
% Intrucit celulele simple sunt aproximativ liniare, se
vor modela folosind
% filtre cu o caracteristica de tipul determinat anterior.
% Se va genera o caracteristica gabor impar-simetrica care
modeleaza o
% celula simpla cu un camp receptor impar-simetric. Pentru
aceasta,
% semnalul sinusoidal va fi defazat cu 90 de grade.
grating = cos(2*pi*f*X/N - pi/2);
test_gabor = gauss.*grating;
figure(5), imagesc(test_gabor),colormap gray,
title('functie gabor 2D');
figure(6),mesh(test_gabor), title('functie gabor 3D');
Vaman Teodora Noiembrie 2021
TAID

% Aceste caracteristici Gabor sunt defazate cu 90 de grade


% si formeaza o pereche complex conjugata.
% Se va analiza raspunsul in frecventa al celulei simple
astfel modelata.
% Trecerea in domeniul frecventa se realizeaza prin
aplicarea
% transformatei Fourier campului receptor determinat
anterior pentru o
% celula neuronala simpla. Se determina astfel functia de
transfer
% modulatorie.
mtf = fftshift(abs(fft2(test_gabor)));
figure(7),mesh(mtf), title('Raspunsul in frecventa a
celulei simple')
figure(8), imagesc(mtf),colormap gray
plot(mtf(51,:)), title('doar componenta orizontala')
Vaman Teodora Noiembrie 2021
TAID

% Cele 2 ridicaturi corespund frecventelor pozitive si


negative.
% Ele se pot interpreta drept caracteristici trece-banda
care descriu
% comportamentul celulei neuronale simple. Celula va
raspunde numai pentru
% stimuli dintr-o gama restrinsa de frecvente.
% Celulele simple au insa si o selectivitate in orientare
spatiala.
% Aceasta se poate modela prin caracteristici gabor de
tipul unui camp receptor
% rotit, astfel:
f=5;
grating = cos(2*pi*f*Y / N);
std = N/(2*f);
gauss = exp(-((X-0.5).^2+(Y-0.5).^2)/(2*std^2));
test_gabor = gauss.*grating;
figure(9), imagesc(test_gabor),colormap gray,
title('fucntie gabor - camp receptor rotit');
Vaman Teodora Noiembrie 2021
TAID

%%%%%%%%%%%%%%%%%
%
% Exercitiu: sa se determine functia de transfer
modulatorie a campului
% receptor tocmai creat si sa se analizeze diferentele
dintre aceasta si
% functia modulatorie mtf determinata initial.
%
%%%%%%%%%%%%%%%%%
mtf2 = fftshift(abs(fft2(test_gabor2)));
figure(7),mesh(mtf2), title('raspunsul in frecventa -
fctGabor rotit')
figure(8),mesh(mtf), title('raspunsul in frecventa -
fctGabor initial')
figure(9), imagesc(mtf2),colormap gray, title('raspunsul
in frecventa - privire transversala - fctGabor rotit')
figure(10), imagesc(mtf),colormap gray, title('raspunsul
in frecventa - privire transversala - fctGabor initial')
Vaman Teodora Noiembrie 2021
TAID

% Exercitiu
%
% Sa se arate ca o celula simpla cu un camp receptor
orientat vertical
% nu are un raspuns semnificativ la un patern sinusoidal
orizontal fata de
% raspunsul la un patern sinusoidal vertical.

f = 5;
pattern_orizontal = fSin2(0,f);
pattern_vertical = fSin2(f,0);
figure(1),subplot(2,1,1),
colormap(gray),imagesc(pattern_orizontal)
subplot(2,1,2), colormap(gray),imagesc(pattern_vertical)

%trecem pattern-ul in domeniul frecventa


X1 = fftshift(abs(fft2(pattern_orizontal)));
X2 = fftshift(abs(fft2(pattern_vertical)));

%le inmultim cu functia gabor in frecventa, initial cu


varianta rotita
%(mtf2) si apoi cu cea initiala (mtf) pentru a verifica
diferentele
Y1 = X1 * mtf2;
Y2 = X2 * mtf2;
% Y11 = X1 * mtf;
% Y22 = X2 * mtf;
%ne intoarcem din domeniul frecventa si afisam imaginea
new_img1 = ifft(Y1);
new_img2 = ifft(Y2);
%
% new_img11 = ifft(Y11);
% new_img22 = ifft(Y22);

% new_img1 = imfilter(X1, test_gabor2)


% new_img2 = imfilter(X2, test_gabor2);
%varianta2 folosind imfilter:
new_img11 = imfilter(X1, test_gabor2)
new_img22 = imfilter(X2, test_gabor2)

figure(2), subplot(211), imshow(new_img1);


subplot(212), imshow(new_img2);
figure(3), subplot(211), imshow(new_img11);
subplot(212), imshow(new_img22);
Vaman Teodora Noiembrie 2021
TAID

Cele doua patternuri folosite:

A. Raspunsul obtinut inmultind semnalele in domeniul frecventa si apoi revenind


B. Raspunsul folosind imfilter

A B

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