Matlab实现归一化直方图时报数组索引需为正整数或逻辑值错误
Matlab报错「Array indices must be positive integers or logical values」排查方案
该报错的核心原因是代码中出现了非正整数/逻辑值的数组索引,结合你给出的代码和参数,问题出在以下两个可能的位置:
- 索引
Histograma_acum_norm时参数非法你给出的
Histograma_acum_norm是长度为255的向量,对应Matlab中的合法索引范围为1~255。而framecito是从Frame中取出的像素值,常规8位图像的像素取值范围为0~255,直接将framecito作为索引取值时,只要像素值为0就会触发该报错。
修复方式:将索引做+1偏移,修改该行代码为acum_normal= Histograma_acum_norm(framecito + 1);即可匹配索引范围。 - 变量
k的取值非法Frame是长度为1280*720=921600的向量,若循环中的k不是正整数,或者取值超出1~921600的范围,会导致Frame(k)/Salida(k)的索引报错。
排查方式:在代码段前增加打印校验disp(k); disp(isposinteger(k));,确认k的取值符合要求。
另外你代码开头的k;无实际执行作用,可直接删除。
内容的提问来源于stack exchange,提问作者MeowYOU
相关产品推荐
相关产品推荐

