opencv: способы извлечения области - PullRequest
1 голос
/ 02 декабря 2011

Я ищу хорошее решение, как сегментировать большие области похожих оттенков серого в opencv в видеопотоке.

Это мое изображение, например:

enter image description here

Чтобы получить это изображение, я уже выполнил выравнивание гистограммы.Я хочу обнаружить эту область посередине.Это большая серая зона, но она по-прежнему отличается оттенками серого.

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

enter image description here

Я также пробовал canny.Но результат также плохой.

Поэтому мой вопрос заключается в том, как правильно сегментировать область аналогичного серого в opencv?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 02 декабря 2011

Хорошим способом сегментирования такой области было бы создание банка фильтров Габора, которые можно применить к изображению, проверка ответов каждого файла Габора, с коллективным ответом в области, которая близка к окружениюкаждый фильтр Габора, вы можете получить нужную часть.

1- Построить фильтры Габора различной ориентации и размеров 2- Применить их к изображению, 3- Измерить отклик каждого фильтра.4- Ответы каждого фильтра в непосредственной близости должны быть достаточно близки друг к другу.5- Затем выполните сегментацию.

Надеюсь, это поможет.
Вы можете найти больше информации о фильтрах Габора Здесь

0 голосов
/ 26 января 2013

Я использую OpenCV для обнаружения объектов синего, желтого или зеленого цвета в игре робот-хоккей.Здесь у вас есть похожая проблема, что «размеренный» цвет шайбы зависит от света и других факторов.Преобразовав изображение с моей камеры в цветовое пространство HSV, вы можете очень хорошо подобрать эти условия (H = Hue, S = Saturation).Поэтому вы можете преобразовать изображение в HSV, а затем определить порог для своей серой области (установите все пиксели, например, от 30 100 100 до 40 255 255, равным 1, а остальные - на 0.

0 голосов
/ 24 января 2013

Ну, в конечном счете, вы можете использовать работу Chan & Vese (и других подобных), учитывая, насколько шумно ваше изображение.Но на данный момент мы можем придерживаться основных морфологических операторов, реализованных в OpenCV.

Начнем с морфологического закрытия, чтобы удалить некоторые мелкие детали, здесь я использовал квадрат 9x9.Затем выполните морфологический градиент, чтобы, возможно, выделить интересные края, и сегментируйте просто if value > mean + std/2, then 1, else 0.Если вы отбрасываете небольшие компоненты и делаете другое закрытие, используя вертикальный структурирующий элемент (предположим, что вы хотите соединить рядом сегменты по вертикали), это то, чем мы заканчиваем:

enter image description here

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