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' 

    133.6667 159.6667 

Это выход, когда он терпит неудачу:

1 

'Centroid' 

Error using ==> disp 
Not enough input arguments. 

На стороне записки: Я использую довольно старую версию (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 
Смежные вопросы