2014-12-11 3 views
3

이미지 시퀀스를 저장할 Matlab 클래스를 (맨 처음) 만들었습니다.Matlab 클래스의 매개 변수를 설정할 수 없습니다.

클래스의 인스턴스에 메서드를 적용하면 클래스의 attributs가 전혀 설정되지 않습니다.

classdef sequence 

    %% Properties %% 

    properties 
     images; 
     width; 
     height; 
    end 

    %% Methods %% 

    methods 

     %% Constuctor %% 

     function obj = sequence() 
      obj.images = {}; 
      obj.width = -1; 
      obj.height = -1; 
     end 

     %% Others methods %% 

     function numberOfImages = getNumberOfImages(obj) 
      numberOfImages = length(obj.images); 
     end 

     function addImage(obj, imageToAdd) 

      numberOfImages = obj.getNumberOfImages(); 

      obj.images{numberOfImages + 1} = imageToAdd; 

      if numberOfImages == 0 
       [h, w] = size(imageToAdd); 

       obj.height = h; 
       obj.width = w; 
      end 

     end 

     function image = getImage(obj, i) 
      image = obj.images{i}; 
     end 

    end 

end 

필자는 Matworks 문서를주의 깊게 따라 갔지만, 내 실수는 어디에 있는지 아직도 알지 못합니다. 내가 잘못

%% Parameters %% 

imageFilename1 = '../Data/Test/1.png'; 
imageFilename2 = '../Data/Test/2.png'; 

alpha = 50; 
numberOfIterations = 50; 

%% Read images %% 

image1 = double(imread(imageFilename1)); 
image2 = double(imread(imageFilename2)); 

imageSequence = sequence(); 
imageSequence.addImage(image1); 
imageSequence.addImage(image2); 

: 여기

내가 내 클래스를 사용하기 위해 작성한 코드?

답변

2

값 클래스를 사용 중이므로 매개 변수를 변경해도 실제 개체가 변경되지 않습니다. 작동되게하려면 첫 번째 줄을 다음과 같이 변경해야합니다.

classdef sequence < handle 

이렇게하면 원하는대로 사용할 수있는 핸들 클래스를 만들 수 있습니다.

자세한 내용은 this page

관련 문제