Lỗi matlab attempt to execute script rgb2gray as a function năm 2024

clc

clear

input_dir = 'user/mac/desktop/python/eigenfacematlab/eigenface24/train';

testdir= 'user/mac/desktop/python/eigenfacematlab/eigenface24/test';

image_dims = [200, 180];

classes=[0;1;2;3;4;5;6;7;8;9];

num_images = 170;

images = [];

imageclasses=[];

disp(num_images);

counter = 1;

c = cell(170,1);

c{1}={''};

file=cell(170,1);

file(1)={''};

paths = fullfile(testdir,{'0','1','2','3','4','5','6','7','8','9'});

pathsA = fullfile(testdir,{'0','1','2','3','4','5','6','7','8','9'});

for i = classes(1):classes(10)

filenames = dir(fullfile(input_dir,int2str(i),'\*.jpg'));

num_images = size(filenames,1);

for n = 1:num_images

filename = fullfile(input_dir,int2str(i), filenames(n).name);

disp(filename)

ij=cellstr(filename);

k=cellstr(filenames(n).name);

file{counter}=(k);

disp(filename)

img = imread(filename);

img = rgb2gray(img);

img = im2double(img);

c{counter}=(1i);

images(:, counter) = img(:);

imagesclasses(:,counter)=i;

counter=counter+1;

end

end

num_images = 170;

counter = 170;

mean_face = mean(images, 2);

shifted_images = images - repmat(mean_face, 1, num_images);

[u, s, v] = pca(images');

num_eigenfaces = 20;

u = u(:, 1:num_eigenfaces);

features = u' * shifted_images;

testlabel=[];

cc=1;

testimages=[];

featuresvector=[];

predicition=[];

for i = classes(1):classes(10)

filenames1 = dir(fullfile(testdir,int2str(i),'\*.jpg'));

for n = 1:3

filename1 = fullfile(testdir,int2str(i),filenames1(n).name);

img = imread(filename1);

img = rgb2gray(img);

img = im2double(img);

figure(1)

imshow(img)

input_image(:, cc) = img(:);

testlabel(:,cc)=i;

feature_vec = u' * (img(:) - mean_face);

similarity = arrayfun(@(n) 1 / (1 + norm(features(:,n) - feature_vec)), 1:num_images);

[match, matchidx] = max(similarity);

A = reshape(images(:,matchidx), image_dims);

Predicition(:,cc)=imagesclasses(matchidx);

if 3

figure

imshow([img reshape(images(:,matchidx), image_dims)]);

title(sprintf('matches %f, score %0.2f', 1-match));

end

cc=cc+1;

end

end

confusionMatrix=confusionmat(testlabel,predicition);

a = reshape(mean_face, image_dims);

figure

imshow(a)

figure;

for n = 1:num_eigenvalues

subplot(2, ceil(num_eigenvalues/4), n);

ejector = reshape(u(:,n), image_dims);

images(ejector);

colormap(gray);

end