Подсчет полигонов разных цветов на холсте

У меня есть несколько пересекающихся полупрозрачных полигонов, которые делят холст на некоторое количество других полигонов разных цветов. Вот пример с 3 треугольниками:

введите здесь описание изображения

Как я могу рассчитать количество областей разных цветов, созданных этим пересечением? На представленном изображении есть 2 серые области; 3 красных; 3 зеленых; 1 синий; 1 фиолетовый (пересечение красного и синего треугольников); 1 оливка (пересечение красного и зеленого треугольников); 1 бирюзово-синий (пересечение зеленого и синего треугольников). Можно ли для этой цели применить алгоритм отсечения Сазерленда-Ходжмана, позволяющий найти многоугольник, являющийся пересечением двух произвольных многоугольников?


person Филипп Цветков    schedule 25.06.2019    source источник
comment
гистограмма google... вы просто считаете разные цвета - специальные цвета, такие как фон (серый) и края (черный), см. значение гистограммы изображения и ссылки там, особенно на этот Эффективное квантование цвета gif/изображения? который делает то, что вам нужно делать   -  person Spektre    schedule 26.06.2019
comment
Я не уверен, что понял, как это может мне помочь...   -  person Филипп Цветков    schedule 26.06.2019
comment
@Spektre: недостаточно просто считать разные цвета. Он просто сообщает вам количество разных цветов, но не количество областей. Вам нужно дополнить это шагом маркировки (т. е. присвоением индекса цвета каждому пикселю) и подсчетом связанных компонентов, которые они образуют. Конечно, это предполагает, что разрешена работа в пространстве изображения. Другой возможностью является стирание областей путем заполнения начальным числом до тех пор, пока не будут стерты все пиксели.   -  person Yves Daoust    schedule 26.06.2019
comment
@YvesDaoust Вы правы, теперь я вижу, что один и тот же цвет подсчитывается более одного раза ... так что цветовая сегментация - это способ ... (заливка заливает каждую еще не перекрашенную область до тех пор, пока не останется такого пикселя ... считая, сколько раз была вызвана заливка флуда)   -  person Spektre    schedule 27.06.2019
comment
Хорошо, я попробую использовать заливку заливкой, но я думаю, что это будет медленно   -  person Филипп Цветков    schedule 29.06.2019