2014-05-16 4 views
0

Matlab에 초보자가있어 처리 된 이미지를 저장하는 데 문제가 있습니다. 그래서 여기matlab에서 루핑하는 동안 imwrite 오류가 발생했습니다

Run.m을 내 이미지 자르기, 분할을하고 특정 경로에 저장하는 명령입니다

Images_Number_Train=length(Input_Images); 
    Urutan=1; 
    for loop1=1:Images_Number_Train 
    Images=imread(Input_Images(loop1)); 
    Label_Images=Label_Train(loop1); 
    Sign = Crop_Sign(Images); 
    Order= Save_Crop(Sign,Label_Images,Urutan); 
    Urutan=Order; 
    end 

저장 기능

function Urutan = Save_Crop(Sign,Label_Images,Urutan) 

    Output_Path = 'E:\Images\Crop\Train\'; 
    if ~exist(Output_Path, 'dir') 
    mkdir(Output_Training_Path); 
    end 
    newimagename = [Output_Path 'Images_Crop_' num2str(Urutan) '.pgm']; 
    imwrite(Sign,newimagename); 
    Urutan=Urutan+1; 
    end 

나는 120 이미지 매번 I이 이 프로그램은 30 시까 지 이미지를 읽을 수 있고 그 다음에는 이미지를 읽을 수 있습니다.

이 오류 메시지가 있습니다.

당신이 실제로 거기에 빈 이미지를 가지고있는 것처럼
 Error using imwrite (line 421) 
     Expected DATA to be nonempty. 

     Error in Save_Crop (line 24) 
     imwrite(Sign,newimagename); 

및 로그인 변수의 값이 어떤 제안

val = 

    Empty array: 0-by-0-by-3 

(이미지 월 30 일 이후) 될 것입니다, 나는 무엇을해야

+0

이 -'Urutan_Train = Urutan_Train + 1' . 아니면 그냥 함수 선언을'function Urutan = Save_Crop (Sign, Label_Images, Urutan)'으로 변경하십시오. 이것이 문제를 해결할 지 확신하지 못하지만 버그처럼 보입니다. – Divakar

+0

변경 했는데도 여전히 같은 오류가 발생했습니다. – user3624526

+0

30 번째 이미지 이후에 'Crop_Sign'에서 예상치 못한 일이 발생했습니다. 그 기능과 이미지를 살펴보십시오. – Divakar

답변

1

것 같습니다. (0x0x3 == 0 요소가 있음).

이렇게 생각하지 않으면 데이터를주의 깊게 검사하십시오. 당신은 그냥 건너 뛰려면 그렇지 않으면,이 같은 if 문을 사용하여 코드의 일부를 포장 : 그것은 사용의 끝에서, 함수`Save_Crop`를 들어

if(~isempty(Images)) 
    %Do stuff 
end 
관련 문제