Алгоритм Niblack для бинаризации документа
У меня эта фотография:
![enter image description here]()
и я пытаюсь сделать бинаризацию документа, используя алгоритм niblack
Я реализовал простой алгоритм Niblack
T = среднее + K * стандартное отклонение
и это было результатом:
![enter image description here]()
проблема в том, что некоторые части изображения, в которых окно не содержит никаких объектов, поэтому обнаруживают шум как объекты и разрабатывают их.
Я попытался применить фильтр размытия, тогда глобальное пороговое значение
это было результатом:
![enter image description here]()
которые не будут решены каким-либо другим фильтром
я предполагаю, что единственным решением является предотвращение обнаружения алгоритмом глобального шума, если окно я освобождено от объекта
Мне интересно сделать это, используя алгоритм niblack, не используя другой алгоритм, поэтому любые предложения?
Ответы
Ответ 1
Я попробовал алгоритм sauvola в этой статье Адаптивная бинаризация изображения документа J. Sauvola *, M. PietikaKinen раздел 3.3
это модифицированная версия алгоритма niblack, которая использует модифицированное уравнение niblack
![enter image description here]()
который вернул довольно хорошие ответы:
![enter image description here]()
а также я попробовал другую модификацию Niblack, которая реализована в в этой статье
в 5.5 алгоритме № 9а: Université de Lyon, INSA, Франция (C. Wolf, J-M Jolion)
который также дал хорошие результаты:
![enter image description here]()
Ответ 2
Вы смотрите здесь: fooobar.com/questions/437574/...
local_mean = imfilter(X, filt, 'symmetric');
local_std = sqrt(imfilter(X .^ 2, filt, 'symmetric'));
X_bin = X >= (local_mean + k_threshold * local_std);
Я не вижу здесь много вариантов, если вы настаиваете на использовании niblack. Вы можете изменить размер и тип фильтра и порог.
Кстати, кажется, что у вашего оригинального изображения есть цвета. Эта информация может значительно улучшить обнаружение черного текста.
Ответ 3
В этой ситуации может быть использован ряд методов:
- Конечно, вы можете изменить алгоритм самостоятельно =)
- Также можно применять морфологические фильтры: сначала вы применяете максимум в окне, а после - минимум. Вы должны настроить размер окон для достижения лучшего результата, см. wiki.
- Вы можете выбрать самый сложный, но лучший способ и попытаться улучшить схему Niblack. Необходимо увеличить размер окон Niblack, если стандартное отклонение меньше определенного фиксированного числа (должно быть настроено).