Вычислите 2D дискретную свертку двух входных матриц
Computer Vision Toolbox / Фильтрация
2D блок Convolution вычисляет двумерную свертку двух входных матриц. Примите, что матрица А имеет размерности (Ma, Na), и матрица B имеет размерности (Mb, Nb). Когда блок вычисляет полный выходной размер, уравнение для 2D дискретной свертки:
где и .
I1
— Введите матрицуВведите матрицу или в виде матрицы значений интенсивности или в виде матрицы, которая представляет одну плоскость видеопотока RGB.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
I2
— Введите матрицуВведите матрицу или в виде матрицы значений интенсивности или в виде матрицы, которая представляет одну плоскость видеопотока RGB.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Output
СверткаСвертка входных матриц, возвращенных как матрица.
Размерности выхода диктует параметр Output size.
Если тип данных входа является плавающей точкой, выход блока является также плавающей точкой.
Если all(size(I1)<size(I2))
, блок возвращает ошибку.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Main Tab
Output size
'OutputSize' Размерности выхода.
Таблица описывает блок выход, учитывая следующие входные размерности:
I1 — (Ma, Na)
I2 — (Mb, Nb)
Output size | Вывод | Выведите размерность |
---|---|---|
Full | Полная двумерная свертка | (Ma +Mb-1, Na +Nb-1). |
Same as input port I1 | Центральная часть свертки с теми же размерностями как вход в порте I1 | |
Valid | Только части свертки, которые вычисляются без дополненных нулем ребер любого входа. | (Ma-Mb+1, Na-Nb+1) |
Normalized output
— Normalized выходНормируйте выведенный путем деления выхода sqrt(sum(dot(I1p,I1p))*sum(dot(I2,I2)))
, где I1p
фрагмент матрицы I1, которая выравнивается с матрицей I2.
Примечание
Когда вы устанавливаете флажок Normalized output, вход блока не может быть фиксированной точкой.
Data Types Tab
Для получения дополнительной информации на параметрах блоков фиксированной точки, смотрите, Задают Атрибуты Фиксированной точки для Блоков.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
В свертке значение выходного элемента вычисляется как взвешенная сумма соседних элементов.
Например, предположите, что первая входная матрица представляет изображение и задана как:
I1 = [17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9]
Вторая входная матрица также представляет изображение и задана как:
I2 = [8 1 6 3 5 7 4 9 2]
Следующий рисунок показывает, как вычислить (1,1) выходной элемент при помощи этих шагов:
Вращайте вторую входную матрицу, I2, 180 градусов вокруг его центрального элемента.
Двигайте центральный элемент I2 так, чтобы это нашлось сверху (0,0) элемент I1.
Умножьте каждый элемент вращаемой матрицы I2 элементом I1 внизу.
Суммируйте отдельные продукты от шага 3.
(1,1) выходной элемент .
Вычисление (1,1) Выход свертки
Нормированной сверткой (1,1) выходной элемент является 220/sqrt(sum(dot(I1p,I1p))*sum(dot(I2,I2)))
= 0.3459, где I1p = [0 0 0; 0 17 24; 0 23 5]
.
Уравнения ниже описывают, как блок вычисляет свертку в зависимости от того, как вы устанавливаете параметр Output size. Для случаев ниже, входные параметры установлены как:
I1 — размерности (4,3)
I2 — размерности (2,2)
Когда Output size установлен в Full
, блок использует следующие уравнения:
Получившаяся матрица:
Когда Output size установлен в Same as input port I1
, выход является центральной частью с теми же размерностями как вход в порте I1, (4,3). Однако начиная с 4 3 матрица не может быть извлечена из точного центра , блок оставляет больше строк и столбцов на главной и левой стороне матрица и выходные параметры:
Когда Output size установлен в Valid
, блок использует следующие уравнения, чтобы определить количество строк и столбцов выходной матрицы:
В этом случае всегда возможно извлечь точный центр . Поэтому блок выходные параметры:
Когда вы устанавливаете флажок Normalized output, вход блока не может быть фиксированной точкой.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.