0
У меня есть следующий код, для которого вместо загрузки одного изображения за один раз я хотел бы запускать каждое изображение в папке (дефектная папка в этом коде). Я хотел бы, чтобы на выходе был массив, содержащий значения «G» для каждого входного изображения. Я не слишком уверен, как это сделать - так что любые оценки оцениваются. Большое спасибо!Запуск кода matlab через папку
%PCA code,
img = imread('C:\users\m7-miller\desktop\250images\defective\inkblob01.png');
img_gray = rgb2gray(img);
img_gray_double = im2double(img_gray);
figure,
set(gcf,'numbertitle','off','name','Grayscale Image'),
imshow(img_gray_double)
%find mean of the image
img_mean = mean(img_gray_double);
[m n] = size(img_gray);
%Make column vector of mean image value
new_mean = repmat(img_mean,m,1);
%Mean corrected image
Corrected_img = img_gray_double - new_mean;
%Covariance matrix of corrected image
cov_img = cov(Corrected_img);
%Eigenvalues of covariance matrix - columns of V are e-vectors,
%diagonals of D e-values
[V, D] = eig(cov_img);
V_T = transpose(V);
Corrected_image_T = transpose(Corrected_img);
FinalData = V_T * Corrected_image_T;
% Image approximation by choosing only a selection of principal components
PCs = 3;
PCs = n - PCs;
Reduced_V = V;
for i = 1:PCs,
Reduced_V(:,1) =[];
end
Y=Reduced_V'* Corrected_image_T;
Compressed_img = Reduced_V*Y;
Compressed_img = Compressed_img' + new_mean;
figure,
set(gcf,'numbertitle','off','name','Compressed Image'),
imshow(Compressed_img)
% End of image compression
% Difference of original image and compressed
S = (img_gray_double - Compressed_img);
figure,
set(gcf,'numbertitle','off','name','Difference'),
imshow(S)
% Sum of the differences
F = sum(S);
G = sum(F)
вы можете использовать [ 'dir'] (http://www.mathworks.com/help/matlab/ref/dir.html?searchHighlight=dir), чтобы получить имена файлов изображений и запустить свой код в для цикла. – Cecilia
Что-то вроде этого? http://stackoverflow.com/questions/11621846/loop-through-files-in-a-folder-in-matlab?rq=1 – beaker
@beaker Я мог бы забыть, но я думаю, что я помню что-то, что проходит через файлы в например, с файлом $ $ - например file0 $ .png и запуском $ от 0 до 9. –