Как измерить близость / концентрацию цвета на изображении? (предпочтение отдается питону) - PullRequest
0 голосов
/ 04 сентября 2018

Рассмотрим 2 изображения ниже:
Изображение 1:
a few big black things

Изображение 2:
lots of smaller black things

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

Я хотел бы рассчитать «концентрацию» черных пикселей. То есть изображение 1 имеет более высокий «индекс», чем изображение 2, поскольку черные пиксели более «сгруппированы» или сконцентрированы, чем на изображении 2.

Интуитивно я надеюсь, что метрика или функция уже существуют. Я провел несколько поисков, но не смог найти то, что искал.

Применительно к реальным примерам я бы использовал kmeans, чтобы уменьшить количество цветов примерно до 15 и применить этот расчет к каждому цвету. Я не думаю, что гистограмма поможет, так как я предполагаю, что такое же количество черных пикселей (пожалуйста, исправьте меня, если я ошибаюсь).

Один из подходов, о которых я могу подумать:
1. Фильтр для цвета
2. Используйте контуры для определения сгустков
3. Подсчитайте размер и количество капель для каждого цвета
4. Количественно в сопоставимую метрику по цвету
Я не эксперт в библиотеках обработки изображений, поэтому, если бы вы могли дать некоторые рекомендации о том, как это реализовать, было бы здорово.

Есть предложения?

Большое спасибо!

1 Ответ

0 голосов
/ 04 сентября 2018

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

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

Нет времени писать Python в минуту, но на графике ниже показаны ваши изображения рядом с красной вертикальной полосой для их разделения. В каждом последующем кадре видео я увеличиваю радиус круглого дискообразного структурирующего элемента на 1 пиксель. Первый кадр имеет радиус 1, а последний кадр имеет радиус 39:

enter image description here

Надеюсь, вы видите, что более крупные и концентрированные фигуры держатся дольше, чем более мелкие.

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