本项目是基于opengles3开发的特效拍照app。技术栈主要是opengles3, 通过 c++ 实现cv算法和特效算法的封装,并通过Jni提供接口进行渲染。提供的特效种类包括: 原始视频渲染,人脸检测/关键点,双边滤波(美白),大头特效,烟花,爱心贴图,3D对象,烟花2,风格迁移,虚拟背景。demo的预览视频连接见B站:https://www.bilibili.com/video/BV1XB4y197kZ?spm_id_from=333.1007.top_right_bar_window_history.content.click
· Android 10 + java 1.8 + ndk24
· 测试机器: Redmi k30 Pro
· ncnn + opencv3 + mnn + glm + opengles 3
使用时,首先打开摄像头,然后选择特效种类,最后保存当前预览的图片即可(风格迁移除外,因为预览无法实现实时,点击保存之后去相册中查找即可)
使用人脸检测和关键点检测算法,在帧的基础上绘制人脸框和关键点
glsl 编写双边滤波器,对视频进行美白(效果一般,视频变得模糊了)
基于 Opengles 中的点和线实现的烟花特效,简单的粒子特效,不好看但是都是基本元素