Вычисление 2-D дискретная свертка двух входных матриц
Computer Vision Toolbox/Фильтрация
Блок 2-D Свертки вычисляет двумерную свертку двух входных матриц. Предположим, что матрица А имеет размерности (Ma, Na), а матрица B имеет размерности (Mb, Nb). Когда блок вычисляет полный выходной размер, уравнение для 2-D дискретной свертки является:
где и .
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
- Размер выходного сигналаРазмерности выхода.
Таблица описывает выход блока, учитывая следующие входные размерности:
I1 — (Ma, Na)
I2 — (Mb, Nb)
Output size | Выход | Выходная размерность |
---|---|---|
Full | Полная двумерная свертка | (Ma + <reservedrangesplaceholder2>-1 , Na + <reservedrangesplaceholder0>-1). |
Same as input port I1 | Центральная часть свертки с такими же размерностями, как и вход в порте I1 | |
Valid | Только части свертки, которые вычисляются без заполненных нулями ребер любого входа. | (Ma - Mb + 1, Na - Nb + 1) |
Normalized output
- Нормированный выходНормализуйте вывод путем деления выхода на 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.