【问题标题】:perimeter of periodic binary matrix (in matlab)周期性二进制矩阵的周长(在matlab中)
【发布时间】:2021-03-14 16:08:12
【问题描述】:

我有一个周期性二进制矩阵,其中包括一个块。我需要在矩阵中找到零和一之间的边界。这是一个例子:

A=[0,1,1,1,0,0,0,1,1;
   0,0,0,0,1,1,1,1,0;
   0,0,0,0,1,1,1,1,0;
   0,0,0,0,1,1,1,1,0;
   0,1,1,1,1,1,1,0,0;
   0,1,1,1,1,1,1,0,0;
   0,1,1,1,0,0,0,0,0;
   0,1,1,1,0,0,0,0,0;
   0,1,1,1,0,0,0,0,0]

如果矩阵不是周期性的,我可以使用

perim=bwperim(A);

找到周长。但这不适用于周期性矩阵。如果有人能帮助我解决这个问题,我将不胜感激。

编辑: 周期矩阵是其边界元素与矩阵另一侧的边界元素相连的矩阵。

【问题讨论】:

标签: matlab


【解决方案1】:

您可以用它所连接的列/行来填充图像的每一侧。例如,左边将被最右边的列填充。然后使用bwperim,并从结果的每一侧修剪一行/列。

A = [0   1   1   1   0   0   0   1   1;
     0   0   0   0   1   1   1   1   0;
     0   0   0   0   1   1   1   1   0;
     0   0   0   0   1   1   1   1   0;
     0   1   1   1   1   1   1   0   0;
     0   1   1   1   1   1   1   0   0;
     0   1   1   1   0   0   0   0   0;
     0   1   1   1   0   0   0   0   0;
     0   1   1   1   0   0   0   0   0];

padded_A = [0        A(end,:) 0;
            A(:,end) A        A(:,1);
            0        A(1,:)   0];

padded_perim = bwperim(padded_A);
perim = padded_perim(2:end-1,2:end-1);

结果:

perim =
  0  1  1  1  0  0  0  1  1
  0  0  0  0  1  1  1  1  0
  0  0  0  0  1  0  0  1  0
  0  0  0  0  1  0  0  1  0
  0  1  1  1  0  0  1  0  0
  0  1  0  0  1  1  1  0  0
  0  1  0  1  0  0  0  0  0
  0  1  0  1  0  0  0  0  0
  0  1  0  1  0  0  0  0  0

【讨论】:

  • 谢谢。剩下的一点是,我需要一种适用于任何大小的矩阵 A 的算法。问题中的矩阵 A 只是一个例子。
  • 我写了我的答案,以便它适用于任何大小。除了A 不能为空之外,其中没有任何对大小的限制。
【解决方案2】:

您可以使用conv2padarray 来查找周长:

4-connected:

perim = A & conv2(padarray(A, [1 1], 'circular'), [0 1 0;1 0 1;0 1 0], 'valid') < 4;

8-connected:

perim = A & conv2(padarray(A, [1 1], 'circular'), [1 1 1;1 0 1;1 1 1], 'valid') < 8;

使用周界的definition

如果一个像素不为零并且连接到至少一个零值像素,则它是周长的一部分。

使用A &amp; ... 确保像素不为零。使用padarray 和选项'circular' 复制边界像素。填充数组与连接掩码卷积。使用 conv2 和选项 'valid' 修剪复制的边界像素。如果它小于48,则表示它至少连接到一个零值像素。

【讨论】:

    猜你喜欢
    • 2020-06-14
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 2021-03-08
    相关资源
    最近更新 更多