4

我有一个矩阵a=[[1 2 3]; [4 5 6]; [7 8 9]]和一个子矩阵b=[[5 6];[8 9]]

matlab中是否有反卷积的方法(a,b)

我正在寻找一种方法来识别可能的巨型矩阵中是否存在子矩阵。通过一种反卷积,我希望获得类似于矩阵的东西,周围和1子矩阵存在的地方都是零。

在上面的示例中,a1在右下角。

4

2 回答 2

6

这里有更好的解释。


为简单起见,让我们谈谈一维反卷积。

您的信号可以表示为向量,卷积是与三对角矩阵相乘。

例如:

您的矢量/信号是:

    V1
    V2
    ...
    Vn

您的过滤器(卷积元素)是:

  [b1 b2 b3];

所以矩阵是nxn:(让它被称为A):

[b2 b3 0  0  0  0.... 0]
[b1 b2 b3 0  0  0.... 0]
[0  b1 b2 b3 0  0.... 0]
.....
[0  0  0  0  0  0...b2 b3]

卷积是:

  A*v;

反卷积是

  A^(-1) * ( A) * v;

显然,在某些情况下,去卷积是不可能的。然后你会有单数A。但如果A^-1存在,则需要计算它,并将其应用于结果。


对于 2D 情况,它有点复杂,但想法是一样的。

于 2012-06-27T15:23:55.610 回答
3

如果您想找到另一个内部小矩阵的存在或存在的可能性,那么您正在寻找相关性,而不是反卷积。

最简单的方法是使用normxcorr2,它返回一个值矩阵 [-1..1],其中 1 表示找到小矩阵的像素。

缺点/好处是 normxcorr2 对增益不敏感,这意味着如果你正在寻找 [1 2 3 4] 那么你也会找到 [2 4 6 8]

于 2012-06-27T14:56:34.083 回答