2009-07-22 4 views
1

Учитывая монохромное растровое изображение:Найти прямоугольник объектов в монохромных растровых изображениях

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

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

Есть ли установленные алгоритмы, которые я могу использовать?

ответ

3

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

Существует множество установленных алгоритмов на Wiki и т. П.

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

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

Удачи вам!

0

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

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

0

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

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