0
J'ai écrit ce code:utilisateur invite à sélectionner l'image à partir du dossier dans l'interface graphique Matlab pour calculer PSNR et MSE
InputImage=imread('ground truth 1.jpg');
ReconstructedImage=imread('final1.jpg');
n=size(InputImage);
M=n(1);
N=n(2);
MSE = sum(sum((InputImage-ReconstructedImage).^2))/(M*N);
PSNR = 10*log10(256*256/MSE);
fprintf('\nMSE: %7.2f ', MSE);
fprintf('\nPSNR: %9.7f dB', PSNR);
Comment puis-je modifier le codage pour demander à l'utilisateur de sélectionner une image pour InputImage
et OutputImage
de un fichier? Je l'ai essayé quelque chose comme ça avant
[InFile, InPath] = uigetfile('*.jpg', 'Import image file:');
if ~ischar(InFile)
disp('User aborted file import');
return;
end
[OutFile, OutPath] = uigetfile('*.jpg', 'Export image file:', InPath);
if ~ischar(OutFile)
disp('User aborted file export');
return;
end
InFile = fullfile(InPath, InFile);
OutFile = fullfile(OutPath, OutFile);
mais je suis arrivé une erreur:
Matirx dimension not agree error
Pour votre information, les deux fichiers sont disponibles dans le dossier. Quand je cours le codage sans inviter l'entrée d'utilisateur, cela fonctionne très bien. Mais après que je modifie le codage pour inviter à l'entrée de l'utilisateur, il donne une dimension de la matrice non d'accord d'erreur. Toute solution à cela? – jolene
Cette erreur est montrer à quelle ligne du code posté ci-dessus? –
Si l'erreur est montrée dans 'MSE = somme (((InputImage-ReconstructedImage).^2))/(M * N);' alors c'est parce que, la dimension de matrice de 'InputImage' et' ReconstructedImage' sont différentes. Regardez dans l'espace de travail matlab pour confirmer. –