Подтвердить что ты не робот

Алгоритм Niblack для бинаризации документа

У меня эта фотография:

enter image description here

и я пытаюсь сделать бинаризацию документа, используя алгоритм niblack Я реализовал простой алгоритм Niblack

T = среднее + K * стандартное отклонение

и это было результатом:

enter image description here

проблема в том, что некоторые части изображения, в которых окно не содержит никаких объектов, поэтому обнаруживают шум как объекты и разрабатывают их.

Я попытался применить фильтр размытия, тогда глобальное пороговое значение это было результатом:

enter image description here

которые не будут решены каким-либо другим фильтром я предполагаю, что единственным решением является предотвращение обнаружения алгоритмом глобального шума, если окно я освобождено от объекта

Мне интересно сделать это, используя алгоритм niblack, не используя другой алгоритм, поэтому любые предложения?

4b9b3361

Ответ 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, если стандартное отклонение меньше определенного фиксированного числа (должно быть настроено).