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