Main Content

conv2

Descripción

ejemplo

C = conv2(A,B) devuelve la convolución bidimensional de las matrices A y B.

ejemplo

C = conv2(u,v,A) primero convoluciona cada columna de A con el vector u y luego convoluciona cada fila del resultado con el vector v.

ejemplo

C = conv2(___,shape) devuelve una subsección de la convolución según shape. Por ejemplo, C = conv2(A,B,'same') devuelve la parte central de la convolución, que tiene el mismo tamaño que A.

Ejemplos

contraer todo

En aplicaciones como el procesamiento de imágenes, puede ser útil comparar la entrada de una convolución directamente con la salida. La función conv2 permite controlar el tamaño de la salida.

Cree una matriz aleatoria A de 3 por 3 y otra matriz aleatoria B de 4 por 4. Calcule la convolución completa de A y B, que es una matriz de 6 por 6.

A = rand(3);
B = rand(4);
Cfull = conv2(A,B)
Cfull = 6×6

    0.7861    1.2768    1.4581    1.0007    0.2876    0.0099
    1.0024    1.8458    3.0844    2.5151    1.5196    0.2560
    1.0561    1.9824    3.5790    3.9432    2.9708    0.7587
    1.6790    2.0772    3.0052    3.7511    2.7593    1.5129
    0.9902    1.1000    2.4492    1.6082    1.7976    1.2655
    0.1215    0.1469    1.0409    0.5540    0.6941    0.6499

Calcule la parte central de la convolución Csame, que es una submatriz de Cfull con el mismo tamaño que A. Csame es igual a Cfull(3:5,3:5).

Csame = conv2(A,B,'same')
Csame = 3×3

    3.5790    3.9432    2.9708
    3.0052    3.7511    2.7593
    2.4492    1.6082    1.7976

La operación de búsqueda de bordes de Sobel utiliza una convolución 2D para detectar bordes en imágenes y otros datos 2D.

Cree y represente un pedestal 2D con altura interior igual a uno.

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)

Figure contains an axes object. The axes object contains an object of type surface.

Convolucione las filas de A con el vector u y, a continuación, convolucione las filas del resultado con el vector v. La convolución extrae los bordes horizontales del pedestal.

u = [1 0 -1]';
v = [1 2 1];
Ch = conv2(u,v,A);
mesh(Ch)

Figure contains an axes object. The axes object contains an object of type surface.

Para extraer los bordes verticales del pedestal, invierta el orden de convolución con u y v.

Cv = conv2(v,u,A);
mesh(Cv)

Figure contains an axes object. The axes object contains an object of type surface.

Calcule y represente los bordes combinados del pedestal.

figure
mesh(sqrt(Ch.^2 + Cv.^2))

Figure contains an axes object. The axes object contains an object of type surface.

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector o matriz.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Segundo arreglo de entrada, especificado como un vector o una matriz que convolucionar con A. El arreglo B no tiene que ser del mismo tamaño que A.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Vector de entrada, especificado como vector fila o columna. u convoluciona con cada columna de A.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Segundo vector de entrada, especificado como vector fila o columna. v convoluciona con cada fila de la convolución de u con las columnas de A.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Subsección de la convolución, especificada como uno de estos valores:

  • 'full': devuelve la convolución 2D completa.

  • 'same': devuelve la parte central de la convolución, que tiene el mismo tamaño que A.

  • 'valid': devuelve solo las partes de la convolución que se calculan sin los bordes rellenados con ceros.

Argumentos de salida

contraer todo

Convolución 2D, devuelta como vector o matriz. Cuando A y B son matrices, la convolución C = conv2(A,B) tiene el tamaño size(A)+size(B)-1. Cuando [m,n] = size(A), p = length(u) y q = length(v), la convolución C = conv2(u,v,A) tiene m+p-1 filas y n+q-1 columnas.

Cuando uno o más argumentos de entrada a conv2 son de tipo single, la salida es de tipo single. En caso contrario, conv2 convierte las entradas al tipo double y devuelve el tipo double.

Tipos de datos: double | single

Más acerca de

contraer todo

Convolución 2D

En el caso de las variables discretas bidimensionales A y B, la siguiente ecuación define la convolución de A y B:

C(j,k)=pqA(p,q)B(jp+1,kq+1)

p y q recorren todos los valores que dan lugar a subíndices legales de A(p,q) y B(j-p+1,k-q+1).

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a

Consulte también

|