Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматическая обрезка графики 
:(
    Опции темы
offline
Дата 3.2.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



Есть следующая задача. Сканирую какой либо объект на сканере, например 10 рублей при этом их накрываю белым листом бумаги. Получаю изображение 10 рублей на белом фоне.
Задача следующая, как автоматически вырезать 10 рублей (прямоугольником) из этой картинки, т.е. нужно просто вырезать изображение при этом откинуть пустые белые края.

Подскажите, есть ли готовые алгоритмы или как это можно реализовать???

Заранее спасибо.
PM MAIL   Вверх
Bitter
Дата 5.2.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 6
Всего: 27



Нужно накрыть не белым листом, а, например - зелёным, как делают при съемках погоды. А после этого удалить все зелёные пиксели с некоторым допущением. В общем надо накрыть таким цветом, которого нет на купюре.
PM MAIL ICQ Skype   Вверх
DreamBit
Дата 20.2.2011, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.1.2011

Репутация: нет
Всего: нет



Сравниваешь каждый пиксел изображение, то есть RGB скажем скока примерно должно быть красного, зеленого, синего соответственно (диапазон)
Как то делал подобное приходилось в редакторе подбирать эти составляющие.

Это сообщение отредактировал(а) DreamBit - 20.2.2011, 21:40
PM MAIL   Вверх
DimaDD
Дата 29.11.2011, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.11.2011

Репутация: нет
Всего: нет



В общем, примерно такая идея в голову пришла, если объект только один.

Сначала надо учесть, что сканер "шумит" и поэтому белый фон будет из пикселов несколько разного цвета. Т.е. сравнение цветов заключается в проверке, попадают ли они в некоторый настраиваемый(?) диапазон по RGB каналам.

Сама процедура может заключаться в оконтуривании объекта.

Сначала можно предположить, что объект, скорее всего, лежит примерно в центре скана. Начинаем сканировать (просматривать пикселы) в средней строке, пока не дойдём до не-фонового цвета. Если не нашли, то сканируем с некоторым шагом в двух направлениях попеременно - вверх и вниз, пока не дойдём до границы некоторого объекта. Шаг - скажем, 10 строк, а лучше заранее примерно оценить размер объекта, ежели сканируется примерно одно и то же, и взять минимальное возможное измерение как константу.

Дошли до границы - поставили пока что Xmin=Xmax, Ymin=Ymax области (а также Xstart и Ystart), после этого начинаем оконтуривать: проверяем окружающие пикселы по час. стрелке (скажем), начиная с Xmin-1 (это был ещё цвет фона). Переходим на первый встреченный не-фоновый пиксел и сравниваем его координаты с Xmin, Xmax, Ymin и Ymax, заменяя нужные предельные значения. Снова проверяем окружающие пикселы по час. стрелке, начав с последнего не-фонового на прошлом шаге. И так далее, пока не вернёмся к Xstart, Ystart. Смотрим полученные Xmax-Xmin и Ymax-Ymin: ежели они совсем небольшие, то это, наверное, просто мусор на стекле сканера smile, тогда эту область надо проигнорировать и продолжить сканирование строки дальше с первого фонового пиксела.

Раньше или позже встретится объект достаточно большого размера, он будет заключён в прямоугольную область Xmin, Ymin, Xmax, Ymax. При желании можно и сохранить координаты всех достаточно больших областей, просканировав так всё изображение. Т.е. найти и 10-рублёвку, и несколько монеток заодно! smile

Это только в первом приближении, там ещё м.б. какие-нибудь подводные камни, которые сразу в голову не пришли...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1038 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.