conv2

Описание

пример

C = conv2(A,B) возвращает двумерную свертку матриц A и B.

пример

C = conv2(u,v,A) сначала выполняется свертка каждого столбца A с вектором uи затем она свертывает каждую строку результата с вектором v.

пример

C = conv2(___,shape) возвращает часть свертки согласно shape. Для примера, C = conv2(A,B,'same') возвращает центральную часть свертки, которая имеет тот же размер A.

Примеры

свернуть все

В приложениях, таких как обработка изображений, может быть полезно сравнить вход свертки непосредственно с выходом. The conv2 функция позволяет вам управлять размером выхода.

Создайте случайную матрицу 3 на 3 A и случайную матрицу 4 на 4 B. Вычислите полную свертку A и B, которая является матрицей 6 на 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

Вычислите центральную часть свертки Csame, которая является подматрицей Cfull с тем же размером, что и A. Csame равно 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

Операция нахождения ребра Собеля использует свертку 2-D для обнаружения ребер в изображениях и других 2D данных.

Создайте и постройте 2-D пьедестал с внутренней высотой, равной единице.

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

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

Свертка строк A с вектором u, а затем применить операцию свертки строк результата с помощью вектора v. Свертка извлекает горизонтальные ребра пьедестала.

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

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

Чтобы извлечь вертикальные ребра пьедестала, измените порядок свертки на u и v.

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

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

Вычислите и постройте график комбинированных ребер пьедестала.

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

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

Входные параметры

свернуть все

Входной массив, заданный как вектор или матрица.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

Второй входной массив, заданный как вектор или матрица для свертки с A. Область массива B не должен быть такого же размера, как A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

Вход вектор, заданный как строка или вектор-столбец. u свертки с каждым столбцом A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

Вектор второго входа, заданный как строка или вектор-столбец. v свертки с каждой строкой свертки u со столбцами A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

Часть свертки, заданная как одно из следующих значений:

  • 'full' - Верните полную свертку 2-D.

  • 'same' - Вернуть центральную часть свертки, которая имеет тот же размер A.

  • 'valid' - Возвращает только части свертки, которые вычисляются без заполненных нулями ребер.

Выходные аргументы

свернуть все

2-D свертки, возвращенный как вектор или матрица. Когда A и B являются матрицами, затем сверткой C = conv2(A,B) имеет размер size(A)+size(B)-1. Когда [m,n] = size(A), p = length(u), и q = length(v), затем свертка C = conv2(u,v,A) имеет m+p-1 строки и n+q-1 столбцы.

Когда один или несколько входных параметров для conv2 имеют тип single, затем выводится тип single. В противном случае conv2 преобразует входы в типы double и возвращает тип double.

Типы данных: double | single

Подробнее о

свернуть все

2-D свертки

Для дискретных, двумерных переменных A и B следующее уравнение задает свертку A и B:

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

p и q запустить все значения, которые приводят к легальным нижним индексам A(p,q) и B(j-p+1,k-q+1).

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

Генерация кода GPU
Сгенерируйте код CUDA ® для графических процессоров NVIDIA ® с помощью GPU Coder™

.

См. также

|

Представлено до R2006a