Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Andrew V. Fionik                     2:5020/400     15 Apr 2003  22:53:36
 To : All
 Subject : Удаление черных границ изображения, собственно метод.
 -------------------------------------------------------------------------------- 
 
 Привет всем.
 
 Итак, дано - черно белое, серое или цветное изображение представляющее собой
 результат сканирования некоего документа на сканере. Формат обычно A4.
 Hеизвестно по каким причинам, нас не волнующим, документ может иметь границы
 залитые черным цветом. Причем размер черных границ может быть существенен,
 например документ может являтся каким-то бланком или карточкой занимающим
 около 1/4 площади изображения. Границы на переходе в документ могут иметь
 рваные края, шум, вертикальные полосы причем существенных размеров, до 5 мм.
 Фактически такие белые полосы могут представлять собой своего рода "белую
 границу". Такую помеху надо проигнорировать при определении. Впоследствии
 документ обрезается по определенным границам.
 
 Сам метод. Все придумано из головы безо всяких мануалов. Если кто знает
 что-то получше прошу не таить и рассказать.
 
 Шаг 0, возможен прогон изображения через какие-нибудь фильтры - например
 despeckle или soft. Hо похоже они погоды не делают.
 
 1. С определенным шагом, строится яркостная характеристика изображения, т.е.
 фактически мы работаем с серым изображением. По вертикали и по горизонтали.
 Для каждого столбца и строки считается сумма яркостей пикселов принадлежащих
 им, усредняется и нормируется к 1. Попутно считается средняя яркость
 изображения. Получается нечто вроде этого:
 
 яркость
 ^y
 |
 |          __
 |      /\_/  \_
 |     |        \
 |     |         |
 |----/           \_____
 0-----x0-------x1-----x2-> координата/строка/столбец
 
 Точки x0 и x1 искомые.
 
 После получения указанного графика по нему могут прогоняться фильтры вроде
 сглаживания или медианного, в основном чтобы убрать всплески яркости на
 участках 0..x0, x1..x2. Если это небольшие помехи, то они убираются успешно.
 После чего я пытался определять границы двумя способами.
 
 1 способ. Для каждого столбца вычисляются отношение k=яркость/x. При
 максимальном k имеем границу. Hедостаток - белая полоска близко к 0 может
 дать такой всплеск яркости что k в точке 0 будет много больше чем в точке
 x0. Достоинство, получаются очень чистая обрезка границы которая почти
 никогда не захватывает черноту и не откусывает само содержимое документа.
 
 2. способ. Устанавливается некий предел относительно среднего уровня яркости
 изображения и переход от черной границы к документу считается там где
 яркость выше этого предела. Достоинство - можно подобрать такую ширину
 столбца, что даже при наличии серьезных всплесков яркости из-за помех или
 белых полос, граница будет определена там где она находится, а не там где
 находится белая полоса. Hедостаток - сама граница определяется неточно.
 Обрезка может оставить черноту, а может заехать и на содержимое документа.
 
 3. способ - продолжение 2. По найденной полоске снова строится яркостная
 характеристика и поиск повторяется внутри нее. И так до тех пор пока ширина
 полосок не станет 1 пиксел. После чего пользуемся либо 1 либо 2 способом для
 точного определения границы.
 --- ifmail v.2.15dev4
  * Origin: Papillon Systems (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Удаление черных границ изображения, собственно метод.   Andrew V. Fionik   15 Apr 2003 22:53:36 
Архивное /ru.algorithms/1512d89aa01d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional