Разработка алгоритма удаления волос - PullRequest
7 голосов
/ 27 февраля 2012

Как предварительное требование моего проекта, я должен удалить волоски кожи с изображения. Для этого я нашел уже существующую программу . Реализация выполнена в Matlab.

Приведенная выше ссылка цитирует следующее

  1. Определяет места расположения темных волос с помощью обобщенной операции морфологического закрытия в оттенках серого,
  2. Он проверяет форму пикселов волос в виде тонкой и длинной структуры и заменяет проверенные пиксели билинейной интерполяцией, а
  3. Сглаживает замененные пиксели волос с помощью адаптивного медианного фильтра.

Что касается вышеприведенной части, в которой упоминается generalized grayscale morphological closing operation Я не смог выяснить, что это значит, и не смог реализовать ее в Matlab либо

В настоящее время мне нужно просто

  1. Определить пиксели волос
  2. Проверка пикселей волос
  3. Заменить пиксели волос соседними пикселями кожи

Мне было интересно, можете ли вы предложить какие-либо методы, которые можно было бы использовать для реализации этого алгоритма (обнаружение контуров и т. Д.), Так как в настоящее время все попытки не сработали должным образом. Любые функции matlab, которые можно было бы использовать, также были бы очень полезны. Также было интересно, какой метод я мог бы использовать для проверки пикселей как тонких и длинных структур

Обновлено : Поскольку я новичок в обработке изображений, у меня нет предварительных знаний о том, какие методы использовать для определения пикселей волос, проверки их и замены соседними пикселями, таким образом, запрашивающий

Ответы [ 2 ]

3 голосов
/ 27 февраля 2012

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

Набор инструментов для обработки изображений Matlab включает функцию imclose . Морфологическое закрытие объяснено в Википедии. Интернет наводнен информацией о математическая морфология для обработки изображений .

РЕДАКТИРОВАТЬ после комментария

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

0 голосов
/ 04 ноября 2013

Последовательность операций: 1. Определите пиксели волос 2. Проверьте пиксели волос 3. Замените пиксели волос соседними пикселями кожи.Это происходит главным образом потому, что морфологические открытые фильтры представляют собой серые или скалярные фильтры.Таким образом, проблему с цветными изображениями можно решить, либо найдя хорошее цветовое пространство (обычно жесткое при изменении фона), либо выполните закрытие (как в ответе выше: «Если волосы темные, а фон светлый)», отфильтруйте каждый канал и выполните интерполяцию.над остальными, что является текущим решением.

Таким образом, мы можем взглянуть на то, что дает matlab с тем, что упомянуто в статье, чтобы обнаружить удлиненные структуры волос:

se1 = strel('line',10,90);
se2 = strel('line',10,180);
figure, imshow(imclose(imclose(I,se1),se2),[]) % this closing is done channel wise independently. 

ДляДля сложных фонов необходимо хорошее цветовое пространство.Здесь работает более или менее, так как цветное изображение упорядочено (красный> зеленый> синий или какой-то такой порядок - вы можете проверить это) Input image from the website Line filtered image

Теперь проблема заключается в интерполяции по отсутствующимзначения с момента закрытия оставляет некоторые артефакты.можно использовать интерполяционную медианную фильтрацию, как предложено в Lee T, Ng V, Gallagher R, Coldman A, McLean D. DullRazor: программный подход к удалению волос с изображений.Компьютеры в биологии и медицине 1997; 27: 533-543.

Другая простая идея - выполнить rgb2gray (I) -> морфологическое закрытие с использованием линейных структур -> отобразить оттенки серого на тона RGB.Обратное отображение простое, если фоновое цветовое пространство не слишком сильно меняется и является устойчивым!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...