The most proper way to save images
5 views (last 30 days)
Show older comments
Hello,
I am reading images and then applying some filters on them. In addition I want to save the output in a different folder. Yet the memory usage increases gradually.
here is the code I utilize:
for jj = 1:3000 % There are 3000 images.
im = imread(fname); % 'fname' is defined for each image in above. it changes and it is preallocated at the beginning.
im = im(20:770,70:820); % Defining a proper frame size
h = fspecial('gaussian',101,15); % Filtering the image
bim = imfilter(im,h,'replicate'); % Filtering the image
bim = imfill(bim,'holes'); % Empty the center of the image
bim = imbinarize(bim); % Turning the images into binary
figure (jj);
set(figure(jj), 'visible', 'off');
imcontour (bim,1,'r'); % Drawing the contour of the image.
axis square;
folder = 'c:\PATH';
ContourFileName = sprintf('Contour_for_image_no_%d',jj);
fullContourName = fullfile(folder, ContourFileName);
set(gcf,'Units','inches');
screenposition = get(gcf,'Position');
set(gcf,'PaperPosition',[0 0 screenposition(3:4)],...
'PaperSize',screenposition(3:4));
saveas(gcf,fullContourName,'tif');
end
I was wondering if there is another way to save the images without using a lot of memory. Because of the amount of images, after the 1000th images. it uses almost 95 percent of both memory RAM and CPU.
Thanks a lot for the help in advance and wish you a happy day filled with joy.
2 Comments
Walter Roberson
on 1 May 2019
Do not use a different figure each time. Or delete the figure after you save the image.
Accepted Answer
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!