matlab——遍历文件夹中的图像

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



猜你喜欢

转载自blog.csdn.net/zichen_ziqi/article/details/80500829