2011-12-14 2 views
0

비디오의 여러 프레임에 regionprops 함수를 사용합니다. 그러나 프레임 중 하나에서 regionprops는 이상한 구조체를 반환합니다.구조체 내용을 표시 할 수 없습니다.

여기 내 코드입니다. 항상 동일한 프레임에 실패

stats = regionprops(I, 'Centroid'); 
disp(isfield(stats, 'Centroid')) 
disp(fieldnames(stats)) 
disp(stats.Centroid) 

그것은 수수께끼되면, isfield() 기능과 합리적인 결과와 fieldnames() 함수 반환 때문이다.

보조 노트에
1 

'Centroid' 

Error using ==> disp 
Not enough input arguments. 

: 나는 꽤 이전 버전을 사용하여 실패 할 때

1 

'Centroid' 

    133.6667 159.6667 

이 출력입니다 :

내 코드가 실패하지 않는 예제 출력 ( 6.1.0.450 (R12.1))

답변

0

좋아, 문제를 발견했다.

함수 regionprops는 크기가 1x1 인 구조체를 반환하지 않는

입력을 처리 할 수 ​​DISP보다 (보다/미만 중심이 발견된다).

이에 테스트를 위해 내 코드를 변경 :

stats = regionprops(I, 'Centroid'); 
disp(isfield(stats, 'Centroid')) 
disp(fieldnames(stats)) 
disp(size(stats)) 

출력 코드가 실패하지 않을 때 :

1 

'Centroid' 

1  1 

출력 코드는 실패 할 때 :

1 

'Centroid' 

0  1 
관련 문제