2-D свертки
возвращает двумерную свертку матриц C
= conv2(A
,B
)A
и B
.
В приложениях, таких как обработка изображений, может быть полезно сравнить вход свертки непосредственно с выходом. 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)
Свертка строк 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
- Входной массивВходной массив, заданный как вектор или матрица.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Поддержка комплексного числа: Да
B
- Второй входной массивВторой входной массив, заданный как вектор или матрица для свертки с A
. Область массива B
не должен быть такого же размера, как A
.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Поддержка комплексного числа: Да
u
- Входной векторВход вектор, заданный как строка или вектор-столбец. u
свертки с каждым столбцом A
.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Поддержка комплексного числа: Да
v
- Второй входной векторВектор второго входа, заданный как строка или вектор-столбец. v
свертки с каждой строкой свертки u
со столбцами A
.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Поддержка комплексного числа: Да
shape
- Подсекция свертки'full'
(по умолчанию) | 'same'
| 'valid'
Часть свертки, заданная как одно из следующих значений:
'full'
- Верните полную свертку 2-D.
'same'
- Вернуть центральную часть свертки, которая имеет тот же размер A
.
'valid'
- Возвращает только части свертки, которые вычисляются без заполненных нулями ребер.
C
- 2-D свертки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
Для дискретных, двумерных переменных A и B следующее уравнение задает свертку A и B:
p и q запустить все значения, которые приводят к легальным нижним индексам A(p,q) и B(j-p+1,k-q+1).
Указания и ограничения по применению:
Если shape
является 'full'
(по умолчанию), затем входы A
и B
не должно быть пустым, и только один из них может быть длинный массив.
Если shape
является 'same'
или 'valid'
, затем B
не может быть длинный массив.
u
и v
не могут быть длинные массивы.
Для получения дополнительной информации см. Раздел «Длинные массивы»
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
Входные векторы u
и v
не должны быть распределенными массивами.
Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.