Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Алгоритмы
Перезагрузить страницу Распознавание образов
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию Распознавание образов - 12.10.2005, 10:53

Такой вопрос, может кто знает. Предположим, есть картинка (bmp). Фон - темный. На нем есть несколько светлых пятен (похожих на окружности). Суть в том, что надо найти координаты центров этих "окружностей" (кот. могут быть любой формы и размера). Но размер, ограничен. Ну, координаты центров найти - не проблема. Но как лучше всего получить набор координат внешних кромок? Т.е. контуров этих "окружностей"? Если кто-нибудь видел какие-нибудь описания этого в Сети (или сам сталкивался), дайте ссылки, плиз. Интересует точность/быстрота. Можно на английском. Спасибо!
Ответить с цитированием
  (#2 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 12.10.2005, 11:45

Просто, примерный алгоритм, как это все реализовать, у меня в голове сложился (не знаю пока, насколько он эффективный и правильный), но, как говорится, все придумано уже до нас. Вот и интересно, как это делали другие.
Ответить с цитированием
  (#3 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 12.10.2005, 14:52

Нда... мне по этому вопросу в голову не приходит вообще ничего, кроме построчного сканирования...
Ответить с цитированием
  (#4 (permalink)) Старый
Mr. Пронька Mr. Пронька вне форума
Member
 
Сообщений: 168
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.06.2005
По умолчанию 12.10.2005, 16:52

Цитата:
Originally posted by Dian
[b]Нда... мне по этому вопросу в голову не приходит вообще ничего, кроме построчного сканирования...
Ессно, дя поиска первой точки, можно и построчно сканировать, а потом по контуру обходить. Я давно как-то писал похожую прогу, которая картинку по контуру обходила и регион для окна соответствующий строила
Ответить с цитированием
  (#5 (permalink)) Старый
grustnoe grustnoe вне форума
Member
 
Сообщений: 496
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 08.11.2003
По умолчанию 12.10.2005, 17:44

пример картинки покажи
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 13.10.2005, 19:49

Сорри, картинки пока нет . Т.е. есть, но на бумаге. А реальной с прибора нет почему-то. Это все заказчик тянет. Через пару дней обещает.
Ответить с цитированием
  (#7 (permalink)) Старый
grustnoe grustnoe вне форума
Member
 
Сообщений: 496
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 08.11.2003
По умолчанию 13.10.2005, 20:39

у меня вот такая - http://ccphys.nsu.ru/~avpak/ell.png
Ответить с цитированием
  (#8 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 29.10.2005, 13:43

Наконец-то мне переслали картинки. У заказчика, оказываеца smtp-сервер не был настроен, и он 2 недели не мог понять в чем дело... Честно говоря, я ожидал нечто другое, нежели это:

Пятна, которые нужно определить - это 4 пятна, почти симметрично расположенные по краям зрачка). Вот их и надо определить. У кого-нить есть идеи? grustnoe, расскажи (если можешь), как у себя делал?
Ответить с цитированием
  (#9 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 29.10.2005, 15:32

А кружки всегда четырёхугольником распологаются?

Если нет, то есть проблемка: посмотри - посередине правого края, например, есть такой же светлый кружок, а он по всей видимости тебе не нужен....


импортирован с progz.ru
Ответить с цитированием
  (#10 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 29.10.2005, 17:04

Цитата:
Originally posted by Кошмар+-->
Цитата:
А кружки всегда четырёхугольником распологаются?
Вообще говоря нет. Они могут образовывать совершенно не симметрчную фигуру. Более того, если их не 4, а 3 например, то надо переснимать картинку.

<!--QuoteBegin-Кошмар

[b]посередине правого края, например, есть такой же светлый кружок, а он по всей видимости тебе не нужен
Нет, не нужен. Но если найдутся 5 кружков, то надо снова переснимать картинку.

Если интересно: пятна - это следы от 4х светодиодов. Надо определить центр зрачка. Т.е. найти точку пересечения 2-х линий, образованных 4-мя противолежащими центрами этих светлых пятен. То, что на картинке по середине правого края - это, видимо, блик какой-то...
Ответить с цитированием
  (#11 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 29.10.2005, 18:00

Судя по количеству круглых бликов на фотке, без участия оператора эта программа работать не будет.
Надо будет тыкать мышкой в эти пятна, что бы программа точно знала, какие именно блики те, которые ей нужны...

А почему пятна могут распологатся несимметрично? Вопрос нерешаем?

И вообще ты обещал, что фон будет тёмным.

Размеры пятен на фотке всегда одинаковые, или предмет съёмки может находится от объектива на любом расстоянии?


импортирован с progz.ru
Ответить с цитированием
  (#12 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 29.10.2005, 18:46

Цитата:
А почему пятна могут распологатся несимметрично? Вопрос нерешаем?
В принципе, вопрос решаем. Просто поставлю требование, чтобы исходная картинка была с более или менее симметрично расположенными кружками...

Цитата:
Размеры пятен на фотке всегда одинаковые, или предмет съёмки может находится от объектива на любом расстоянии?
Размеры пятен всегда одинаковые. Ну с точностью до нескольких пикселов, полагаю.

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


Ответить с цитированием
Ads
  (#13 (permalink)) Старый
grustnoe grustnoe вне форума
Member
 
Сообщений: 496
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 08.11.2003
По умолчанию 29.10.2005, 19:14

лишнее находит:

http://ccphys.nsu.ru/~avpak/1.png

я просто гоняю шаблоны круглых частиц
Ответить с цитированием
  (#14 (permalink)) Старый
devel0per devel0per вне форума
Member
 
Сообщений: 55
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.09.2005
По умолчанию 29.10.2005, 22:09

На мой взгяд всё гораздо проще:

1. Преобразовать изображение в монохромное, т.е. состоящее из двух цветов.
2. Удалить области белого цвета, неподходящие по площади.
3. Проверить: если осталось не 4 области, то переснять.
4. Для каждой области вычислить среднее арифметическое координат всех её точек.
5. Определить точку пересечения линий, проведённых между полученными координатами.

Правда у меня возникают сомнения на счёт третьего пункта. Подумайте сами, какова вероятность исчезновения точечных бликов при переснятии кадра?
Ответить с цитированием
  (#15 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 30.10.2005, 04:38

devel0per
Вероятность исчезновения точечных бликов при переснятии кадра может и небольшая, но будут переснимать до тех пор, пока не определится ровно 4 области.
Не совсем ясно по 2-му пункту, с точки зрения реализации. Может я туплю, но как можно узнать, больше ли та область, которую надо убрать, некоторого кружка? Хотя.... Можно ее вес посчитать. Ну, количество элементов, RGB которых больше некоторого порогового значения. А как только на "стенку" наткнулся, значит уже не то...

grustnoe
Вау! Можно поподробнее? Насколько я понимаю, ты задаешь мин. и макс. значения шарика. Потом начинаешь его построчно двигать. И проверяешь, все ли точки, ему принадлежащие (которые он "закрывает") лежат в одной цветовой области (с некоторым порогом). Как только он "вписывается", то такая область помечается. А строка и столбец запоминаются как центр пятна. Примерно так, да?

Кошмар, поделись идеей! Интересно!
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема записи образов дисков на DVD !!! Реально непонятная трабла... yaanuka Софт и программы 3 25.05.2008 16:46
Распознавание изображения на С++ toshkaexe C++ Builder 10 28.02.2007 22:25
Распознание образов Vint169 Pascal 9 10.05.2006 23:03
Распознавание сигнала с пульта ДУ шаман_с_бубном Железо. Написание драйверов 3 17.04.2006 08:45
Распознавание изображений maksimka Алгоритмы 6 28.02.2006 01:37
Нейроны. Распознавание букв. Максимыч Prolog 4 20.01.2006 23:58
Распознавание анализатором выражений sin и cos Ал-леша C++ Builder 11 30.11.2005 12:22
Исходники для программы на распознование графических образов damian C++ Builder 2 14.11.2005 13:22
Распознание образов из фона фигуру и различить треугольник круг или квадрат uran238 C++ Builder 8 30.10.2004 17:13
Распознавание рукописного текста slcut Алгоритмы 0 05.02.2004 12:57
Масштабирование графических образов Anonymous C++ Builder 1 23.08.2003 19:31
Алгоритм определения подобия бинарных образов Евгений Алгоритмы 1 08.05.2003 10:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов