VetCAD

Локальные пороги?

   0 оценок

размещено: 24 Февраля 2026

Когда "профессионалы" говорят о локальном пороге, то изъясняются в терминах нахождения значения порога для конкретной точки по его окресности. И вроде всё так и происходит. Но "слегка" непонятна физика процесса. Что это за "порог в конкретной точке"? Ежели я попробую произвести это аналоговым способом, то как это сделать? А глпвное, что я "увижу" в этом хозяйстве? И как? Ничего я не увижу, ибо всё наглухо зашито и оптимизированно. Даже BoxBlur при нахождении значения порогового значения точки производится не классическим образом, а через интегральные изображения. Отсюда возникновение такого ненатурального для фильтров понятия, как "window size" ("размер окна") и вымещение им такого натурального для фильтров понятия как "radius" ("радиус").

Но! Всего лишь чуть присмотрелись к этому "локальному порогу", и сразу возник вполне себе понятный фильтр BoxBlur с понятным радиусом. Опа!

Ежели не ходить вокруг да около и смотреть на вещи должным образом, то становится очевидным, что "локальный порог" - это комбинация комбинация фильтрации типа нормализации и обыхчного простого порога этого самого отфильтрованного:

N = (I + 1) / (TM + 1) * m

B = Threshold(N, m)

где:

TM - карта (изображение) пороговых значений

m - середина диапазона яркости (для 8-ми битных изображений равно 127)

Но это классический вид нормализации и он во многом неудобен, ибо наладывает достаточно жёсткие требования к построению "нормализатора" - карте порогов (TM). Поэтому используют линейную форму нормализации:

N = I - TM + m

А это уже ничто иное, как наложение "Grain Extraction" ("Извлечение зерна"), который таки присутствует в достойных графических редакторах в явном виде.

Теперь про "нормализатор" - карту порогов (TM). В его основ лежит фильтр BoxBlur с опредённвм радиусом. Именно радиусом! То, что в специализированном ПО используется оптимизация интегальными изображениями и происходит замещение "радиуса" "размером окна" не меняет сути. 

window_size = radius + 1 + radius

После применения фильтра BoxBlur, его значение слегка понижается в зависимости от конкретного алгоритма. Это и становится картой порогов (TM).

И что же в результате?

1. Открываем изображение в графическом редакторе.

2. Создаём копию слоя

3. Применяем к копии размывание типа BoxBlur

4. Понижаем яркость копии доп. манипуляциями (фильтрами)

5. Производим наложение "Извлечение зерна" на исходный

6. Берём обычный порог по значению 127

Вот вам и весть "локальный порог". При этом каждое действие видно и понятно.