Рассмотрим 4 сегментированных изображения или числовых массива - A, B, C и D (каждый пиксель равен либо 0, либо classID в месте расположения объекта на изображении). Эти 4 сегментированных двумерных массива являются сегментациями различных объектов, представленных на одном изображении. например. изображение A имеет сегментированный объект # 1, изображение B имеет сегментированный объект # 2 и так далее. Требуется наложить все эти сегментации различных объектов на одно изображение вместо того, чтобы иметь 4 отдельных сегментированных изображения.
Естественно, можно просто выполнить a + b + c + d, чтобы наложить их. Однако сегментированные пиксели объекта могут перекрываться между изображениями. Например, сегментированный пиксель объекта # 1 из изображения «A» может перекрывать a с сегментированным пикселем объекта # 2 в изображении «B». Если это перекрытие происходит, ClassID объекта # 2 имеет преимущество перед положением этого пикселя. ClassID высшего объекта # имеет преимущество. Поэтому нельзя просто добавить все изображения, чтобы объединить все сегментации в одно связное сегментированное изображение.
Пример двух сегментированных изображений - объект A имеет пиксельное значение 1, а B имеет 2. В случае, если рассматриваются только эти два изображения, я бы хотел наложить объект B на объект A (каждый объект будет иметь свой цвет в сочетании). Объект B должен быть виден поверх объекта A, где они перекрываются.
Я использовал метод последовательного добавления каждого изображения к следующему, если значение любого результирующего пикселя равно сумме classID объекта # 1 и classID объекта # 2, это указывает на перекрытие, и я устанавливаю эти пикселей до значения classID # 2. Поскольку это решение сравнения суммы не уникально, оно не сработало правильно.
Один способ, которым я знаю, как это сделать, это итерация каждого пикселя и сравнение пар пикселей по два изображения за раз. Если у кого-то есть более эффективное решение, дайте мне знать!