频道栏目
首页 > 资讯 > 其他 > 正文

复制目录结构与处理图片

18-08-01        来源:[db:作者]  
收藏   我要投稿

%% 复制文件夹结构
clear all;close all;clc

filepath = uigetdir('*.*','请选择要复制的第一级文件夹名称');
if filepath==0
warndlg('请选择要复制的第一级文件夹名称');
end

directory = filepath ;%要复制的文件夹第一级目录名称
filepathSplit=split(filepath,'\');
splitPart=['\',char(filepathSplit(end))];%将第一级目录名称从路径中取出
S = regexp(filepath, splitPart, 'split');%以第一级目录名称为分割依据

answer=inputdlg('输入创建的文件名称','创建保存的文件夹名称');
filepathHead=strcat(char(S(1,1)),char(answer(1,1)));

folder{1}=directory;
flag=1; %1 when there are folders havenot be searched,0 otherwise
while flag
currfolders=folder;
folder={};

for m=1:1:length(currfolders)
direc=currfolders{m};

allfiles=dir(direc);
%the number of all the files in the current searching folder
L=length(allfiles);
%the number of folders to be searched on this class
k=length(folder);
for i=1:1:L
if allfiles(i).isdir & (~strcmp(allfiles(i).name,'.')) & ~strcmp(allfiles(i).name,'..')
k=k+1;
folder{k}=[direc,filesep,allfiles(i).name];
folder_name=[direc,filesep,allfiles(i).name];
remain=folder_name;
for j=1:length(filepathSplit)
[token, remain] = strtok(remain,'\');
end
new_folder_name = strcat(filepathHead,remain);
mkdir(new_folder_name);
end
end
end

%if there are no folders that havenot searched yet,flag=0 so the loop
%will be ended
if ~length(folder)
flag=0;
end
end

%% imadjust调整
%% 获得项目文件夹及其所有子文件夹(及子文件夹的子文件夹)的路径,存于数组path中。
p = genpath(filepath);% 获得文件夹data下所有子文件的路径,这些路径存在字符串p中,以';'分割
length_p = size(p,2);%字符串p的长度
path = {};%建立一个单元数组,数组的每个单元中包含一个目录
temp = [];
for i = 1:length_p %寻找分割符';',一旦找到,则将路径temp写入path数组中
if p(i) ~= ';'
temp = [temp p(i)];
else
temp = [temp '\']; %在路径的最后加入 '\'
path = [path ; temp];
temp = [];
end
end
clear p length_p temp;
%%
oldFileName=char(filepathSplit(end));
newFileName=strcat(char(filepathSplit(end)),char(answer(1,1)));
file_num = size(path,1);% 子文件夹的个数
for i = 1:file_num
file_path = path{i}; % 图像文件夹路径
outputPath=strrep(path(i,1),oldFileName,newFileName);%保存路径
img_path_list = dir(strcat(file_path,'\*.tiff'));%注意此处的图片格式可能不止一种:BMP,TIFF,jpg
% img_path_list = dir(file_path);
img_num = length(img_path_list); %该文件夹中图像数量
% frame_index = 0;
if img_num > 0
for j = 1:img_num
% frame_index = frame_index+1;
image_name = img_path_list(j).name;% 图像名
I =imread(strcat(file_path,'\',image_name));
%% 图像处理过程省略举例
J=imadjust(I);
imshow(J);
%% 存储
saveImgName= strcat(outputPath,image_name);
imwrite(J,char(saveImgName));
end
end
end

相关TAG标签
上一篇:常见的麦克风供电方式总结(幻象供电)
下一篇:关于SpringCloud实例教程(简单入门)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站