首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原创:好玩的视频人像抠图

本文将基于开源的人像抠图算法模型和 OpenGL 做一个实时的人像分割 app , 该 app 目前已开源,感兴趣的同学可以参考该项目利用matting算法做一些有趣的特效。...本文主要参考飞鸽传书的开源项目 ncnn_Android_RobustVideoMatting ,它使用的是腾讯的 ncnn 神经网络计算框架,ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架...所以本文采用 Android Camera2 (Java)获取实时预览图像,将算法模型和 OpenGL 渲染控件封装成一个类,初学者可以很方便地利用这些类进行移植和二次开发,可以轻易实现自己想要的效果。...#include #include android/looper.h> #include opencv2/core/core.hpp> #include opencv2...,主要就是借助于 GLSurfaceView 创建 OpenGL 渲染上下文环境,RenderVideoFrame 传入 matting 结果和相关的 mask 灰度图,然后进行上屏渲染。

1.8K30

Android传感器_传感器网络的基本功能

在接近传感器的情况下,阵列包含指定传感器和附近物体之间距离(​​厘米)的单个值。 如果该值等于传感器的最大范围,则可以安全地假定附近没有。相反,如果它小于最大范围,则意味着附近有些东西。...3.使用陀螺仪 陀螺仪允许您在任何给定时刻确定Android设备的角速度。简单来说,它告诉您设备绕X,Y和Z轴旋转的速度有多快。...最近,即使是预算手机正在制造,陀螺仪内置,增强现实和虚拟现实应用程序变得如此受欢迎。 通过使用陀螺仪,您可以开发可以响应设备方向的微小更改的应用程序。...例如,我们可以将其沿着Z轴的旋转度大于45°时变为黄色,当其旋转在-10°和10°之间时为白色,当旋转小于-45°时,它们为蓝色。...结论 在本教程中,您学习了如何使用Android的传感器框架来创建可以响应接近传感器和陀螺仪生成的数据的应用程序。您还学习了如何使用旋转矢量传感器,这是陀螺仪更受欢迎的替代品。

1.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3.Android-传感器开发-处理各种传感器配置

    (Sensor.TYPE_PRESSURE) !...以下是滤除无加速计的 manifest 样例: android:name="android.hardware.sensor.accelerometer"...android:required="true" /> 如果你把这个元素和描述符加入你的 manifest 中,则只有设备上带有加速计的用户才能在 Android Market 上看到你的应用。...这与 OpenGL 坐标系类似。 理解坐标系的另一个要点,你的应用不得假定设备的初始(默认)方向是竖直的。很多桌面设备的初始方向是横向放置的。 传感器的坐标系总是以设备的初始方向为基准的。...关于传感器坐标系的更多信息,包括如何处理屏幕旋转的相关信息,请参阅 One Screen Turn Deserves Another 注意: 某些传感器和方法的坐标系使用了地球参照系(而非设备参照系)

    67110

    Qt5 和 OpenCV4 计算机视觉项目:6~9

    可在以下提交中找到重命名中的更改集。 如果您对此完全感到困惑,请参考提交。...在该坐标系中,所有坐标都限制在 -1.0 和 1.0 的范围内。 如果对象的坐标超出此范围,则它们将不会显示在 OpenGL 视口中。...纹理坐标系的x和y(轴)都在0和1之间,即,左下角是(0, 0),右上角是(1, 1)。 因此,我们的顶点和坐标映射如下所示: 上图显示了我们将绘制的两个三角形之一,即右下角的三角形。...这是因为 Qt 中的图像和 OpenGL 中的纹理使用不同的坐标系:(0, 0)是 Qt 图像中的左上角,而它是 OpenGL 纹理中的左下角。 换句话说,它们的y轴方向相反。...我在代码库的Chapter-08/CVGLContext目录中提供了一个绘制带有 OpenGL 上下文和 OpenCV highgui模块的三角形的示例,您可以参考它以了解更多信息。

    3.3K30

    OpenCV3 安卓应用编程:1~6 全

    注意 在撰写本文时,OpenCV4Android 的最新版本是 3.0。 本书以 3.0 版为目标,但同时也包含有关 OpenCV 3.x 和 OpenCV 2.x 之间差异的全面说明。...它将通过 Android 的MediaStore和Intent类与设备上的其他应用交互。 因此,我们将学习如何在 OpenCV 和标准 Android 之间建立桥梁。...为每组特征(参考和场景特征)找到描述符。 描述符是有关特征的数据向量。 某些功能不适合生成描述符,因此图像比特征具有更少的描述符。 参见这个页面。 查找两组描述符(参考和场景描述符)之间的匹配项。...在场景中的参考图像和匹配图像之间找到单应性。 单应性是一种 3D 变换,需要将两个投影的 2D 图像对齐(或尽可能靠近以对齐它们)。 它是基于两个图像的匹配特征点计算的。...通常,此方法配置我们以后不会更改的所有 OpenGL 设置。 换句话说,这些设置与透视图和绘制内容无关。 作为参数传递的GL10实例提供对标准 OpenGL ES 1.0 功能的访问。

    5.3K10

    使用计算机视觉实战项目精通 OpenCV:1~5

    它需要处理用户输入,例如在草图,绘画,邪恶或异物模式之间更改模式。 我们将它们添加到 Android 菜单栏中。 如果我们可以将卡通化的结果保存到图像文件中,并与他人共享,那将是很好的。...使用 OpenCV4Android 所需的步骤会定期更改,并且 Android 开发本身不是静态的; 因此,本章将介绍如何通过向 OpenCV 示例项目之一添加功能来构建 Android 应用。...请参考“OpenCV camera_calibration示例”或《OpenCV:在投影关系中估计图像》,以获取其他信息和源代码。...P1-P4点是世界坐标系中的 3D 点, p1-p4点是它们在相机像面上的投影。 我们的目标是使用本征矩阵和图像平面(P1-P4)上的已知点投影和相机C找到已知标记位置之间的相对转换。...每个变换可以表示为4 x 4矩阵,并加载到 OpenGL 模型视图矩阵中。 这会将坐标系移动到世界坐标系中的标记位置。

    2.3K10

    这交互炸了,Android 仿自如APP裸眼 3D 效果 OpenGL 版

    /6992169168938205191 很快我看到了一个好玩的评论: 既然客户端都卷成这样了,干脆破罐破摔,把 Android OpenGL 的实现版本也补齐,毕竟 图形学或许会迟到,但绝不会缺席...笔者最终选择了 Android 平台上的 OpenGL API 进行渲染,直接的原因是,无需将社区内已有的实现方案重复照搬。...本文重点是描述 OpenGL 绘制时的思路描述,因此下文仅展示部分核心代码,对具体实现感兴趣的读者可参考文末的链接。 3具体实现 1....(没太明白的同学可参考上文中陀螺仪的图片加深理解): // 设备旋转方向和图片的位移方向是相反的 float transX = ((maxTransXY) / MAX_TRANS_DEGREE_Y) *...解决这个问题,传统的 OpenGL 以及 Android API 似乎都无能为力,好在 GitHub 上有人提供了另外一个思路。

    1.5K20

    【Sensors】运动传感器(3)

    在第一种情况下,您正在监视相对于设备参考帧或应用程序参考帧的运动; 在第二种情况下,您正在监视相对于世界参照系的运动。...表1总结了Android平台上可用的运动传感器。 表1. Android平台支持的运动传感器 ? ? ? 1标量组件是一个可选值。 旋转矢量传感器和重力传感器是用于运动检测和监测的最常用的传感器。...(Sensor.TYPE_GRAVITY); 这些单位与加速度传感器(m / s 2)所使用的单位相同,且坐标系与加速度传感器使用的坐标系相同。...参考坐标系被定义为直接标准正交基(见图1)。该坐标系具有以下特征: X被定义为向量乘积Y x Z.它与设备当前位置的地面相切,并且点约为东。 Y在设备当前位置与地面相切,并指向地磁北极。...(Sensor.TYPE_GYROSCOPE); 传感器的坐标系 与用于加速度传感器的坐标系相同。

    2.2K20

    【Cocos2d-x游戏开发】浅谈游戏中的坐标系

    无论是开发2D还是开发3D游戏,首先必须弄清楚坐标系的概念。在Cocos2d-x中,需要了解的有OpenGL坐标系、世界坐标系和节点坐标系。  ...2.OpenGL坐标系   OpenGL坐标系又称为绘图坐标系,Cocos2d-x以OpenGL和OpenGL ES为基础,所以支持的自然是OpenGL坐标系。...而IOS设备的屏幕坐标系(即UI坐标系)默认原点在左上角,X轴向右,Y轴向下(Y轴和OpenGL坐标正好相反)。...3.世界坐标系   世界坐标系又称绝对坐标系,是游戏开发中的概念,它建立了描述其他坐标系所需要的参考标准。我们可以用世界坐标系来描述其他坐标系的位置。   ...Node的position使用的就是父节点的节点坐标系,它和OpenGL坐标系也是一致的,X轴向右,Y轴向上,原点默认在父节点的左下角。

    1.3K40

    Android OpenGL ES开发初探

    而OpenGL ES呢,是OpenGL针对嵌入式设备搞的一个库,所以移动开发上用的基本上就是OpenGL ES了。 二、OpenGL ES的基本使用和一些概念 1....OpenGL中的各种坐标系 1. 屏幕坐标系 众所周知,Android屏幕坐标系是以左上角为原点,横为x轴,竖为y轴。 [屏幕坐标系] 2....顶点坐标系 和屏幕坐标系不太一样,OpenGL的顶点坐标是以中心为原点,横为x轴,竖为y轴,垂直于屏幕为z轴。轴的值范围都在-1, 1这个区间内。据说是做归一化处理,显卡计算起来会比较方便喔。...纹理坐标系 同理,都不一样。OpenGL纹理的坐标系,是以左下角为原点,横为x轴,竖为y轴,轴的值范围都在0, 1这个区间内。...三、总结 OpenGL就是一个画图用的库; 在Android上,OpenGL呈现的载体是GLSurfaceView; 使用shader语言去告诉OpenGL你要干嘛(画在什么位置和填充什么颜色或者纹理)

    1.1K90

    原创 | 《相机标定》深入理解原理与实战(一)

    像素坐标系(Pixel Coords):成像点在相机 sensor 上像素的行数和列数,原点为图像左上角,不带有任何物理单位,或者说单位是 pixel主点:光轴与图像平面的交点为主点,即图1.2中的点...主点:光轴与图像平面的交点为主点,即图1.2中的点 p。 接下来我们建立从真实世界(世界坐标系)中的一点到像素坐标系上对应点的映射,这会涉及四个坐标系之间的三步转换。...图像坐标系的原点在 sensor 的中央,像素坐标系的原点在 sensor 的左上角。图像坐标系的单位是 mm,像素坐标系的单位是 pixel。...他们的之间的转换关系可以表示为: 转换成矩阵表示: (u, v) 即点在像素坐标系中的坐标,即像素的列数、行数。...1.2.2.2 切向畸变 图 1.6: 切向畸变 切向畸变主要发生在相机 sensor 和镜头不平行的情况下,因为有夹角,所以光透过镜头传到图像传感器上时,成像位置发生了变化。

    3.8K20

    Android Camera1中的对焦与测光

    Android Camera1开发系列连载: Android Camera1详解 Android Camera1显示预览的四种方式 对焦模式 在使用特定的对焦模式的时候,必须确保相机支持该模式,相机支持的对焦模式可以通过...如图所示,无论屏幕是横屏还是竖屏,预览视图的中心点坐标都是(0,0),左上角为(-1000,-1000),右下角为(1000,1000) 在计算屏幕坐标系中的UI点击坐标(x,y)到sensor对焦坐标系对焦区域...,不过现在的主流相机app都不会搞这么复杂,比如我手头的iPhone和小米手机的系统相机就没这么多颜色切换 测光 测光的坐标系和使用流程与对焦是一样的,就不具体描述了。...在TouchAF的时候,测光区域可以和对焦区域一样,也可以区域中心点相同,而框的大小不同,或者对焦区域和测光区域设置为不同区域,这种焦侧分离的功能一般都是在相机app中的专业模式中提供。...第三方相机要实现测光方式的选择,除了依赖于厂商提供支持外,其实也可以自己研究一套AE权重表然后利用OpenGL来实现

    1.9K10

    传感器应用开发

    在解释values变量中元素的含义之前,我们先来看一下Android坐标系是如何定义x、y、z轴的。android使用惯性坐标系,所谓惯性坐标系是为了简化世界坐标而引入的一种新的坐标系。...惯性坐标系的原点和物体坐标坐标系原点重合,但惯性坐标系的轴平行于世界坐标系的轴,其中: Ø X轴的方向是沿着屏幕的水平方向从左向右。...假设将手机屏幕朝上水平放在桌子上,这时如果桌子是完全水平的,values[1]的值应该是0(由于很少有桌子是绝对水平的,因此,该值很可能不为0,但一般都是-5和5之间的某个值)。...可以利用values[1]和下面将要介绍到的values[2]的值来实现实训任务3的手机倾斜度的测量 Ø values[2]:表示手机沿Y轴的滚动角度,取值范围在-90~90之间。...:name=​"android.permission.INTERNET"​/>​ 在运行程序之前先启动SensorSimulator的PC客户端和模拟器客户端程序,在两者之间建立连接,之后运行本示例程序

    9710

    Android传感器开发与智能设备案例实战_Android移动应用开发

    在解释values变量中元素的含义之前,我们先来看一下Android坐标系是如何定义x、y、z轴的。android使用惯性坐标系,所谓惯性坐标系是为了简化世界坐标而引入的一种新的坐标系。...惯性坐标系的原点和物体坐标坐标系原点重合,但惯性坐标系的轴平行于世界坐标系的轴,其中: Ø X轴的方向是沿着屏幕的水平方向从左向右。...假设将手机屏幕朝上水平放在桌子上,这时如果桌子是完全水平的,values[1]的值应该是0(由于很少有桌子是绝对水平的,因此,该值很可能不为0,但一般都是-5和5之间的某个值)。...可以利用values[1]和下面将要介绍到的values[2]的值来实现实训任务3的手机倾斜度的测量 Ø values[2]:表示手机沿Y轴的滚动角度,取值范围在-90~90之间。...:name=“android.permission.INTERNET”/> 在运行程序之前先启动SensorSimulator的PC客户端和模拟器客户端程序,在两者之间建立连接,之后运行本示例程序,最后随机移动

    1.4K40

    【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】一、初步了解OpenGL ES

    Android 2.2(API 8)和更高的版本支持这个API规范 3.0:向下兼容 OpenGL ES 2.x。...Android 5.0(API 21)和更高的版本支持这个API规范 2.0 版本是 Android 目前支持最广泛的版本,后续主要以该版本为主,进行介绍和代码编写。...二、OpenGL ES坐标系 在音视频开发中,涉及到的坐标系主要有两个:世界坐标和纹理坐标。...OpenGL ES纹理坐标 纹理坐标,其实就是屏幕坐标,标准的纹理坐标原点是在屏幕的左下方,而Android系统坐标系的原点是在左上方的。这是Android使用OpenGL需要注意的一个地方。...注:坐标系的xy轴方向很重要,决定了如何做顶点坐标和纹理坐标映射。 那么,这两个坐标系究竟有什么关系呢? 世界坐标,是用于显示的坐标,即像素点应该显示在哪个位置由世界坐标决定。

    2K51

    OpenGL ES 投影和坐标

    4.线性代数基础 OpenGL大量使用了向量和矩阵,矩阵的最重要的用途之一就是建立正交和透视投影。...这个位置正是我们所期望和(5,5)。 5.正交投影 要定义正交投影,我们将使用Android的Matrix类,它在android.opengl包中。...这个正交投影矩阵会把所有在左右之间,上下之间和远近之间的事物映射到归一化设备坐标中从-1到1的范围,在这个范围内所有事物在屏幕上都是可见的。 主要的区别就是Z轴有一个负值符号,它的效果是反转Z坐标。...之所以这样完全是历史和传统的原因。 6.左手与右手坐标系统 为了更好的理解Z轴问题,我们需要理解左手坐标系统与右手坐标系统之间的区别。...注意在Android中不只有一个Matrix类,因此你要确保导入了android.opengl.Matrix。 我们首先计算了宽高比,它使用宽和高中的较大值除以宽和高的较小值。

    1K30

    Cocos2d-x-v3坐标体系 原

    二、OpenGL坐标体系         OpenGL坐标系是cocos2d中使用的坐标系,它更接近于数学上的坐标系,即(0,0)点位于屏幕的左下角,往左x增大,往上y增大。...五、坐标系的转换         由于UI坐标系与OpenGL坐标系的差异,在开发中,我们有时需要其两个标准的相互转化,cocos2d中也未我们提供了相应的方法: Vec2 Director::convertToGL...在UI坐标系中,(0,0)点就是节点的左上角,在OpenGL坐标系中,(0,0)点就是节点的左下角。...例如,如果我将锚点设置为(0.5,0.5),则在UI和OpenGL坐标系中,(0,0)点都是节点的中心点。...又如,我将锚点设置为(1,1),则在UI坐标系中,原点为右下角,在OpenGL坐标系中,原点为右上角,锚点的用处就是更改参考点,在另一种情形下,锚点对程序也会产生很大的影响,就是当我们设置一个节点旋转或者缩放时

    44120

    「音视频直播技术」OpenGL渲染之距阵变换

    OpenGLES 在Android下进行视频渲染使用的是 OpenGLES。OpenGLES(OpenGL for Embedded Systems)就是用在嵌入式系统中的 OpenGL。...模型:将要显示的3D物体从模型坐标系变成世界坐标系。 观察:将3D物体从世界坐标系变换成从人眼角度看到物体的坐标系。 投影:就是将3D坐标系换成2D坐标系。也就是3D物理如何在2D平面上展示。...即我们通常说的降维。 下面我们介绍下实现 MVP 转换需要的数学知识。 距阵 在三维图形学用(x,y,z,w)代表一个顶点,它是一个齐次坐标。 其中的 x,y 我们都知道是横轴和纵轴。...距阵的旋转 旋转矩阵比较复杂,绕 X 轴旋转使用的距阵: 绕X轴旋转 绕 Y 轴旋转使用的距阵: 绕Y轴旋转 绕 Z 轴旋转使用的距阵: 绕Y轴旋转 累积距阵变换 前面已经学习了如何旋转、平移和缩放向量...但为了便于我们对图型的理解,这些基础知识还是非常必要的。 参考 齐次坐标。 搞懂 OpenGL 矩阵转换 距阵

    1.1K20
    领券