How to save output images after preprocessing into new folder sequentially without overwriting?
3 ビュー (過去 30 日間)
古いコメントを表示
I am have to convert RGB images into gray scale, as there are hundreds of images in that folder. I want to processess all and save the resultant gray scale images into different folder. Can I get code for this?
0 件のコメント
採用された回答
KSSV
2021 年 7 月 28 日
infolder = '' % give the path of the folder where your RGB images are present
outfolder = '' % give the path of the folder where you want to save gray images
imgFiles = dir([infolder,filesep,'\*.png']) ; % give extension of your images
N = length(imgFiles) ; % total images in the foder
for i = 1:N
thisFile = [infolder,filesep,imgFiles(i).name] ; % each image file
[filepath,name,ext] = fileparts(thisFile) ; % get name of the image file and extension
outFile = [outfolder,filesep,[name,ext]] ; % write gray image file on this name here
I = rgb2gray(imread(thisFile)) ; % reac and conver RGB image into gray
imwrite(I,outFile) ; % write the gray image in the said folder on the name
end
7 件のコメント
Stephen23
2021 年 7 月 28 日
編集済み: Stephen23
2021 年 7 月 28 日
Assuming that the first two filenames are '.' and '..' is buggy, anti-pattern, and not recommended.
@Nikhat Ali: Do NOT follow any poor advice advising to remove the first two filenames. Your original approach of specifying the file-extension is a much more robust approach. Or you could remove any folders using the ISDIR field:
S = dir(..);
S([S.isdir]) = [];
As Walter Roberson wrote in that last link: "In short: if your code assumes that '.' and '..' are the first two entries in a directory, your code has a bug (even in MS Windows). If your code assumes that directory entries are returned in any sorted order, your code has a bug (in all OS.)"
Unfortunately poor advice keeps getting repeated and copied by beginners.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で File Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!