conv2
Convolución 2D
Descripción
devuelve la convolución bidimensional de las matrices C
= conv2(A
,B
)A
y B
.
Ejemplos
Convolución 2D
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
Extraer bordes de un pedestal 2D
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)
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)
Para extraer los bordes verticales del pedestal, invierta el orden de convolución con u
y v
.
Cv = conv2(v,u,A); mesh(Cv)
Calcule y represente los bordes combinados del pedestal.
figure mesh(sqrt(Ch.^2 + Cv.^2))
Argumentos de entrada
A
— Arreglo de entrada
vector | matriz
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: Sí
B
— Segundo arreglo de entrada
vector | matriz
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: Sí
u
— Vector de entrada
vector fila o columna
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: Sí
v
— Segundo vector de entrada
vector fila o columna
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: Sí
shape
— Subsección de la convolución
'full'
(predeterminado) | 'same'
| 'valid'
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 queA
.'valid'
: devuelve solo las partes de la convolución que se calculan sin los bordes rellenados con ceros.
Argumentos de salida
C
— Convolución 2D
vector | matriz
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
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:
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
Arreglos altos
Realice cálculos con arreglos que tienen más filas de las que caben en la memoria.
Notas y limitaciones de uso:
Si
shape
es'full'
(valor predeterminado), las entradasA
yB
no deben estar vacías y solo una de ellas puede ser un arreglo alto.Si
shape
es'same'
o'valid'
,B
no puede ser un arreglo alto.u
yv
no pueden ser arreglos altos.
Para obtener más información, consulte Arreglos altos.
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™.
Entorno basado en subprocesos
Ejecute código en segundo plano con MATLAB® backgroundPool
o acelere código con Parallel Computing Toolbox™ ThreadPool
.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en un entorno basado en subprocesos.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos de GPU. Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Arreglos distribuidos
Realice particiones de arreglos grandes por toda la memoria combinada de su cluster mediante Parallel Computing Toolbox™.
Notas y limitaciones de uso:
Los vectores de entrada
u
yv
no deben ser arreglos distribuidos.
Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)