批处理并将图像命名/保存在单独的文件夹中

时间:2021-03-19 18:06:19

标签: matlab image-processing

我正在运行一个脚本来为总共 82 个图像创建 41 个控件的遮罩,包括正片和负片。我不知道如何将名称与原始 .png 文件类似的掩码(例如“Masked Control_1 Positive”、“Masked Control_1 Negative”等)保存到 Control_41。我也不知道如何将这些保存到我当前文件夹中的单独文件夹中。谢谢!

我还附上了当前目录的截图。

enter image description here

% GlassBrains_Controls2Mask.m
clear;

Files = dir('Control_*');
Controls_Results_Structure = struct('BW',[],'maskedRGBImage',[]);

for i = 1:length(Files)
    RGB = imread(Files(i).name);
    [Output_BW, Output_maskedRGBImage] = GlassBrainMask(RGB);
    Controls_Results_Structure(i).BW = Output_BW;
    Controls_Results_Structure(i).maskedRGBImage = Output_maskedRGBImage; 
end

save("Controls_Results_Structure")

% Save the results
mkdir "Masked Glass Brains (Controls)"
for i = 1:length(Files)
    Image_Number = i;
    save(Controls_Results_Structure(Image_Number).BW);
   
end

1 个答案:

答案 0 :(得分:1)

请注意,save() 将工作区变量存储在 MAT 文件中,这些文件通常只能用 MATLAB 打开,不能用图像查看器等打开。可以使用 imread() 创建像您正在使用 imwrite() 阅读的 PNG 文件:

% Save the results
outdir='./Masked Glass Brains (Controls)';
[mkdir_status,~,~]=mkdir(outdir);
assert(mkdir_status,'Error creating output folder.');
clear mkdir_status;

for i=1:length(Files)
  imwrite( Controls_Results_Structure(i).BW, ...
    sprintf('%s/Masked %s',outdir,Files(i).name) ... %alternative: [outdir  '/Masked '  Files(i).name]
    );
end

要自定义 imwrite() 根据 GlassBrainMask() 的输出创建的图像文件,请参阅:https://www.mathworks.com/help/matlab/ref/imwrite.html

相关问题