图像的批量读取,处理与保存到指定位置

clear;  
clc;  
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
%参数配置  
  
% ObjDir = 'D:\Preprocess\Train\label';%目标图片文件夹路径  
% OutputDir = 'D:\Preprocess\image';%输出文件夹路径  
% tnum = 30;%目标图片数目  
%   
% %注:  
% %  目标图片命名为:i.png(i取1到tnum)  
%   
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
%   
% for i = 1:1:tnum  
%     bgFile = [ObjDir,int2str(i),'.png'];% 读入图片的完整路径  
%       
%     Background = imread(bgFile); % 读入图片、灰度化  
%       
%     figure(i),imshow(Background),title('修改后的图像')  
%       
%     saveas(i,[OutputDir,int2str(i),'_bw.png']);%将处理后的图片保存到目标文件夹  
% end  
OutputDir_image = 'D:\Preprocess\Train\image_gray\';%输出文件夹路径
OutputDir_label = 'D:\Preprocess\label1\';%输出文件夹路径
fpath = 'D:\Preprocess\label';  %这里是目标图片文件夹的名字
flist = dir(sprintf('%s/*.tif', fpath));

i = 512;
j = 512;

% images = [];
for imidx = 1:min(length(flist), 200)
    fprintf('[%d]', imidx); %显示进程
    fname = sprintf('%s/%s', fpath, flist(imidx).name);
    im = imread(fname);
%     im_gray = rgb2gray(im(:,:,1:3));
    
    %set(gcf,'Position',[512,512,512,512])
    %imshow(im_gray)
    [pathstr, name] = fileparts(flist(imidx).name);%   或者写成 name = flist(imidx).name(1:end-4)
%     imwrite(im_gray,[OutputDir_image,name,'.tif']);%将处理后的图片保存到目标文件夹
    %saveas(im_gray,[OutputDir,name,'.tif']);$saveas保存需建立figure,且图像的尺寸大小会发生改变
   % images{length(images)+1} = im;
   b1 = ones(i,j);
   for m = 1:i
    for n = 1:j
        if im(m,n) == 0
            b1(m,n) = 0;
            b1(m,n+1) = 0;
            b1(m,n-1) = 0;
            b1(m+1,n) = 0;
            b1(m-1,n) = 0;
            b1(m,n-2) = 0;
            b1(m,n+2) = 0;
        end
    end
   end
   imwrite(b1,[OutputDir_label,name,'.tif']);%将处理后的图片保存到目标文件夹
end
fprintf('\n');

猜你喜欢

转载自blog.csdn.net/qq_30622831/article/details/79573745
今日推荐