我正在 android 中构建一个相机应用程序,它也应该在后台渲染一些动态内容(如天空滤镜(。我无法直接在 openCV 中找到任何示例。在 openCV 中是否有一种直接的方法可以做到这一点?如果没有,还有其他选择吗?
执行此类操作的步骤如下所示:
实现- 一个实现
CvCameraViewListener2
的片段,并覆盖函数onCameraFrame
(如果您需要任何帮助,可以查看任何Android-OpenCV教程(。在此函数中,您应该做两件事:
使用 BackgroundSubtractor
类创建图像背景的遮罩(二进制图像,使用 1 指示像素是否是背景的一部分,如果不是,则使用 0(。我从未尝试过,但有传言说这是一个很好的算法,您可以查看其文档 - https://docs.opencv.org/3.4/d1/dc5/tutorial_background_subtraction.html。
使用- 所需的任何内容复制到输入图像,使用 mask 参数定义哪些部分将受到
setTo
方法的影响。
Mat.setTo
方法将