Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск структуры на изображении 
:(
    Опции темы
CynicRus
Дата 17.4.2015, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 31.5.2012

Репутация: нет
Всего: 5



Приветствую уважаемых форумчан. Дано: одномерный массив байт, в котором содержится информация об изображении в формате 
Код

 TRGB32 = packed record
    B, G, R, A: Byte;
  end;
 , где A как правило равен 0. А так же массив структур, где каждая структура представлена как:

Код

type
TMPoint = record
    x, y, Color, Tolerance, AreaSize: integer;
  end;


Где - x,y - координаты выбраной точки, Color - цвет, Tolerance - величина описывающая предельно допустимое отклонение от Color, AreaSize - размер поля поиска пиксела.

Причём, первой в списке всегда находится главная точка. Остальные точки списка, содержат в себе информацию, об отклонении от главной точки в 2 мерном массиве. Например 0: x,y(0,0), 1:(-7,15) и т.д.
Список этих структур определяется заранее, и содержит в себе приметы, по которым нужно найти на изображении изображение соответствующее данному шаблону. Вот собственно и вся задача, и вопрос к ней: как осуществить подобный поиск наиболее быстрым способом? И главное - где почитать о таких алгоритмах?
 На данный момент алгоритм поиска выглядит так: одномерный массив конвертируем в двумерный, по ширине и высоте изображения, затем перебирая в двойном цикле по пикселю - ищем соответствие цвета цвету главной точки, если нашли - проходимся по списку структур и смотрим соответствия по смещению. Если всё соответствует, то возвращаем x,y найденной точки и едем дальше. Однако это несколько затратно и медленно.  

Спасибо за внимание.
PM MAIL   Вверх
Pavia
Дата 17.4.2015, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



CynicRus
Из вашего вопроса не понятно ровным словом ничего.

- Доктор, когда я делаю вот так, у меня очень болит!
 Доктор:
 - Не делайте так.


Судя по всему это некоторое распознавание изображений. Да это операция не быстрая. Так вот для ускорения применяют отсечения. 
1) Вначале самое простое это пользователь задаёт регион интереса. Т.е поиск идёт только в этом регионе. 
2) Затем применяют фильтрацию что-бы удалить лишние с изображения. К примеру отделить фон от объект.  Объекты с другим цветом и тп. 
3) Затем ищут особенности на изображении, которые легко и быстро найти: границы, углы, линии, круги, примитивы Хаара.
Выбираются наиболее сильные или значимые, а остальные отбрасывают.
4) Затем уже сравнение с использованием наиболее назначаемых пикселей.  Если пиксель не того цвета, то сразу выходим к другому уровню алгоритма.

Не обязательно всё это должно присутствовать.
Собственно на 3-4 уровнях отбраковка идет по порогу и идёт переход к другим координатам.

Есть ещё методика отбраковки по каскадам, когда при переходе к другой координате не все пороги проверяется а возврат идет к предыдущему порогу.

Это сообщение отредактировал(а) Pavia - 17.4.2015, 21:14
PM MAIL   Вверх
Pavia
Дата 17.4.2015, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Про регион интереса, в принципе это и так понятно что два цикла по меньшей  области а не по всему изображению.
http://robocraft.ru/blog/computervision/289.html

Про каскады и примитивы Хаара можно прочитать тут:
http://www.wisdom.weizmann.ac.il/~vision/c...Viola-Jones.pdf

Немного про наиболее значимые точки, хотя статья по большей части популистическая нежели научная 
http://arxiv.org/ftp/arxiv/papers/1306/1306.2599.pdf



Это сообщение отредактировал(а) Pavia - 17.4.2015, 21:47
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0745 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.