Как объединить цвета в одном изображении?

У меня есть некоторый опыт в Opencv, Я хочу кластеризовать цвета изображения.

Например, если я кластеризирую изображение ниже:

я должен получить 6 кластеров, каждый из которых имеет имя кластера в качестве значения RGB вместе с их положением (x,y)

мировой континент

Есть ли способ сделать это с помощью Opencv или любые пакеты с открытым исходным кодом также в порядке. Мне комфортно с Java и C. Если вы хотите больше подробностей, оставьте свои комментарии.

3 ответа

Взгляните на cvBlobLib, это дополнение к OpenCV

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

1) Мы можем использовать Point, чтобы сохранить положение пикселя. Новая точка (ширина, высота).

2) Затем нам нужно определить, какие пиксели и какого цвета. Перебирая все пиксели, мы также можем получить номер цвета / кластера.

3) Для каждого цвета / кластера нам нужно вычислить центральную точку, вычислив среднее значение для всех пикселей / точек, которые имеют этот цвет.

Другие вопросы по тегам