2016-06-06 5 views
0

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

ответ

2

Это хороший вариант для алгоритмов обработки изображений. Например, с использованием библиотеки OpenCV, вы можете использовать следующий подход:

Если формат изображения цветов, конвертировать его в оттенки серого (cvtColor)

Сделать изображение бинарное (чистый черный и белый) с инверсии цвета (cvThreshold с THRESH_BINARY_INV), чтобы сделать белые пятна на черном фоне

Найти связные компоненты (findContours) - после того, что contours.size дает количество точек

Если вы не хотите использовать какую-либо библиотеку, ключевой момент is connected components labeling

Самый простой способ сделать CCL для небольших точек - с использованием алгоритма Floodfill.

Make заливка фоновых пикселей, помечать их с 0.

сканирования всех пикселей. Когда вы встретите немаркированный (в X, Y), начните новую заливку заливки с последующим значением маркера K (1,2 и т. Д.).

После каждой заливки возвращайтесь к следующей координате (X + 1, Y) и продолжайте сканирование.

Последнее значение K - количество пятен.

+0

Это было полезно. Спасибо –

+0

@ D.Badawi Я добавил еще один простой подход для подсчета (своего рода маркировка компонентов, подходящая для точек) – MBo

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

  • Нет связанных вопросов^_^