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个文件夹,请稍后...... 合并完成!!!