2013-09-01 2 views
0

Я пытаюсь написать алгоритм для обнаружения блобов с использованием маркировки связанных компонентов на изображении. У меня возникают трудности с объединением разных ярлыков, если они связаны по диагонали. Делать это для горизонтально и вертикально подключенных пикселей кажется легким. Но я не могу определить способ обнаружения пикселей, которые связаны по диагонали. Потому что, если он изменится, тогда необходимо переместить изображение w.r.t в это изменение для каждого измененного пикселя. Я смущен . Можете ли вы объяснить мне, как с этим справиться. Возможно, я совершенно ошибаюсь в отношении того, что я сказал (но я добился разумных результатов, выполняя только горизонтальные и вертикальные связанные компоненты), но это не правильный путь. пожалуйста, проконсультируйтесь с тем, как точно подойти к маркировке подключенных компонентов. Я использую только массивы размеров изображения для сравнения и маркировки.Обнаружение BLOB с использованием алгоритма маркировки подключенных компонентов

+0

«Но я не могу найти способ обнаружить пиксели, которые связаны по диагонали. Потому что, если они меняются, возникает необходимость переложить изображение на это изменение для каждого измененного пикселя». - Что вы Вы хотите, чтобы использовать диагональные пиксели в вашем блобе? – Aravind

+0

две мысли: (1) отправьте часть своего кода; (2) если два пикселя «подключены» только по диагонали, тогда вы реализуете 8-связный алгоритм, который может быть не таким, каким вы хотите. Вы хотите обнаружить шаблон шахматной доски в виде одного блоба? – Rethunk

+1

@Retunk: Привет, Rethunk, спасибо, что прокомментировал. Я смог решить проблему, отметив эквивалентности, используя структуру union-find и изменив их значения во втором проходе. Теперь код работает отлично. Я использовал 4-соединение. – chaithu

ответ

0

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

+0

Спасибо за ответ, я был в замешательстве, потому что я не мог визуализировать пиксели, получающие перемаркировку, когда он встречает эквивалентность w.r.t своим соседним пикселям. в любом случае я смог решить проблему, используя класс эквивалентности. алгоритм - это два прохода – chaithu

Смежные вопросы