For loop doesnt terminate-kindly help
2 ビュー (過去 30 日間)
古いコメントを表示
Hi, I have written a code to apply a random crop for a set of three images stored in a folder '1' at D: drive and store it in a separate folder named 'chrom-randcrop1' in the same drive. The code is as follows:
myFolder = 'D:\1';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(myFolder, '*.bmp');
theFiles = dir(filePattern);
mkdir('D:\chrom-randcrop1')
% image processing-random cropping of a 100*100 image from the input image
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
imageArray = imread(fullFileName);
imageArray5=random_square_grab(imageArray,100);
baseOutputFileName = sprintf('randcrop100_1(%d).bmp', k);
outputFolder = 'D:\chrom-randcrop1';
fullOutputFileName = fullfile(outputFolder, baseOutputFileName);
imwrite(imageArray5, fullOutputFileName)
end
dir D:\chrom-randcrop1
The issue is the loop doesn't terminate. The folder is created but then the loop remains busy. Kindly help me with the corrections in this code. Thanks.
1 件のコメント
Star Strider
2017 年 1 月 28 日
What is the result of only running:
length_theFiles = length(theFiles)
return % Stop The Script (Delete Later)
before the loop.
採用された回答
Image Analyst
2017 年 1 月 28 日
Add this before the for loop
whos theFiles % No semicolon!
numFiles = length(theFiles) % No semicolon!
if numFiles == 0 || isempty(theFiles)
warningMessage = 'No files found';
uiwait(warndlg(warningMessage));
return;
end
for k = 1 : numFiles
What do you see in the command window, and does the warning pop up a message box?
その他の回答 (1 件)
Jan
2017 年 1 月 28 日
The issue is the loop doesn't terminate.
Strange. What does happen instead? Does Matlab convert millions of files? Or does the code of random_square_grab contain an infinite loop? Where does Matlab stop, when you hit Ctrl-C?
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!