В настоящее время я играю с CUDA и примитивами производительности изображений и сигналов NVIDIA 2D (NPP), например, гауссовый фильтр
Здесь вы можете указать, как ядро фильтра должно обрабатывать области изображения вне массива.
Официальная документация NVIDEA в основном равна 0. (https://docs.nvidia.com/cuda/npp/group__typedefs__npp.html#ga7e1448936057e7401acf293d19278317) И я не смог найти других источников: /
Это мое текущее понимание Ценностей. Пожалуйста, исправьте меняесли я ошибаюсь.
NPP_BORDER_UNDEFINED
Я абсолютно не знаю, что это делает.
NPP_BORDER_NONE
Ядро фильтра не будет обрабатывать внешние слои изображенияпоэтому нет необходимости иметь дело с неопределенными значениями.
NPP_BORDER_CONSTANT
Если ядро фильтра пытается прочитать неопределенное значение, ядро получает значение 0 или другую константу (я не знаюлюбая функция в библиотеке NVIDEA, где вы можете передать постоянное значение. Поэтому я предположил, что это будет 0)
NPP_BORDER_REPLICATE
Это, вероятно, повторяет пиксели границы.
Например:Изображение имеет ширину 100 пикселей и высоту 100 пикселей.
- Если ядро попытается прочитать изображение [5, -1], оно получит значение [5, 0]
- Еслиядро пытается прочитать изображение [5, -10], оно получит значение [5, 0]
- Если кеrnel пытается прочитать Image [5, 100], он получит значение [5, 99]
- Если ядро попытается прочитать Image [5, 110], он получит значение [5, 99]
- Если ядро попытается прочитать изображение [-1, -1], оно получит значение [0, 0]
- Если ядро попытается прочитать изображение [100, 100], онополучит значение [99, 99]
NPP_BORDER_WRAP
Я думаю, что здесь начинается переворачивание границы. Как будто вы помещаете несколько экземпляров изображения рядом.
Например: изображение имеет ширину 100 пикселей и высоту 100 пикселей.
- Если ядро пытается прочитать изображение [5, -1] получит значение [5, 99]
- Если ядро попытается прочитать изображение [5, -10], оно получит значение [5, 90]
- Если ядро попытается прочитать изображение [5, 100], оно получит значение [5, 0]
- Если ядро попытается прочитать изображение [5, 110], оно получит значение [5, 10]
- Если ядро попытается прочитать изображение [-1, -1], оно получит значение [99, 99]
- Если ядро попытается прочитать изображение [100,100] получит значение [0, 0]
NPP_BORDER_MIRROR
Это, вероятно, будет зеркально отображать изображение.
Например: изображение имеет ширину 100 пикселей иВысота 100 пикселей.
- Если ядро пытается прочитать изображение [5, -1], оно получит значение [5, 0]
- Если ядро попытается прочитать изображение[5, -10] получит значение [5, 9]
- Если ядро попытаетсяo читать Image [5, 100], оно получит значение [5, 99]
- . Если ядро попытается прочитать Image [5, 110], оно получит значение [5, 89] * 1076. *
- Если ядро попытается прочитать изображение [-1, -1], оно получит значение [0, 0]
- Если ядро попытается прочитать изображение [100, 100], оно получитзначение [99, 99]