2D Свертка
C = conv2(A,B)
C = conv2(u,v,A)
C = conv2(___,shape)
возвращает двумерную свертку матриц C = conv2(A,B)
A
и B
.
сначала применяет операцию свертки к каждому столбцу C = conv2(u,v,A)
A
с векторным u
, и затем это применяет операцию свертки к каждой строке результата с векторным v
.
возвращает часть свертки согласно C = conv2(___,shape)
shape
. Например, C = conv2(A,B,'same')
возвращает центральную часть свертки, которая одного размера как A
.
В приложениях, таких как обработка изображений, может быть полезно сравнить входной параметр свертки непосредственно к выводу. Функция conv2
позволяет вам управлять размером вывода.
Создайте 3 3 случайный матричный A
и случайный матричный B
4 на 4. Вычислите полную свертку 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
Находящая край операция Sobel использует 2D свертку, чтобы обнаружить края в изображениях и других 2D данных.
Создайте и постройте график 2D опоры с внутренней высотой, равной одной.
A = zeros(10); A(3:7,3:7) = ones(5); mesh(A)
Примените операцию свертки к строкам A
с векторным u
, и затем примените операцию свертки к строкам результата с векторным v
. Свертка извлекает горизонтальные края опоры.
u = [1 0 -1]'; v = [1 2 1]; Ch = conv2(u,v,A); mesh(Ch)
Чтобы извлечь вертикальные края опоры, инвертируйте порядок свертки с u
и v
.
Cv = conv2(v,u,A); mesh(Cv)
Вычислите и постройте график объединенных краев опоры.
figure mesh(sqrt(Ch.^2 + Cv.^2))
A
Входной массивВходной массив, заданный как вектор или матрица.
Типы данных: удвойтесь
| единственный
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
Поддержка комплексного числа: Да
B
Второй входной массивВторой входной массив, заданный как вектор или матрица, чтобы применить операцию свертки с A
. Массив B
не должен быть одного размера как A
.
Типы данных: удвойтесь
| единственный
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
Поддержка комплексного числа: Да
u
Входной векторВходной вектор, заданный как строка или вектор - столбец. u
применяет операцию свертки с каждым столбцом A
.
Типы данных: удвойтесь
| единственный
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
Поддержка комплексного числа: Да
v
Второй входной векторВторой входной вектор, заданный как строка или вектор - столбец. v
применяет операцию свертки с каждой строкой свертки u
со столбцами A
.
Типы данных: удвойтесь
| единственный
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| логический
Поддержка комплексного числа: Да
shape
— Подраздел свертки'full'
(значение по умолчанию) | 'same'
| 'valid'
Часть свертки, заданная как одно из этих значений:
полный
Возвратите полную 2D свертку.
'same'
— Возвратите центральную часть свертки, которая одного размера как A
.
'valid'
— Возвратите только части свертки, которые вычисляются без дополненных нулем краев.
C
2D Свертка2D свертка, возвращенная как вектор или матрица. Когда 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
Для дискретных, двумерных переменных A и B, следующее уравнение задает свертку A и B:
p и q работают на основе всех значений, которые приводят к легальным индексам (p, q) и B (j-p+1, k-q+1).
Указания и ограничения по применению:
Аргумент A
не должен быть пустым, если аргументом shape
является 'full'
(значение по умолчанию).
Аргумент B
не может быть длинным массивом.
Для синтаксиса conv2(u,v,A)
только A
может быть длинным массивом.
Для получения дополнительной информации см. Раздел "Высокие массивы".
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите функции MATLAB Выполнения на GPU (Parallel Computing Toolbox).
Указания и ограничения по применению:
Входные векторы u
и v
не должны быть распределенными массивами.
Для получения дополнительной информации смотрите функции MATLAB Выполнения с Распределенными Массивами (Parallel Computing Toolbox).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.