подсчитать количество цветного ромба на изображении - PullRequest
1 голос
/ 28 апреля 2020

У меня есть похожие изображения, такие как изображение ниже. у каждого изображения есть различное количество цветных алмазов ниже этого. Мне нужен метод обработки изображений, который подсчитывает количество цветных бриллиантов с помощью OpenCV и python. enter image description here

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

Ответы [ 4 ]

1 голос
/ 28 апреля 2020

Вы не скажете, знаете ли вы, где находятся алмазы, и я предполагаю, что это отдельная проблема. Просто возьмите пиксели внутри алмазов и проверьте, являются ли они белыми (значения (255, 255, 255) или близкими). ​​


Для определения местоположения поверните изображение в двоичное (черный / не черный). Соответствие шаблонам будет работать замечательно.

1 голос
/ 28 апреля 2020

Обрежьте область бриллиантами и рассчитайте средний цвет. Сравните с 6 значениями (0,1,2,3,4,5 ромба), что ближе. Достаточно использовать PIL.

0 голосов
/ 28 апреля 2020

Размеры бриллиантов одинаковы, поэтому вы можете использовать это свойство для них. Вот шаг для применения:

  • Загрузить изображение и преобразовать в оттенки серого
  • Применить Порог Функция
  • Найти и рисовать контуры
  • Рисовать прямоугольник для каждого контура ( пример )
  • Отфильтровать весь прямоугольник, используя размеры (в пикселях) каждого прямоугольника и получить только бриллианты.
  • Проверьте внутри каждого цвета прямоугольника на исходном изображении и подсчитайте их

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

0 голосов
/ 28 апреля 2020

Проверьте соответствие шаблона в Opencv. https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

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

...