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

4 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Guillaume
Guillaume il 2 Ott 2016
Modificato: Image Analyst il 2 Ott 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 Commento
Image Analyst
Image Analyst il 2 Ott 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.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by