Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделение частей изображения, Необходим совет 
:(
    Опции темы
Ground
Дата 1.2.2011, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 27.2.2006
Где: Комсомольск

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



Добрый день!
Появилась необходимость распознавания картинок. Имеется: большое изображение с фотоаппарата - 12Мпкс, 4200х2800; малое - 40х40 (пример во вложении, малое изображение для поиска - мишень). Необходимо определить все вхождения малого изображения в большое. Сложности - шум, неоднородный фон, плюс небольшие искажения малого изображения, плюс необходима высокая точность. В этой области мои знания стремятся к 0, хотелось бы услышать какой-нибудь совет, куда копать? 
Может фильтр какой применить, увеличить контрастность (белые области выделить), а после уже в них искать?

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  imgGS.jpg 31,60 Kb
PM MAIL ICQ   Вверх
Earnest
Дата 1.2.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



Если все вхождения искомого изображения имеют примерно одинаковый размер и ориентацию, можно попробовать корреляцию: т.е. фильтрацию (свертку) полного изображения с маской (искомое изображение). Где отклик превышает некоторый порог, там цель... Есть масса тонкостей, но в целом как-то так.


--------------------
...
PM   Вверх
_Y_
Дата 1.2.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34





--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Ground
Дата 2.2.2011, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 27.2.2006
Где: Комсомольск

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



_Y_, благодарю за книгу!
Earnest, можно поподробнее? Исходное изображение и маска в grayscale, просчитываю каждый пиксель (область) с этой маской, получается изображение, на котором можно выделить максимумы, но они будут локальными (прикрепленный файл).
Нашел человека с похожей проблемой (советуют корректировать маску для поиска). Пытался  корректировать яркость каждого пикселя маски на среднее значение, на медиану. И если для одного образца работает такой способ, максимумы более-менее выделяются на черном фоне, то для другого получается просто сплошной черный фон. Где-то закралась ошибка, или тут есть нюансы?

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  test.jpg 59,32 Kb
PM MAIL ICQ   Вверх
Earnest
Дата 2.2.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



Ну, разумеется, нужно обязательно вычитать среднее значение и из маски и из растра под маской (при каждом наложении), иначе залитые области будут давать большой отклик. Только почему медиану-то, это совсем не то, что среднее - не даст нормализации. Маску можно скорректировать сразу, а для вычитания средней яркости растра под маской можно формулу прописать (там получается, что нужно из свертки доп. член вычесть - свертка-то линейна). Еще маску можно бинаризовать, если суть позволяет - т.е. черные пикселы на белом фоне или наоборот. Или 3 цвета максимально удаленных - в общем, контраст максимальный. Максимумы, конечно, получатся локальные и размазанные, а не дельты. Это понятно - стоит представить, что изображение чуть шире маски и уже отклик размазывается. Наверное, можно придумать много способов. Мне пришло в голову только усреднение, можно с весом (размер отклика). Вроде неплохо получается. Но результат зависит, конечно, от маски и от исходного изображения.
Цитата(Ground @  2.2.2011,  07:17 Найти цитируемый пост)
то для другого получается просто сплошной черный фон. Где-то закралась ошибка

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


--------------------
...
PM   Вверх
dereyly
Дата 2.2.2011, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 1
Всего: 4



Обычно поисковые маски для свертки должны иметь нулевую энергию, т.е. вы можете элементы на маске представить значениями -1 и 1, затем посчитать сумму для -1 и 1 раздельно и скорректировать, к примеру до -0.76 и 1. Маску лучше сделать в пейнте, чем бинаризацией исходного куска изображения. 
PS: Могу написать матлаб-код, если интересно.
PM MAIL   Вверх
Earnest
Дата 2.2.2011, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



То, что вы описываете как раз и получиться, если из маски вычесть среднюю яркость. Зачем же при этом раздельно +1 и -1 складывать?
Заранее маски можно сделать, когда они фиксированы. Хоть в пэйнте, хоть в нотепаде  smile .
Но может стоять задача создавать поисковые маски в диалоге с пользователем.


--------------------
...
PM   Вверх
dereyly
Дата 2.2.2011, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 1
Всего: 4



Цитата(Earnest @ 2.2.2011,  13:39)
То, что вы описываете как раз и получиться, если из маски вычесть среднюю яркость. Зачем же при этом раздельно +1 и -1 складывать?
Заранее маски можно сделать, когда они фиксированы. Хоть в пэйнте, хоть в нотепаде  smile .
Но может стоять задача создавать поисковые маски в диалоге с пользователем.

Да вы правы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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