conv2

Convolução bidimensional de duas matrizes.

Categoria: Mathematics > Fourier Analysis and Filtering

Sintaxe

C = conv2(A, B)

Retorna a convolução completa, de tamanho size(A)+size(B)-1.

C = conv2(A, B, shape)

Retorna a parte escolhida por shape: 'full', 'same' ou 'valid'.

C = conv2(u, v, A)

Convolui as colunas de A com o vetor u e depois as linhas com o vetor v.

Descrição

Cada elemento da saída é uma soma de produtos de A com o kernel B girado em 180 graus, com A tratada como zero fora de suas bordas. A convolução é a operação por trás de desfoque, detecção de bordas e outros filtros de imagem.

A forma de três argumentos com dois vetores é um filtro separável: dá o mesmo resultado que convoluir com o produto externo u*v.', mas com menos operações.

Argumentos de entrada

A, B
Matrizes numéricas. B costuma ser o kernel menor.
shape
'full' (padrão) retorna todos os pontos; 'same' retorna a parte central com o tamanho de A; 'valid' retorna apenas os pontos calculados sem preenchimento com zeros.

Argumentos de saída

C
Resultado da convolução.

Exemplo

Full, same e valid

A = [1 2 3; 4 5 6; 7 8 9];
conv2([1 2; 3 4], ones(2))
conv2(A, [0 1 0; 1 1 1; 0 1 0], 'same')
conv2(A, [1 0; 0 -1], 'valid')
Saída
ans = 3×3

     1     3     2
     4    10     6
     3     7     4
ans = 3×3

     7    11    11
    17    25    23
    19    29    23
ans = 2×2

     4     4
     4     4

Veja também

conv filter2 convn filter