Clear Filters
Clear Filters

How do I save an image with a name same as the original image?

3 views (last 30 days)
I need to save an image like the original image, for example:
original image = 001A.jpg
saved image = 001A(1).jpg
clear all
clc
%Detect objects using Viola-Jones Algorithm
imgdir = 'C:\Users\Lewis\Documents\MATLAB\testingimage';
DestDir = 'C:\Users\Lewis\Documents\MATLAB\violajones\croppedimage';
%To detect Face
FDetect = vision.CascadeObjectDetector;
%Read the input image
images = dir(fullfile(imgdir, '*.jpg'));
numfiles = length(images);
myimage = cell(1,numfiles);
for k = 1:numfiles
myimage{k} = imread(fullfile( imgdir, images(k).name));
%Returns Bounding Box values based on number of objects
BB = step(FDetect,myimage{k});
for i = 1:size(BB,1)
rectangle('Position',BB(i,:),'LineWidth',5,'LineStyle','-','EdgeColor','r');
croppedimage = imcrop(myimage{k},BB(i,:));
end
filename = ['croppedTE' ,num2str(k),'.jpg'];
imwrite(croppedimage, fullfile(DestDir, filename));
end

Accepted Answer

Guillaume
Guillaume on 2 Oct 2016
Edited: Image Analyst on 2 Oct 2016
Your question is puzzling: since you manage to come up with some fairly complex code it should be obvious to you what needs changing in order to do what you want. The other option is this is not your code, in which case you should try to understand what each step does. Again, the solution should then be obvious:
Change the filename creation line to:
filename = [images(k).name, '(', num2str(k), ').jpg');
Note that I prefer using sprintf instead of string concatenation and num2str, so I'd write the above as:
filename = sprintf('%s(%d).jpg', images(k).name, k);
  1 Comment
Image Analyst
Image Analyst on 2 Oct 2016
Guillaume's answer is a good one. I'd recommend that you don't use jpg if you're going to do image analysis though. Use PNG format instead.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!