如何在不使用matlab循环的情况下用1D内核对2d信号进行卷积?

问题描述:

我有一个图像。我想把它卷入其中。我在x和y方向上都有不同类型的内核。在函数con(u, v)中,我们只能指定一个向量,我们必须使用循环。对于conv2(A, B),我们必须指定一个复合内核。我想用一系列1D卷积来逼近2d卷积。如何在不使用matlab循环的情况下用1D内核对2d信号进行卷积?

您可以使用CONV2没有问题。

例如,与一种一维滤波器是firstFilter = [1 1 1]/3,另一1D滤波器是secondFilter = [1 0 1]'/2,则可以写出如下:

out = conv2(conv2(yourImage, firstFilter, 'same'), secondFilter, 'same');