Filter löschen
Filter löschen

Error while reading image in loop to perform some operation on all images in folder

2 Ansichten (letzte 30 Tage)
I am getting error, while using this recursive function to read the images and perform some operation on all images in a given folder.
function recursiveFile()
Files=dir('D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\*.tif');
for k=1:length(Files)
Files(k).name;
image1 = strcat('D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\*.tif',Files(k).name);
i = imread(image1);
%encode_HTJ2K(image,i,1);
end

Akzeptierte Antwort

KSSV
KSSV am 10 Nov. 2021
Bearbeitet: KSSV am 10 Nov. 2021
function recursiveFile()
Files=dir('D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\*.tif');
for k=1:length(Files)
Files(k).name;
% You need to change thepath in the below line. Don't use *tif
image1 = strcat('D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\',Files(k).name);
i = imread(image1);
%encode_HTJ2K(image,i,1);
end
  2 Kommentare
Walter Roberson
Walter Roberson am 10 Nov. 2021
Bearbeitet: Walter Roberson am 10 Nov. 2021
function recursiveFile()
projectdir = 'D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images');
Files = dir(fullfile(projectdir, '*.tif'));
for k=1:length(Files)
image1 = fullfile(Files(k).folder, Files(k).name);
i = imread(image1);
%encode_HTJ2K(image,i,1);
end
I deliberately wrote it using the .folder field, because the function name suggests that you might want to search all sub-directories, which you could do by using a small modification,
function recursiveFile()
projectdir = 'D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images');
Files = dir(fullfile(projectdir, '**', '*.tif'));
for k=1:length(Files)
image1 = fullfile(Files(k).folder, Files(k).name);
i = imread(image1);
%encode_HTJ2K(image,i,1);
end
The '**' tells it to look under all subdirectories recursively.
KSSV
KSSV am 10 Nov. 2021
You can also use:
image1 = [Files(k).folder,filesep,Files(k).name] ;
instead of
image1 = strcat('D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\',Files(k).name);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Chunru
Chunru am 10 Nov. 2021
function recursiveFile()
% Files=dir('D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\*.tif');
folder = "D:\datasets\PRImA_LayoutAnalysisDataset\PRImA Layout Analysis Dataset\Images\";
Files=dir(fullfile(folder, "*.tif");
for k=1:length(Files)
%Files(k).name;
image1 = fullfile(folder, Files(k).name);
i = imread(image1);
%encode_HTJ2K(image,i,1);
end

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by