surface

https://editor.csdn.net/md/?articleId=105854228

情到浓时终转凉″ 提交于 2020-04-30 12:57:27
@ TOC 介绍 简介   HwCameraKit为开发者提供了一套兼容EMUI的相机能力开放接口,开发者可以通过HwCameraKit使自己的应用快速接入华为相机的私有能力,扩展应用的拍摄功能,为用户提供更好拍摄体验。   人像模式为HwCameraKit开放的多种相机模式其中之一,它将允许您: 获取华为相机的人像拍摄能力,包括背景虚化、环境光、瘦脸,皮肤光滑、调色等能力; 提供相机模式高级编程接口,简化相机应用开发,并借助IDE工具快速接入上述能力。 关于本次CodeLab 你将建立什么   在本次CodeLab中,您将使用HwCameraKit建立一款Android相机应用程序,使其可以获得华为相机的人像拍摄功能,实现人像的虚化、美肤等效果。 普通拍摄(左) VS 人像模式开启虚化(右) 你会学到什么 使用HwCameraKit IDE高效集成华为相机开放能力 熟悉HwCameraKit基本开发模式 你需要什么 硬件要求 开发计算机(台式机或笔记本电脑) 操作系统为EMUI10.0及以上版本的华为手机 软件要求 JAVA JDK安装包 Android SDK包 HwCameraKit IDE工具:DevEco 申请Camera相关权限 Duration: 0:05   1. 在工程的Manifest文件中添加相关权限: <uses-permission android

<老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么

烂漫一生 提交于 2020-04-30 04:16:36
_________________________________________________________________________________________________ The support-vector mechine is a new learning machine for two-group classification problems. The machine conceptually implements the following idea: input vectors are non-linearly mapped to a very high-dimension feature space. In this feature space a linear decision surface is constructed. Special properties of the decision surface ensures high generalization ability of the learning machine. The idea behind the support-vector network was previously implemented for the restricted case where the

Android SurfaceView 堆叠展示问题探讨

◇◆丶佛笑我妖孽 提交于 2020-04-28 12:34:06
问题说明: 一般在音视频开发中,我们会使用SurfaceView进行视频画面的展示。当场景中有多个SurfaceView的时候,会出现展示内容的堆叠覆盖,导致我们本想看到的内容被遮挡。 一、SurfaceView 简介 SurfaceView是View的子类,它内嵌了一个专门用于绘制的Surface,你可以控制这个Surface的格式和尺寸,Surfaceview控制这个Surface的绘制位置。Surface是纵深排序(Z-ordered)的,说明它总在自己所在窗口的后面。SurfaceView提供了一个可见区域,只有在这个可见区域内的surface内容才可见。surface的排版显示受到视图层级关系的影响,它的兄弟视图结点会在顶端显示。这意味者 surface的内容会被它的兄弟视图遮挡,这一特性可以用来放置遮盖物(overlays)(例如,文本和按钮等控件)。 二、解决方案 在SurfaceView onAttachedToWindow之前调用如下设置: surfaceView.setZOrderMediaOverlay( true ); 在onViewAttachedToWindow的时候,调用如下设置: surfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT); 三、核心API方法描述 public void

基于Kinect 2.0深度摄像头的三维重建

情到浓时终转凉″ 提交于 2020-04-26 15:42:40
刚今天验收的实验,记录一下。 是比较基础的三维重建内容。 算是三维重建入门。 系统: windows 环境: visual studio 2013 语言: c++ 相关: OpenCV 2、Kinect SDK 2.0、PCL库 内容:   使用Kinect 2.0拍摄获取深度图,将彩色图与深度图配准生成点云;   然后每次拍摄得到的点云用ICP算法进行融合,形成完整点云(每次拍摄仅做微小偏移);   之后稍微对点云做了些许处理;   还添加了回档的功能; 声明:   有挺多借鉴博客与参考资料的,太多懒得写,假装忘了~ 原理:(以下不对变量作用作解释,具体可参照变量名猜测,完整代码最后给出)    流程图如下   1.关于彩色图与深度图的配准,官方文档给出了如下3个坐标系:   Kinect中总共有着3种坐标空间:     1.相机空间(Camera space):拥有三个坐标轴,假设kinect面朝正前方,那么X轴向左递增,Y轴向上递增,Z轴向前递增。     2.深度空间(Depth space):拥有三个坐标轴,其中x、y分别是深度图中像素的位置,z轴为像素的深度值。     3.色彩空间(Color space):拥有两个坐标轴,其中x、y分别是彩色图像中像素的位置。   由此,如果知道参数其实自己也能算,但是kinect事实上已经给出了函数。如下图所示  

PCB genesis识别邮票孔开通窗实现方法

元气小坏坏 提交于 2020-04-26 05:31:55
介绍一种常规的genesis识别邮票孔开通窗实现方法 一.需求:识别邮票孔并开通窗 二. 常见的 几种 邮票孔类型 三.邮票孔有哪些特征 1. 邮票孔属性是NPTH无铜孔(non_plated) 2. 邮票孔与邮票孔间距常规<=0.5mm 3.邮票孔与外形间距<=0.5mm 4.邮票孔个数 通常>=3个 (也存在1个或2个邮票孔的情况) 5.邮票孔与邮票孔间距步长公差不超过0.2mm 6.邮票孔与邮票孔角度步长公差不超过0.2度 7.邮票孔3点最大角>150度(此规则是对第6条特征补充,当邮票孔刚好只有3个孔的时候,可以用角度来判断是否邮票孔) 四.代码实现(跟据定义的邮票孔特征来代码实现) /// <summary> /// 从钻孔层中获取邮孔并创建新层 /// </summary> /// <param name="DrillLayer"> 钻孔层名 </param> /// <param name="RoutLayer"> 外形层名 </param> /// <param name="StampHoleLayer"> 邮票孔创建层名 </param> /// <param name="StampHoleUpVal"> 邮票最大间距 </param> /// <param name="Ang_Tol"> 允许角度公差 </param> /// <param name="Di

android6.0 SystemUi分析

微笑、不失礼 提交于 2020-04-24 03:10:35
android6.0 SystemUi分析 http://www.jianshu.com/p/28f1954812b3 前言 状态栏与导航栏属于SystemUi的管理范畴,虽然界面的UI会受到SystemUi的影响,但是,APP并没有直接绘制SystemUI的权限与必要。APP端之所以能够更改状态栏的颜色、导航栏的颜色,其实还是操作自己的View更改UI。可以这么理解:状态栏与导航栏拥有自己独立的窗口,而且这两个窗口的优先级较高,会悬浮在所有窗口之上,可以把系统自身的状态栏与导航栏看做全透明的,之所以会有背景颜色,是因为下层显示界面在被覆盖的区域添加了颜色,之后,通过SurfaceFlinger的图层混合,好像是状态栏、导航栏自身有了背景色。看一下一个普通的Activity展示的时候,所对应的Surface(或者说Window也可以)。如下Surface图: 第一个XXXXActivity,大小是屏幕大小 第二个状态栏StatusBar,大小对应顶部那一条 第三个是底部虚拟导航栏NavigationBar,大小对应底部那一条 HWC_FRAMEBUFFER_TARGET:是合成的目标Layer,不参与合成 从上表可以看出,虽然只展示了一个Activity,但是同时会有StatusBar、NavigationBar

直播客户端的渲染与展示技术

我的未来我决定 提交于 2020-04-23 12:17:12
今天给大家介绍一下在Android系统下视频如何渲染与展示。 图玩智能科技为企业提供直播平台的二次开发服务,欢迎随时咨询www.toivan.com.我们都知道一个直播客户端对音视频的处理主要由以下几大部分组成:1. 数据采集; 2. 编码; 3. 传输; 4. 解码;5.渲染与展示。 今天讲的就是渲染与展示。 说到展示部分就不得不说 View。View 表示屏幕上的一块矩形区域,负责绘制这个区域和事件处理。Andorid系统提供了几种不同的View用于视频的展示,它们分别是 SurfaceView, GLSurfaceView 和 TextureView。 Surface 是个啥? 在比较各种 View 之前,我们有必要先了解一下 Surface 和 SurfaceHolder 的概念。 Surface Surface 可以把它理解为一个Buffer,它是一块屏幕缓冲区。每个Window(窗口)对应一个Surface,任何View都是画在Surface上的。 Surface 是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。Surfaceview 提供了一个可见区域,只有在这个可见区域内的Surface部分内容才可见,可见区域外的部分不可见。 传统的View共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行。由于UI线程是主线程

视频直播Android端H264编码

余生颓废 提交于 2020-04-21 22:23:06
今天图玩智能为大家介绍一下音视频直播技术中的视频编码。我们为企业提供直播平台二次开发服务,搭建更完善的直播系统,欢迎随时咨询 www.toivan.com 在移动端通过Camera采集到视频数据后,我们不会直接将它发送出去。因为采集后的视频数据量非常大,比如 1280x720 分辨率的一帧数据,就有可能达到6M大小(码率越高,图像越清晰)。这6M数据如果送到网上传输,会给网络带来非常大的负担。 另外,人眼对图像的识别是有限的。拿手机屏幕来说,1K屏与2K屏对于人眼来说是看不出来它们之间的区别的,视频也是同样的道理。基于以上理论,就有了视频的压缩编码技术,通过对视频的有损压缩来达到减少数据大小的目的。 目前视频缩码最常用的是 H264。其它的还有 H265,VP8, VP9等,但用的人还比较少。 编码结构与方式 在Android系统下视频编码有硬编和软编两种方式。顾名思义,硬编是通过手机提供的硬件模块进行编码;软编就是通过软件程序进行编码。硬编的好处是编码快,不占用CPU资源。缺点是Android机型比较多,坑也比较多。软编正好与硬编相反,它的优点是无论什么机型都一样处理。缺点则是占用大量CPU资源。我们今天介绍的是硬件编码。 如何获取Camera中采集到的数据 从Camera获取视频数据有两种方式,一种是通过向Camera设置预览Callback来读取原始数据

我的电脑不联网,很安全,黑客:你还有风扇呢

穿精又带淫゛_ 提交于 2020-04-21 12:14:58
从1988年第一个网络蠕虫病毒诞生以来,「互联网危机四伏」的观念就已经深入人心。如果只是这样,不给电脑联网、禁止使用任何可移动储存介质,数据就安全了吗?但专门研究黑客攻击技术的研究者告诉我们,这个想法太天真了。他们用实验证明,即使不联网,机箱里的风扇也能泄露你的机密信息。 机器之心报道,参与:张倩、蛋酱、杜伟。 这项研究的作者 Mordechai Guri 来自以色列本·古里安大学。在最近发表的一篇论文中,他提出了一种名为 AiR-ViBeR 的数据窃取技术。令人颇为震惊的是,这种技术的「窃取」方式是借助电脑内部的风扇振动。 简单地说,这一攻击分为三个步骤。首先,利用植入电脑中的恶意软件来控制风扇转速,以此来调节电脑产生的机械振动,数据会被编码到这些振动中;接下来,将智能手机放置在电脑桌上或靠近电脑主机的其他位置,手机中的加速度传感器可以用来收集振动信号;最后,通过 app 解码获取的信号。 过去五年来,Mordechai Guri 一直致力于找到一种让不联网的计算机向外界发送数据,但又不被发现的方法。AiR-ViBeR 是他设计的一堆稀奇古怪方法里最新的一种。 这项研究非常重要,因为那些存储了机密文件和知识产权的政府和公司内网,如今会面临着被攻破的危险。 这之前,Guri 教授的团队还提出过很多种从未联网计算机中窃取数据的方法,比如: LED-it-Go:通过硬盘驱动器的 LED

How to plot a slicing plane with a surface with “matplotlib” in python

被刻印的时光 ゝ 提交于 2020-04-18 02:58:16
问题 I wonder how to create two slicing planes with a surface to two 2d figures. For example, I created a surface as below: from mpl_toolkits.mplot3d import Axes3D from matplotlib import pyplot as plt import numpy as np def f(x1, x2): return 0.5 * x1 + 0.6 * x2 + 0.2 * x1 * x1 + 0.1 * x1 * x2 + 0.3 * x2 * x2 + 4 x = np.linspace(-3, 3, 100) y = np.linspace(-3, 3, 100) xx, yy = np.meshgrid(x,y) z = f(xx, yy) # set up the figure fig = plt.figure() ax = fig.gca(projection='3d') ax.set_xlim(-3, 3) ax