Android 如何在像Vigo Video Hypstar这样的摄像机上实时预览录像机的变化

Android 如何在像Vigo Video Hypstar这样的摄像机上实时预览录像机的变化,android,ffmpeg,opengl-es,camera,chromakey,Android,Ffmpeg,Opengl Es,Camera,Chromakey,我想用gif或图像更改曲面预览底部覆盖 像这样 请告诉我任何sdk或我使用的过滤器 我可以使用此选项更改俯视图上的覆盖 本项目的产出 您需要使用外部库进行此操作。 用于在摄影机中使用过滤器,以及此类虚拟效果 尝试以下库: (一) (二) 您可以在这里学习如何实现这个基本过滤器 (三) 这是像Instagram一样的效果 (三) 这类似于Snapchat,但为此,您需要从该api页面购买一个密钥以使用它 我希望这有帮助,如果这不是您的答案,请忽略此答案。使用。其基本思想是在GLSURFACH

我想用gif或图像更改曲面预览底部覆盖

像这样

请告诉我任何sdk或我使用的过滤器

我可以使用此选项更改俯视图上的覆盖

本项目的产出

您需要使用外部库进行此操作。

用于在摄影机中使用过滤器,以及此类虚拟效果

尝试以下库:

(一)

(二)

您可以在这里学习如何实现这个基本过滤器

(三)

这是像Instagram一样的效果

(三)

这类似于Snapchat,但为此,您需要从该api页面购买一个密钥以使用它

我希望这有帮助,如果这不是您的答案,请忽略此答案。使用。其基本思想是在GLSURFACHEVIEW中进行相机预览并绘制OpenGL渲染
常用的方法是将GLSurfaceView子类化并实现GLSurfaceView.Renderer。渲染任务通过实现接口来执行

public class CameraRenderer extends GLSurfaceView implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener { 
    @Override
    public synchronized void onSurfaceCreated(GL10 gl, EGLConfig config) {
        ...
        //compile shader here
    }

    @Override
    public synchronized void onSurfaceChanged(GL10 gl, int width, int height) {
        ...
        //open camera and start preview here
    }

    @Override
    public synchronized void onDrawFrame(GL10 gl) {
        ...
        //draw frame as required
    }

}
查看此项目以获得更好的想法
如果这对您有帮助,并且您的工作是通过这一点完成的,请将此答案标记为已接受答案@阿诸赛尼看着预期的结果,我相信这涉及到边缘检测。看看这个,你只是想用GIF覆盖图像吗?我不清楚你到底想做什么。是的,我想改变相机的实时预览,除了人体的Gif,jpg或其他。。。就像色度键一样。。。绿色背景替换…请删除opencv标记。我确信它与opencv无关。除非您想使用opencv来实现这一点。而且这个问题似乎太宽泛了
public class CameraRenderer extends GLSurfaceView implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener { 
    @Override
    public synchronized void onSurfaceCreated(GL10 gl, EGLConfig config) {
        ...
        //compile shader here
    }

    @Override
    public synchronized void onSurfaceChanged(GL10 gl, int width, int height) {
        ...
        //open camera and start preview here
    }

    @Override
    public synchronized void onDrawFrame(GL10 gl) {
        ...
        //draw frame as required
    }

}