matlab——遍历文件夹中的图像
任务:遍历多个文件夹的子文件夹中的多张同等尺寸的图片(png格式),将二值图合并为一张二值图,并保存到上级文件夹中。
Github代码:https://github.com/roger1993/Kaggle_Bowl_2018/tree/master/data
说明:
目标:
其他例子:
matlab代码:
close all;clear all;clc;
%% 合并mask图
% 只用更改imgDirPath 与 subImgesFolderLists
imgDirPath = 'F:\2_研究生资料\看论文\深度学习\深度学习——毕业设计2018\Kaggle_Bowl_2018-master\Kaggle_Bowl_2018-master\data\stage1_train';
trainSetsFolder = 'F:\2_研究生资料\看论文\深度学习\深度学习——毕业设计2018\Kaggle_Bowl_2018-master\Kaggle_Bowl_2018-master\data\trainSets';
if ~exist(trainSetsFolder)
mkdir(trainSetsFolder);
end
fileLists = dir(imgDirPath);% 包含所有文件夹
disp(' 开始合并!!!');
for i=3:length(fileLists)
fprintf('正在处理第%d个文件夹,请稍后......\n',i-2);
subPath = strcat(imgDirPath,'\',fileLists(i).name);
finalMaskPath = strcat(subPath,'\finalMask');
if ~exist(finalMaskPath)
mkdir(finalMaskPath);
end
subImgFolderLists = dir(strcat(subPath,'\masks\*.png'));% 子文件夹中图像
imgModel = imread(strcat(imgDirPath,'\',fileLists(i).name,'\masks\',subImgFolderLists(1).name));
[m,n] = size(imgModel);
img = zeros(m,n);
for j=1:length(subImgFolderLists)
img = img + double(imread(strcat(imgDirPath,'\',fileLists(i).name,'\masks\',subImgFolderLists(j).name)));
end
img(img>255) = 255;
img = uint8(img);
subImgesFolderLists = dir(strcat(subPath,'\images\*.png'));% 子文件夹中图像
oriImage = imread(strcat(subPath,'\images\',subImgesFolderLists.name));
imwrite(oriImage,strcat(trainSetsFolder,'\',subImgesFolderLists.name));
imwrite(img,strcat(trainSetsFolder,'\',strtok(subImgesFolderLists.name,'.'),'_mask.png'));
imwrite(img,strcat(finalMaskPath,'\',strtok(subImgesFolderLists.name,'.'),'_mask.png'));
end
disp(' 合并完成!!!');
运行过程:
开始合并!!!
正在处理第1个文件夹,请稍后......
正在处理第2个文件夹,请稍后......
正在处理第3个文件夹,请稍后......
正在处理第4个文件夹,请稍后......
正在处理第5个文件夹,请稍后......
正在处理第6个文件夹,请稍后......
正在处理第7个文件夹,请稍后......
正在处理第8个文件夹,请稍后......
正在处理第9个文件夹,请稍后......
正在处理第10个文件夹,请稍后......
正在处理第656个文件夹,请稍后......
正在处理第657个文件夹,请稍后......
正在处理第658个文件夹,请稍后......
正在处理第659个文件夹,请稍后......
正在处理第660个文件夹,请稍后......
正在处理第661个文件夹,请稍后......
正在处理第662个文件夹,请稍后......
正在处理第663个文件夹,请稍后......
正在处理第664个文件夹,请稍后......
合并完成!!!