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?

採用された回答

KSSV
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
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 ExchangeConvert Image Type についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by