Поиск фигуры на картинке

Тема в разделе "WASM.A&O", создана пользователем cupuyc, 26 дек 2010.

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Здравствуйте. Задачка у меня такая. На полу лежит лист бумаги. На ней напечатана какая-нибудь фигура. Пусть для определённости это будет квадрат. Я из некоторой точки делаю фотографию некоторой области, которая включает в себя эту фигуру. Понятно, что фотография может быть сделана под некоторым углом к плоскости рисунка, расположение и ориентация рисунка на фотографии могут быть любыми. Мало того, квадрат уже перестанет быть квадратом и может превратиться в ромб, прямоугольник или вообще в четырёхугольник. Мне нужно на фотографии найти координаты этой фигуры (пусть для определённости мне нужно найти центр тяжести этой фигуры).
     
  2. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    cupuyc
    Пробей реперный точки по углам листа.
    Потом как его не крути и не переворачивай, пересечение прямых,
    построенных по точкам на противоположных углах
    дадут тебе центр тяжести.
    Так наверное?
     
  3. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Задача распознавания образов отличная сама по-себе.

    Есть интересное решение, но дорогущее-е и в плане софта и в плане железа.
    Буквально само всё делает. Не только по фотографии но и по видео.
    Версии только английские.
    http://www.photomodeler.com/index.htm
    Это решение задачи в общем виде.

    В частном случае можно писать самому.

    Графикой пользуйся лучше через gdiplus
    Пример использования загрузки изображений ниже.
     
  4. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    или не гди плюс. пример чегототам ниже
     
  5. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Также была уже тема - http://wasm.ru/forum/viewtopic.php?id=39278&p=1
     
  6. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    уголковый детекто харриса для нахождения особых точек
     
  7. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Меня интересует алгоритм поиска в чистом виде, без использования GDI+ и пр.
    Я знаю, что OpenCV умеет решать такие задачи.. Там есть FeatureDetector - как-то через него.. Если кто выложит примерчик использования, буду благодарен.
     
  8. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Тема очень сложная. Посмотрите сначала наработки того же Фотомоделера.
    Зачем изобретать велосипед???
    Там есть все средства для автоматизации распознавания.
    Аппетит приходит во время еды. Вряд ли вы ограничитесь квадратом.
     
  9. noonv

    noonv Member

    Публикаций:
    0
    Регистрация:
    19 июл 2005
    Сообщения:
    209
    Адрес:
    Russia
    ёпрст - зачем всё усложнять?
    применяем алгоритм детектирования границ - Кенни и потом поиск по контурам.

    рекомендую серию уроков по библиотеке компьютерного зрения OpenCV:
    http://robocraft.ru/page/opencv/
     
  10. 100gold

    100gold New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2010
    Сообщения:
    165
    Есть такой момент... Либо ты вначале должен определить, что на фото есть "лист бумаги", либо если пытаться просто найти "любой квадрат" - его можно находить в самых неожиданных местах вне листа бумаги))). Если свести задачу к поиску "листа бумаги", то тут по сути, надо найти просто "крупную" "почти белую" область. После этого задача поиска фигуры сильно упрощается
     
  11. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    Если рассмотреть двумерный график какойто функции - очевидно та фигура, часть которой он образует определяется экстремумами функции. Учитывая квантование, небольшие отклонения от прямой соединяющей перегибы функции, которые много меньше длины прямой можно не рассматривать, таким образом сглаживаются шумы. Тогда задав пределы изменений дельт координат в экстремумах и их отношение друг к другу определит фигуру. Этой функцией является контур фигуры.