在MatLab中修剪(删除边界处的零)RGB矩阵

时间:2017-10-15 17:18:22

标签: matlab image-processing matrix matlab-deployment

我有一个像这样的RGB矩阵:

      0  0  0    0  0   0   0    0
      0  0  23   0  0   0   0    0
      0  1  255  0  0   130 22   0
      0  49 0    0  0   0   120  0
      0  0  0    0  79  0   213  0
      0  0  0    0  0   0   0    0

需要修剪(在边界处删除零)此矩阵如下:

      0  23   0  0   0   0  
      1  255  0  0   130 22
      49 0    0  0   0   120
      0  0    0  79  0   213

1 个答案:

答案 0 :(得分:1)

您可以使用sum查找全部为零的行和列。然后,删除它们。

s1 = find(sum(mat,2)>0);
s2 = find(sum(mat,1)>0);
mat([1:(s1(1)-1) s1(end)+1:size(mat,1)], :) = [];
mat(:, [1:(s2(1)-1) s2(end)+1:size(mat,2)]) = [];