标签: matlab matrix
我有一个125x200x3的大图像矩阵,图像有很多大的黑色区域,所以有很多行都是0。我想完全删除所有这些黑色区域。我知道我应该使用all(m == 0,3)但似乎我不太明白如何将它与3d矩阵一起使用。
m(all(m==0,3),:,:)=[]
超过矩阵...... 任何帮助表示赞赏!
答案 0 :(得分:4)
如果要删除包含全黑的行,请执行以下操作:
m(all(all(m == 0,3),2),:,:) = [];
对ALL的内部调用(你正在做的事情)会给你一个125乘200的逻辑矩阵,每个黑色像素都有一个矩阵。对ALL的外部调用跨维度2(列)进行操作,为您提供一个逻辑向量,其中包含所有包含所有黑色的行。然后,您可以将其用作删除行的索引。