|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
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. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
perchè nel ridimensionare ti sei dimenticato di una dimensione... prova:
etna = imread('etna.jpg'); asx = etna(1:300, 1:400, :); imshow(asx);
__________________
a chi non piace il vino... dio neghi anche l'acqua! ![]() DELL Latitude E4300, iPhone 6 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ok funge, ma cos'è il terzo parametro?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ora ho un altro problema....
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, Praticamente mi sembra che matlab sta invertendo le x con le y. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
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); |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
up
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 2502
|
Quote:
Ciao |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
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?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:50.




















