Подскажите алгоритм распознавания

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем Vasya, 24 фев 2007.

Статус темы:
Закрыта.
  1. Vasya

    Vasya Гость

    На черно-белом листе нужно распознать известную геометрическую фигуру, "залитую", состоящую из прямых линий, на сильно загаженном фоне - например толстый г-образный уголок на листе с текстом, или поверх каракулей. Визуально понятно сразу, а как найти его координаты программным способом?
     
  2. Barmutik

    Barmutik Гость

    Задача распознования CAPTCH крайне не проста и решается в каждом конкретном случае индивидуально... а так копать в распознование образов...
     
  3. Pradov

    Pradov Гость

    Очень нужно)Я тут взялся бота для игры делать)А там так много цветов....мне нужно чтобы сиреневый распозновало....как быть!С чего вообще начинаить....посоветуйет плиз)
    Пасиба)
     
  4. Barmutik

    Barmutik Гость

    Я не в курсе Вашей задачи ... просто так тут не посоветуеш ... приведите примеры картинок на которых нужно распозновать...
     
  5. Vasya

    Vasya Гость

    пример - лист А4 заполненный текстом размера 10-12 пунктов, и поверх текста в произвольном месте произвольно ориентированный г-образный уголок длиной ребра пусть 1см и толщиной 3 мм.
     
  6. Barmutik

    Barmutik Гость

    Я имел ввиду картинку выложите сюда .. от Вашего объяснения легче не стало..

    Вам нужно найти что написано или просто сказать есть он там или нет ?
     
  7. Vasya

    Vasya Гость

    ex.jpg
    Нужно определить координаты его центральной вершины относительно начала листа, и угол поворота, считая г-образную ориентция неповернутой
     
  8. Pradov

    Pradov Гость

    Ну вот картинка)Там где крсаня "1" ето собсно и надой найти и выделить(нажать)!

    [​IMG]
     
  9. Barmutik

    Barmutik Гость

    Для: Vasya

    Ну для конкретно таких примеров .. просто сканьте картинку на определённый набор пикселов...

    Там где чёрная Г ищите к примеру послудовательность черных точек 10 на 10 пикселов .. по идее никакая буква в такое не попадёт ... насчёт поворота по такому же принципу...

    Для: Pradov

    Аналогично ищите нужные Вам цвета пикселов и найдя их проводите оценку рядом находящихся пикселов на вариант попадания в нужные Вам цвета ...


    Это самый простой вариант решения таких проблем как Вам надо...
     
  10. lACl

    lACl Гость

    Для: Vasya
    привет! у меня есть такая программа. сам писал.
    стучись если нужно в аську. вот номер:
    367244151
     
  11. Zuzlan

    Zuzlan Гость

    По проблеме распознования образов
    Я многократно уже писал программы для распознавания картинок.. Сразу хочу отметить, что универсальный механизм создать невозможно (ну или практически невозможно). А вот для конкретных случаев задача значительно упрощается. Но я использовал практически для всех видов картинок стандартный набор операций, а именно:
    1. Перевод картинки в ч.б. (желательно без отенков) стараясь таким образом не затереть важные мне элементы рисунка
    2. Уничтожение мусора. В приведенной картинке, где на заднем плане используется текст, то там мусор убрать достаточно просто, для этого нужно пройтись по всем пикселям (или даже лучше не по всем, а прыжками, скажем через 3-5 пикселя) и сравнивать при этом соседние пиксели, расчитывая на то что если выбранный нами пиксель имеет черный цвет, а рядом лежащие - белый, то вероятнее всего изначально выбранный нами пиксель принадлежит тонкой букве, и мы его смело можем закрасить в белый (и даже не только его, а и рядом прилегающие черные пиксели)
    3. Сравнивание оставшегося изображения с нашими картинками(чаще всего цифрами, буквами). Поскольку тут присутствует произвольный поворот изображения, то при сравнивании изображений не стоит об этом забывать.

    И самое главное - оптимизмровать все процессы на сколько это возможно, потому что если не правильно все сделать, то решение такой задачи для компьютера окажется весьма трудоемким занятием и может затянуться до нескольких десятков секунд...

    При создании более унивесальной процедуры определения изображения я не придумал ничего лучше, как:
    1. Определение типа картинки (что бы подобрать подходящий для нее тип решения)
    2. Собственно применения к ней заранее написанного механизма решения для данного типа картинки.
     
  12. niello

    niello Гость

    Ну а я предлагаю:
    1)Рисунок перевести в двухцветный монохромный.
    2)Использовать доступ к Битмапу не Gdi так как он очень долгий. При этом пользоваться встроенным ассемблером без использования юнитов.
    3)Ищем непрерывное множество пикселей(затемненных)(лучше если пользователь выбирает место г) ищем точку которая одна на уровне вертикально проведеной линии или горизонтально проведено линии(если точек нет то угол возможен таков 0+(П/2)n то есть 0градусов, 90,180,270,360, далее они повторяются- просто проходят круг-период)-таких точек должно быть 3.
    =Если одна точка на вертикальной линии 2 точки на горизонтальной и кординаты строк массива точки вертикальной линии больше то это и есть точка от куда выходят углы, она находится в 1 или второй четверти.
    =Если одна точка на вертикальной линии 2 точки на горизонтальной и кординаты строк массива точки вертикальной линии меньше то это и есть точка от куда выходят углы, она находится в 3 или 4 четверти.
    и так далее просто нада все проанализировать.
    Угол же надо находить отношением положений точек прои этом нада учитывать длинну сторон г-образной фигуры. Если стороны одинаковы то это проще.
    Если надо более подробно - отпиши я попробую посидеть пару деньков (в свободное время)
    :)
     
Загрузка...
Похожие Темы - Подскажите алгоритм распознавания
  1. Sevas
    Ответов:
    1
    Просмотров:
    1.214
  2. vital
    Ответов:
    3
    Просмотров:
    2.873
  3. amstrot
    Ответов:
    1
    Просмотров:
    68
  4. d7uk4r3v
    Ответов:
    14
    Просмотров:
    299
  5. kuklofon
    Ответов:
    1
    Просмотров:
    81
Статус темы:
Закрыта.

Поделиться этой страницей