我需要帮助使用imwrite将处理后的图像保存到不同的文件夹中。
目前,我可以将所有处理过的图像保存到一个文件夹中。
Img_filename=ls('C:UsersUserDesktopGuanlin_CNN1DCNN1DGF_BSIF*.jpg');
imageSize = size(Img_filename);
Img_filenum = size(Img_filename,1);
for img=1:Img_filenum
img_temp=double((rgb2gray(imread(Img_filename(img,:)))));
-----------processing--------
count = count+1;
FileName = fullfile('C:UsersUserDesktopGuanlin_CNN1DCNN1DGF_BSIFfolder_1',sprintf('%03d_circle_cropped.jpg',count));
imwrite(MM, FileName)
end
然而,我在一个文件夹中有1000个不同的图像,处理后,它将生成500个图像,我想将前500个处理后的图像保存到folder_1中。第二个500张处理后的图像到folder_2,第三个500张图像到foldr_3,依此类推…
如何重写imwrite函数?
谢谢!
我在这里使用的根文件夹名为Image_Folder
,位于桌面上。输出文件夹名为Folder_1, Folder_2 and Folder_3
,也位于桌面上。我使用了两个嵌套循环来控制图像的保存。外循环控制向哪个文件夹写入,内循环控制写入图像1至500。变量Image_File_Names
可以用于访问输入的图像文件名。
%Folder holding the 1000 images%
Image_Path = "/Users/michael/Desktop/Image_Folder";
%Prefix path for output folders%
Export_Path = "/Users/michael/Desktop/Folder_";
%Adding path with input images%
addpath(Image_Path);
%Listing all images in folder directory%
Image_File_Names = ls(Image_Path);
Image_File_Names = split(Image_File_Names);
Number_Of_Images = length(Image_File_Names) - 1;
for Folder_Index = 1: 3
Export_Folder_Path = Export_Path + num2str(Folder_Index) + "/";
mkdir(Export_Folder_Path);
for Image_Index = 1: 500
%Grab the images as needed%
Input_Image_Index = 1; %Change this index to another variable to grab images within input folder%
Image = imread(string(Image_File_Names(Input_Image_Index)));
%***************************************%
%PROCESS IMAGE%
%***************************************%
%***************************************%
Output_File_Path = Export_Folder_Path + "Image_" + num2str(Image_Index) +".jpg";
imwrite(Image,Export_Folder_Path+num2str(Image_Index)+".jpg");
end
end
使用MATLAB版本:R2019b