Эти эффекты легко реализовать с помощью примитивных операций с пикселями OpenCV.Допустим, ваш шарик идентифицирован как белая область на отдельном изображении маски mask
.Размыть эту маску с помощью GaussianBlur
, а затем объединить результат с исходным изображением img
.Для эффекта свечения вам, вероятно, понадобится что-то вроде Screen в режиме наложения Photoshop, который только осветлит изображение:
Result Color = 255 - [((255 - Top Color)*(255 - Bottom Color))/255]
Реальный ключ к "жару""Эффект с использованием пикселей в нижележащем слое в качестве слоя экрана .Это переводится в OpenCV:
cv::Mat mask, img;
...
mask = mask * img; //fill the mask region with pixels from the original image
cv::GaussianBlur(mask, mask, cv::Size(0,0), 4); //blur the mask, 4 pixels radius
mask = mask * 0.50; //a 50% opacity glow
img = 255 - ((255 - mask).mul(255 - img) / 255); //mul for per-element multiply
Я не тестировал этот код, поэтому я могу ошибиться.Color Dodge также полезный режим смешивания для свечения.Подробнее здесь: Как фотошоп смешивает два изображения вместе?