gpt4 book ai didi

c++ - 在 OpenCV 中为我检测到的对象制作动画

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:08 36 4
gpt4 key购买 nike

我想知道如何在 OpenCV 的视频帧中创建发光球或发光线等效果。关于我可以从哪里开始或我可以使用什么以便在我的输出中创建简单动画的任何提示?

提前致谢!

最佳答案

这些效果可以通过原始的 OpenCV 像素操作轻松实现。假设您在单独的蒙版图像 mask 中将球识别为白色区域。使用 GaussianBlur 模糊此蒙版,然后将结果与源图像 img 组合。对于发光效果,您可能需要像 Photoshop 的 Screen 混合模式这样的东西,它只会使图像变亮:

结果颜色 = 255 - [((255 - 顶部颜色)*(255 - 底部颜色))/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

我没有测试这段代码,所以我这里可能有问题。颜色减淡也是一种有用的发光混合模式。更多信息:How does photoshop blend two images together?

关于c++ - 在 OpenCV 中为我检测到的对象制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884232/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com