Matlab: Problema Ciclo for imread

ourkid1
Salve a tutti,

mi servirebbe capire come creare uno script per leggere tutte le immagini in una cartella.
ad esempio Lena1.bmp; Lena2.bmp; Lena3.bmp e Lena1_blended.bmp; Lena2_blended.bmp; Lena3_blended.bmp

per poi calcolarci delle metriche di qualità

nello script che ho scritto io

for i = 1:3
img1 = imread(strcat('Lena',int2str(i),'.bmp'));
img2 = imread(strcat('Lena',int2str(i),'_blended','.bmp'));

psnr = psnr(img1,img2)
end

mi sembra che legga tutte le immagini ma mi considera la metrica del psnr solo sull'ultima.
potreste aiutarmi a scrivere correttamente lo script per leggere un ciclo for dove mi legga

Lena1.bmp e Lena1_blended.bmp
e calcolarmi correttamente il psnr di Lena1.bmp e Lena1_blended.bmp

Risposte
Lory314
Partendo dal presupposto che non so cosa sia una metrica psnr (ma non penso sia utile per il problema che hai tu), vorrei farti osservare che giustamente il programma come l'hai scritto te salva solo l'ultima esecuzione della function psnr.
Dovresti mettere un'indice per la variabile psnr

for i = 1:3
img1 = imread(strcat('Lena',int2str(i),'.bmp'));
img2 = imread(strcat('Lena',int2str(i),'_blended','.bmp'));

psnr(i) = psnr(img1,img2)
end

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.