Показать сообщение отдельно
  #1  
Старый 17.01.2011, 00:51
kiman.ru kiman.ru вне форума
Новичок
 
Регистрация: 11.02.2010
Сообщения: 63
Репутация: 10
По умолчанию Бинаризация методом Ниблэка

Мужики, нужна помощь по бинаризации изображения. Есть фотография с текстом. Нужно, чтобы фон стал белым, а буквы - черными.

Я сперва делал простым способом - брал пиксель и смотрел его цвет (0 - черный, 255 - белый). Если цвет пикселя меньше 127, то он становился черным, а если больше, то белым. Но этот метод дает плохой результат - буквы сплываются, присутствуют артефакты и текст в целом нечитабельный.

Я нашел описание метода Ниблэка.

Метод Ниблэка

Идея данного метода состоит в варьировании порога яркости B бинаризации от точки к точке на основании локального значения стандартного отклонения. Порог яркости в точке (x, y) рассчитывается так:

B(x, y)=m(x, y)+k s(x, y),

где m(x, y), s(x, y) – среднее и стандартное отклонение выборки для некоторой окрестности точки. Размер окрестности должен быть минимальным, но таким, чтобы сохранить локальные детали изображения. В то же время размер должен быть достаточно большим, чтобы понизить влияние шума на результат (для изображений, приведенных здесь, радиус окрестности составляет 16 пикселей). Значение k определяет, какую часть границы объекта взять в качестве самого объекта. Значение k=-0.2 задает достаточно хорошее разделение объектов, если они представлены черным цветом, а значение k=+0.2, – если объекты представлены белым цветом.

Помогите реализовать этот алгоритм на Дельфи.
Ответить с цитированием