Обнаружение границ между разными цветами

Я создаю трехмерную структуру поликристаллов на основе метода Клеточных автоматов. Моя визуализированная структура выглядит так:
http://www-e.uni-magdeburg.de/dzoellne/simulation/Bilder/3D_structure.gif

Есть ли способ обозначить границы каждого цвета? Каждый цвет ограничен черной линией, что-то вроде этого:
http://web.boun.edu.tr/jeremy.mason/research/images/monte_carlo.png

К сожалению, я использую старый 1.1 OpenGL.

-1

Решение

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

0

Другие решения

Может быть, какое-то использование буфера трафарета?

Я бы попытался визуализировать изображение дважды, с небольшим смещением (1 пиксель) по X и Y. Во время рендеринга назначьте разные значения трафарета для каждого цвета. Затем, если вы выполняете первый проход с помощью операции «add» в буфере трафарета, а второй — с «вычитанием», вы должны получить простое обнаружение ребер в буфере трафарета. Тогда вам просто нужно сделать черный квадратор с включенным тестом трафарета.

Я понимаю, что этот подход может быть не идеальным по пикселям и давать некоторые артефакты, но это лучшее, что приходит мне в голову, банкомат :).

0

По вопросам рекламы [email protected]