2010-01-05 7 views
3

I 인터넷 사이트에서 10,000 개의 이미지 파일을로드하고 프로젝트 (이미지 검색 시스템)에서 사용하기 위해 폴더에 저장합니다. 이제 이미지 이름을 image1과 같은 순차 이름으로 바꿔야합니다. , 이미지 2, 이미지 3, ... image10000)는, 하나는 내가matlab에 이미지 파일 이름 바꾸기

감사

답변

2

가 MATLAB에있는 파일의 이름을 변경 내 작품에 MATLAB을 사용하는 것을 알려 드리고자합니다 ... 나를 도울 수 :

movefile('myfile.m','myfile2.m') 

그리고 폴더의 모든 파일을 가져와야하는 경우 다음과 같이 시도하십시오.

filelist = dir('*.jpg'); 
1

당신은 MATLAB의 "있는 MoveFile"기능 (첫 번째 매개 변수는 소스의 이름이고, 두 번째 매개 변수를 대상으로)를 사용할 수 없거나 이미지를 쓸 때 원래 당신은 당신의 imwrite 명령 파일 전자를 지정할 수 있습니다.

어느 쪽이든, 나는 "dir"또는 "ls"함수 중 하나를 사용하여 디렉토리 목록을 반복해야한다고 생각합니다.

13

파일 이름의 숫자 부분 형식이 정확히 어떻게 표시되는지는 디렉토리의 파일 순서에 영향을 줄 수 있으므로주의해야합니다. 예를 들어 위의 명명 규칙을 사용하면 다음과 같은 정렬 순서가 적용됩니다.

image1.jpg 
image10.jpg 
image11.jpg 
image2.jpg 
image3.jpg 
... 

일반적으로 원하는 것은 아닙니다. 대신 패드 (귀하의 경우 5 자리)에 최대 수의 크기까지 제로와 수, 정렬 순서는 디렉토리에있는 더 나은 유지해야하는 경우 :

image00001.jpg 
image00002.jpg 
image00003.jpg 
.... 

이 같은 파일 이름을 만들려면, 당신은 사용할 수 있습니다 SPRINTF 기능. (다른 답변에서 언급 한 바와 같이)

dirData = dir('*.jpg');   %# Get the selected file data 
fileNames = {dirData.name};  %# Create a cell array of file names 
for iFile = 1:numel(fileNames) %# Loop over the file names 
    newName = sprintf('image%05d.jpg',iFile); %# Make the new name 
    movefile(fileNames{iFile},newName);  %# Rename the file 
end 

위의 코드는 또한 DIRMOVEFILE 함수를 사용 : 다음은이 방법으로 디렉토리의 모든 .JPG 파일의 이름을 바꿉니다 몇 가지 예제 코드입니다.

+2

한 한 줄 짧은있어! –

+0

안녕 Gnovice 답장을 보내 주셔서 감사합니다.이 코드를 사용하면 좋은 결과를 얻습니다. 다시 고마워요. zenab –

+0

@zenab : 도와 주셔서 감사합니다. 수락 된 답을 자유롭게 표시하십시오 (윙크). – gnovice

1

나는 작업 코드에 대한

datafiles = dir('*.jpeg'); 
for i = 1:length(datafiles) 
    fileOut = strrep(datafiles(i).name, '0000.jpeg', '.jpeg'); 
    movefile(datafiles(i).name, fileOut); 
end