Суббота, 17 Августа 2019, 18:33

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Обрезка изображения по эталону
Обрезка изображения по эталону
masb8ly-GCДата: Воскресенье, 15 Апреля 2012, 19:11 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Трудности с тем, что я не понимаю, как создать область которую необходимо вырезать!
Я легко могу довести изображение до того состояния в котором будут видны только границы объекта, а далее мне необходимо определить эти границы и вырезать по это границе с исходного изображения объект.


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
karuyДата: Воскресенье, 15 Апреля 2012, 19:14 | Сообщение # 22
заслуженный участник
Сейчас нет на сайте
Счас набросаю, как я себе это представляю.
masb8ly-GCДата: Воскресенье, 15 Апреля 2012, 19:19 | Сообщение # 23
постоянный участник
Сейчас нет на сайте
Буду премного благодарен)

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
VinchensooДата: Воскресенье, 15 Апреля 2012, 19:23 | Сообщение # 24
Злобный социопат с комплексом Бога
Сейчас нет на сайте
По-моему, проще всего сделать ручной выбор радуиса окружности и с помощь мышки и стрелок ставить ее в то место, что нужно обрезать. А после обрезать, зная координаты и радиус.

masb8ly-GCДата: Воскресенье, 15 Апреля 2012, 19:25 | Сообщение # 25
постоянный участник
Сейчас нет на сайте
Quote (Vinchensoo)
По-моему, проще всего сделать ручной выбор радуиса окружности и с помощь мышки и стрелок ставить ее в то место, что нужно обрезать. А после обрезать, зная координаты и радиус.

Это конечно все хорошо и я бы рад так сделать, но мне нужна абсолютная автоматизация!


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
GECKДата: Воскресенье, 15 Апреля 2012, 21:44 | Сообщение # 26
заслуженный участник
Сейчас нет на сайте
Глянь здесь.

Всё гениальное просто. И хреново работает.
masb8ly-GCДата: Воскресенье, 15 Апреля 2012, 21:50 | Сообщение # 27
постоянный участник
Сейчас нет на сайте
Благодарю! Полезная ссылка

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
karuyДата: Понедельник, 16 Апреля 2012, 16:39 | Сообщение # 28
заслуженный участник
Сейчас нет на сайте
Вот результат работы программы, которая анализирует только цвет.

Красным я очертил границу, которая по мнению програмы есть границей обекта.
Вот еще один пример, сфоткал мобильник на столе:

В этом примере видно как программа, без единого промаха выделяет телефон. Тоисть качество напрямую зависит от контраста фона и объекта в данном алгоритме. В картинке с монеткой на фоне много пятен сопоставимых цвету монетки, поэтому и есть пару промахов.


Сообщение отредактировал karuy - Понедельник, 16 Апреля 2012, 16:41
masb8ly-GCДата: Понедельник, 16 Апреля 2012, 17:18 | Сообщение # 29
постоянный участник
Сейчас нет на сайте
Анализ происходит попиксельно или scanline'ом?
Проблема в этом и есть, поскольку программа будет использована многократно и часто, то могут быть подобные промахи. У меня еще появилась идея искать 3 крайние точки и на их основе строить окружность, так как куда бы не падала тень, то 3 точки выделить удастся в любом случае! Но пока не придумал как осуществлять поиск границ.


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
karuyДата: Понедельник, 16 Апреля 2012, 18:36 | Сообщение # 30
заслуженный участник
Сейчас нет на сайте
Попиксельно. Я провтыкал где ты говорил что объект может быть только круглым, затачивал программу на роботу с объектами произвольной формы. Счас набросаю круговую обрезку по крайних точках, но я на 99% уверен что результат будет в разы хуже попиксельного анализа, но конечно если искать крайние точки тем методом, что я ищу границу объекта.

Добавлено (16.04.2012, 18:35)
---------------------------------------------
Хотя, уже придумал, как без особого искажения вырезать круглые объекты.

Добавлено (16.04.2012, 18:36)
---------------------------------------------
Набросаю в свободное время.

masb8ly-GCДата: Понедельник, 16 Апреля 2012, 18:49 | Сообщение # 31
постоянный участник
Сейчас нет на сайте
Хорошо! Если будет свободное время и будет не сложно, то сбросите исходники? happy

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
karuyДата: Среда, 25 Апреля 2012, 22:13 | Сообщение # 32
заслуженный участник
Сейчас нет на сайте
Извиняй что долговато, времени было не много. Вот что из этого получилось:

Искажения конечно же присутствует, так как идет попиксельний анализ, тоисть качество напрямую зависит от контраста фона и обекта. Число которое я вводил в едит, это уровень контрасности по которому програма будет искать радиус и центр.
Вот еще пример что программа не рисует просто круг в центре:

Добавлено (25.04.2012, 22:13)
---------------------------------------------
Есть там правда еще что доделывать, программа будет работать корректно, когда:
1) Круг на картинке будет один
2) Круг не будет выходить за краи изображения

Сообщение отредактировал karuy - Среда, 25 Апреля 2012, 17:14
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Обрезка изображения по эталону
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг