Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка изображения - что делать с зернистостью? 
:(
    Опции темы
MoebiusCat
Дата 5.1.2011, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть лабораторные микроснимки печатающей головки для принтера, на которых надо сделать регистрацию или что-то в этом роде (распознавание и отслеживание падающих капель). Есть такая проблема, что снимки очень зернистые - градиенты на областях одинаковой яркости почти такие же, как между "чёрным" и "белым".

Вначале я пробовала просто их сгладить, но этого оказалось недостаточно. Тогда я решила сделать бинаризацию (или бинаризацию после небольшого сглаживания), зернистость она более-менее убила, но из-за неравномерного освещения + остатки зернистости она работает не совсем правильно ( На картинке есть "чёрные" и "белые" области, у которых одинаковый уровень серого, поэтому простая глобальная бинаризация не работает. Я пробовала выделить какую-то "промежуточную" область, пиксель из которой считается "чёрным" или "белым" по количеству "чёрных" или "белых" соседей, но это тоже не дало стопроцентной точности. Ещё я пробовала поиграться с эрозией и тому подобным, но, опять же, это не смогло убить проблему полностью. )

Ещё я знаю, что есть различные методы адаптивной (локальной) бинаризации, например "верх шляпы". У кого нибудь есть ссылка на описание?

Ещё мне буквально только что пришло в голову воспользоваться Фурье трансформом и убить им высокие частоты. Должно помочь?

Какие ещё есть идеи?

Это сообщение отредактировал(а) MoebiusCat - 5.1.2011, 15:06

Присоединённый файл ( Кол-во скачиваний: 26 )
Присоединённый файл  drop.gif 547,97 Kb
PM MAIL   Вверх
Pavia
Дата 5.1.2011, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



MoebiusCat, 
Снимок бы увидеть.  А вообще насколько могу судить вам должно хватить алгоритма Canny для выделения границ он хорошо справляется с шумом. 

По поводу бинаризации.  Алгоритм  Sauvola считается одинм из лучших.
Вот тут можно посмотреть реализацию его и парочки других.
http://www.djvu-soft.narod.ru/bookscanlib/project.htm

Добавлено через 6 минут и 41 секунду
А да с зернистостью хорошо борется медианный фильтер. 
Или адаптивнаое сглаживание бинаризация.
Берешь точку и смотришь в некоторой окрестности. если она выше чем средний то сглаживаем или бинаризуем.

А да обрати внимание на алгоритм Canny там есть такой момент как Non maximum suppression  тужи идею можно использовать при адаптивной бинаризации и сглаживания чтобы края лучше выделить. 
PM MAIL   Вверх
MoebiusCat
Дата 5.1.2011, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Присоединила снимок (в первое сообщение).

Выделение границ пробовала (на матлабе), в том числе Канни. Результат присоединён :(

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

За ссылку огромное спасибо, сейчас буду читать.

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  edges_canny.gif 84,98 Kb
PM MAIL   Вверх
VictorTsaregorodtsev
Дата 5.1.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня для выделения границ на Вашем снимке хорошо сработал фильтр Превитта размером 7*7 - см. прицепленную картинку.
В общем, фильтр подобрать можно будет - такой, чтобы снимки без капель давали не слишком яркие "границы" (как для области между темным и светлым, так и для зернистых изображений на градиентном фоне) - а вот границы капли при этом будут поярче. А дальше - один порог (подогнанный автоматом или вручную) для определения - границы ли это капли или и нет (достаточно яркие или недостаточно яркие).
Если будет всё-таки значительный ложняк из-за шума (зернистости) - то снимки надо будет предварительно сглаживать скользящим окном довольно малого размера (думаю, что хватит окна 5*5).

Еще один вариант поиска капли на изображении - исходное (фоновое) изображение отфильтровать фильтром выделения границ, каждое новое изображение - тоже фильтровать тем же фильтром, и затем вычитать из первой картинки вторую. Из-за шума самой камеры расхождения в результатах фильтрации фоновых участков будут небольшими, и разность их тоже будет небольшой. А вот где появляется новая граница - там разность между "старой" границей (или её отсутствием) и новой границей будет уже существенна.
В текущем проекте я такую вещь себе сделал, обошелся фильтром Собеля 3*3 (малый размер фильтра - вери гуд для реалтайма, который мне в этом проекте нужен)

Присоединённый файл ( Кол-во скачиваний: 31 )
Присоединённый файл  Image2.jpg 31,23 Kb
PM MAIL WWW   Вверх
Pavia
Дата 5.1.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



MoebiusCat, 
Моя плакала когда увидела matlab. Да уж я то думал там у них все хорошо. А они и 1/3 от алгоритма Canny не реализовали.

Скачайте нормальный и попробуйте.

Я сюда для пробы закинул. 
http://matlabserver.cs.rug.nl/cannyedgedet.../web/index.html

Выбираем файл drop1.bmp
И выставляем
Linear filtering
Sigma
 равной 7

И наслаждаемся картинкой.
user posted image

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

maxim1000

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


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

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


 




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


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

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