Четверг, 28 Марта 2024, 16:00

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 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
Chief Technology Officer RoyalePlay Games
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
Chief Technology Officer RoyalePlay Games
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
Chief Technology Officer RoyalePlay Games
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
Chief Technology Officer RoyalePlay Games
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
Chief Technology Officer RoyalePlay Games
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
Chief Technology Officer RoyalePlay Games
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-2024 Рейтинг