Найти ограничивающий прямоугольник объектов в монохромных растровых изображениях - PullRequest
1 голос
/ 22 июля 2009

Учитывая монохромное растровое изображение:

000000000000000000000000000000000000000
001000100000000000000000000000000000000
000101000000000000000000000000000000000
000010000000001000000000000000000000000
000101000000010100000000000000000000000
001000100000100010000000000000000000000
000000000000010100000000000000000000000
000000000000001000000000000000000000000
000000000000000000000000000000000000000
000000000000001111110000000000000000000
000000000000001000010000000000000000000
000000000000001000010000000000000000000
000000000000001111110000000000000000000
000000000000000000000000000000000000000
000000000000000000000000000000000000000
000000000000000000000000000000000000000

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

Существуют ли какие-либо установленные алгоритмы, которые я могу использовать?

Ответы [ 3 ]

3 голосов
/ 22 июля 2009

То, что вы ищете, называется обнаружением «Blob», которое обнаруживает группы объектов, которые выделяются из окружающей их области. В зависимости от необходимой сложности вы также можете отслеживать площадь, выпуклость, периметр, ограничивающую рамку и т. Д. Капли используются во многих системах машинного зрения и осмотра.

В вики существует множество известных алгоритмов и тому подобное.

Есть также библиотеки обработки изображений, на которые вы можете посмотреть, одна из которых приходит на ум, называется AForge - это библиотека с открытым исходным кодом, написанная на C #: aforge.net

Или просто найдите «Обнаружение BLOB-объектов», и вы найдете тонны информации о том, что вам нужно.

Удачи!

0 голосов
/ 24 июля 2009

Что я хотел бы сделать, это посмотреть на любой алгоритм маркировки. Простым в реализации является алгоритм «Run-Track». Затем, когда ваша маркировка выполнена, вы можете найти (верхний, левый, правый, нижний) крайние пиксели каждого помеченного объекта. Возможно, это не самый быстрый способ (поскольку вы будете сканировать изображение несколько раз), но его будет легко реализовать.

Вот слайды лекций, которые (кратко) описывают RT-алгоритм (наряду с одним другим): http://www.cvl.isy.liu.se/Education/UnderGraduate/TSBB08/DBgrk7.pdf

0 голосов
/ 22 июля 2009

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

Как правило, вам нужно пометить все пиксели в соответствии с тем, к какому подключенному компоненту они принадлежат, а затем вы можете взять минимальные и максимальные координаты X и Y для каждого из них.

...