我有包含10张图片的文件夹。
我正在尝试对它们中的每一个应用高斯滤波器。我从名为dd
的文件夹中读取图像,然后我想将更改的图像保存在newfolder
中。但是,当我看到图像时,它是空的。
如何以正确的方式执行此操作,读取10张图像,过滤它们,将更改的10张图像保存在新文件夹中。
这是我到目前为止的代码:
for img = 1:10
a = imread(['\dd\',int2str(img),'.pgm']);
G = fspecial('gaussian',[3 3],2);
Ig = imfilter(a,G,'same');
imshow(Ig);
imwrite( Ig, 'Ig.pgm '); % does not work !!
save ([ path,'\newfolder\', 'new.pgm'],'Ig');% it save empty image !!!
end
答案 0 :(得分:2)
save
不适用于保存图片。相反,您需要使用imwrite
。您还需要提供imwrite
的完整路径,此处我们使用mat2gray
只是为了确保您的数据涵盖图像类型的整个动态范围。您还需要确保每个输出图像都具有唯一的名称,以便它们不会相互覆盖。
output_filename = fullfile(path, 'newfolder', sprintf('%d_new.pgm', img));
imwrite(mat2gray(Ig), output_filename, 'pgm');
作为旁注,您需要使用fullfile
可靠地构建跨计算机和操作系统的文件夹路径。