 
View Full Version : Matlab - elaborare immagini
Salve a tutti. 
Sto iniziando a "giocherellare" con le immagini in matlab e ho un piccolo problema. Carico un immagine con la imread e con questa istruzione ne prendo un pezzo e lo voglio stampare a video:
etna = imread('etna.jpg');
asx = etna(1:300, 1:400);
imshow(asx);
L'immagine risultante non è a colori ma in scala di grigi. Come mai? Eppure ho fatto un controllo sui numeri all'interno di asx e sembrano combaciare con quelli della matrice originale.
Attendo vostre risposte. Ciao belli.
perchè nel ridimensionare ti sei dimenticato di una dimensione... prova:
etna = imread('etna.jpg');
asx = etna(1:300, 1:400, :);
imshow(asx);
Ok funge, ma cos'è il terzo parametro?
Ora ho un altro problema.... :D
Questo è il codice:
>> etna = imread('etna.jpg');
>> etna2 = imnoise(etna,'gaussian',0,0.02);
>> figure(1);
>> subplot(1,2,2);
>> imshow(etna);
>> subplot(1,2,1);
>> imshow(etna2);
>> x = size(etna, 1);
>> y = size(etna, 2);
>> x
x =
   600
>> y
y =
   800
Come puoi notare la y è piu grande della x. Mase stampi l'immagine ti accorgi che dovrebbe essere il contrario.
Anche se provo a usare questo comando con l'intenzione di prendere l'angolo in alto a destra:  "adx = etna2(301:600, 1:400, :)"  ti accorgi che prende invece l'angolo in basso a sinistra. 
Praticamente mi sembra che matlab sta invertendo le x con le y.
Comunque sto andando avanti con le "coordinate capovolte".
E ho incontrato un nuovo problema. Voglio applicare un filtro con questi comandi:
>> filtro_adx = fspecial('average');
>> adx_filtrato = filter2(filtro_adx,adx);
Il problema è che mi da questi errori:
??? Function 'conv2' is not defined for values of class 'double' and attributes 'full 3d real'.
Error in ==> filter2 at 73
        y = conv2(hcol, hrow, x, shape);
Ok funge, ma cos'è il terzo parametro?
Se non ricordo male,  ad ogni punto di coordinate (x,y,z) viene assegnato il valore dei colori e quindi (R,G,B). Quei : indicano che devi prendere tutti i valori del colore per quel range di coordinate indicate.  Ci arrivai un po' di tempo fa poi ho lascito. Per l'altro problema...stasera lo guardo un po' e vedo di capire (non sono per niente esperto)
Ciao :)
Il problema che da la funzione filter2 è dato dal fatto che viene passata un'immagine a colori e dovrebbe essere passata una immagine a scala di grigi. Infatti se la converto con la funzione rgb2graylevel non da l'errore. Ma questo vorrebbe dire che si possono filtrare solo immagini a scala di grigi?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.