Sto scrivendo una funzione che può acquisire un'immagine ed eseguire attività di lisciamento specifiche su. All'inizio della mia funzione mi convertire l'immagine in un'immagine in scala di grigi utilizzando pic = rgb2gray(pic);
Determina se un'immagine è in scala di grigi in Matlab
spero di consentire la funzione di prendere qualsiasi immagine (anche se il suo già in scala di grigi). In Matlab, se gli passo un'immagine in scala di grigi, si sbaglia attualmente perché non può convertirlo (che è ovvio).
Esiste una funzione incorporata o un modo semplice per testare un'immagine e determinarne il formato colore?
ho letto su google qualcosa sulle funzioni isRGB e isGrayscale ma sono stati rimossi dalle versioni successive di Matlab ...
sto pensando qualcosa di simile sarebbe bello se avesse un costruito in funzione.
if (pic == RGB)
do
.
.
.
elseif (pic == GrayScale)
do
.
.
.
else
do
.
.
.
Se non, forse potrei scrivere una funzione che prende un pixel x,y
e testa il suo valore?
if (p(x,y) == ....
o qualcosa del genere? Non sono sicuro ... Pensieri?
Questo ha senso. Per curiosità, per cosa si userebbe 'size (pic, 3) = 2'? Ci sono altri formati di colori che dovrei includere? – Reanimation
In teoria è possibile avere immagini di qualsiasi numero di canali, 2 ovviamente, o anche molti più di 3 ([imaging iperspettrale] (http://en.wikipedia.org/wiki/Hyperspectral_imaging)). In pratica, le immagini a colori sono a 3 o 4 canali ([spazi colore] (http://en.wikipedia.org/wiki/Color_space#Partial_list_of_color_spaces)). A seconda di cosa fa il tuo codice, dovresti fare un loop sulla terza dimensione dell'array (profondità) per essere in grado di gestire qualsiasi tipo di immagine. – Milo