ciao,
è un problema un pò specifico quindi non so se potete aiutarmi...ma sono fiducioso
allora ho un progetto java che interagisce tramite il JavaBuilder con delle funzioni create in matlab che elaborano delle immagini.
Ho un problema di ritorno dell'immagine. Mi spiego meglio:
Ho fatto una funzione che esegue il falso colore dell'immagine passata (imfalsecolor.m).
elaborando le immagini in matlab ho questo risultato
che è corretto ed è quello che vorrei ottenere anche in java ma ottengo questo
e non riesco a capire perchè le immagini siano così diverse dato che utilizzo la stessa funzione.
in java le immagini sono gestite dalla funzione getBufferedImage
ho provato a fare una semplice funzione che prende in input una immagine e la restituisce come output (imgetout.m) e funziona correttamente...
un pò di codici:
* Matlab: imgetout.m (prende e restituisce immagine)
Codice PHP:
function [out] = imgetout(in)
out = in;
end
* Matlab: imfalsecolor.m (crea l'immagine in falso colore)
Codice PHP:
function [out] = imfalsecolor(im_normal, im_iruv, type)
im_iruv_grey = rgb2gray(im_iruv);
[red green blue] = imsplitrgb(im_normal);
if strcmp(type, 'ir') == 1
out(:,:,1) = im_iruv_grey;
out(:,:,2) = red;
out(:,:,3) = green;
elseif strcmp(type, 'uv') == 1
out(:,:,1) = green;
out(:,:,2) = blue;
out(:,:,3) = im_iruv_grey;
else
display('ERROR: Incorrect transformation type.');
out = NaN;
end
end
* Java: getBufferedImage(...) (converte immagine-oggetto di matlab in una BufferedImage)
Codice PHP:
public static BufferedImage getBufferedImage(Object[] arg) {
BufferedImage out = Images.renderArrayData((MWNumericArray) arg[0]);
return out;
}
spero possiate aiutarmi.
grazie in anticipo