Save each image to different folder
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a matlab code for image 300X720 pixel has been divide (split) to 4X12 parts (the total is 48 parts), and I would like to to do the following step which I couldn't do it:
- first, I want to make a loop (insert 6 image instead of one image).
- second, I want to save each image output (48 parts for each image) in different file (folder).
Here my last matlab code for one image splited to 4X12 (48 parts).
clc; % Clear the command window.
format compact;
workspace; % Make sure the workspace panel is showing.
fontSize = 20;
% Read in a standard MATLAB gray scale demo image.
folder = fullfile(matlabroot, '\toolbox\images\imdemos');
baseFileName = ('C:\Users\HOME\Desktop\image.tif');
% Get the full filename, with path prepended.
fullFileName = fullfile(folder, baseFileName);
if ~exist(fullFileName, 'file')
% Didn't find it there. Check the search path for it.
fullFileName = baseFileName; % No path this time.
if ~exist(fullFileName, 'file')
% Still didn't find it. Alert user.
errorMessage = sprintf('Error: %s does not exist.', fullFileName);
uiwait(warndlg(errorMessage));
return;
end
end
grayImage=imread(fullFileName);
grayImage = rgb2gray(grayImage);
% Get the dimensions of the image. numberOfColorBands should be = 1.
[rows1 columns1 numberOfColorBands1] = size(grayImage);
% Resize the image to be 300x720
grayImage = imresize(grayImage, [300, 720]);
% Get the dimensions of the image. numberOfColorBands should be = 1.
[rows2 columns2 numberOfColorBands2] = size(grayImage);
figure;
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[.05 .05 .9 .9]);
set(gcf,'name','Demo by ImageAnalyst','numbertitle','off')
folder = pwd;
plotIndex = 1;
for i=1:4
% Extract out the small image.
row1 = (i-1)*75+1;
row2 = row1 + 74;
for j=1:12
column1 = (j-1)*60+1;
column2 = column1 + 59;
smallImage = grayImage(row1:row2, column1:column2);
% Display the small image.
subplot(4, 12, plotIndex);
imshow(smallImage);
caption = sprintf('Image #%d', plotIndex);
title(caption);
plotIndex = plotIndex + 1;
% Save the small image to disk.
baseFileName=sprintf('image%i.jpg',i,'image%j.jpg',j);
fullFileName = fullfile(folder, baseFileName);
fprintf('Saving %s\n', fullFileName);
imwrite(smallImage, fullFileName);
end;
end;
I'm looking for your attention, and thankx for every one here which answering the question
2 commentaires
Jan
le 14 Mai 2013
Beside the ugly formatted code, you forgot to mention the problem. Does the code solve the question already? If not, what does not work as expected?
Réponses (1)
Image Analyst
le 14 Mai 2013
Looks like your sprintf() to create the base file name is messed up:
baseFileName=sprintf('image%i.jpg',i,'image%j.jpg',j);
what are you trying to do there??? Maybe try this:
baseFileName=sprintf('image_%d_%d.jpg', i, j);
0 commentaires
Voir également
Catégories
En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!