我有这个代码将图像转换为灰色并将其保存在当前文件夹中:
directory = dir('AM01AFS.jpg');
for i = 1 : size(directory,1)
filename = directory(i).name;
img = rgb2gray(imread(filename));
imwrite(img, ['Gr_' filename]);
end
我需要将文件夹(图像)从RGB转换为灰色,并将它们保存在Output
文件夹中,并使用相同的原始名称。
答案 0 :(得分:0)
您的代码看起来很好 我希望你需要将RGB转换为Gary,而不是将GRB转换为Gary ......
directory = dir('AM01AFS.jpg');
修改为directory = dir('*.jpg');
如果您不想覆盖现有图片,请创建新的输出目录。
%Assume jpg images are in the same directory as the m file.
indir = cd; %Modify the indir to location of the jpg files.
outdir = 'Gray'; %Name or output directory.
directory = dir([indir, '\', '*.jpg']);
if ((~exist(outdir, 'dir') && length(directory) > 0))
%Create new directory named outdir if directory not exist.
mkdir(outdir);
end
for i = 1 : length(directory)
filename = directory(i).name;
rgb_img = imread([indir, '\', filename]);
if (ndims(rgb_img) == 3) %Make sure img is RGB (not gray).
img = rgb2gray(rgb_img);
%Save gray image to outdir (keep original name).
imwrite(img, [outdir, '\', filename]);
end
end
如果要打开文件夹选择对话框,可以使用以下示例:
%Open folder selection dialog box, for selecting input and output folders.
indir = uigetdir(cd, 'Select input folder');
outdir = uigetdir(cd, 'Select output folder');
directory = dir([indir, '\', '*.jpg']);
for i = 1 : length(directory)
filename = directory(i).name;
rgb_img = imread([indir, '\', filename]);
if (ndims(rgb_img) == 3) %Make sure img is RGB (not gray).
img = rgb2gray(rgb_img);
%Save gray image to outdir (keep original name).
imwrite(img, [outdir, '\', filename]);
end
end