我在视频的多个帧上使用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 :(得分: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