Save each image to different folder
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Jan
2013-5-14
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?
回答(1 个)
Image Analyst
2013-5-14
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!