关键帧

WPF学习(12)动画

一曲冷凌霜 提交于 2020-01-30 19:20:51
本篇来学习WPF的动画。什么是动画?动画就是一系列帧。在WPF中,动画就是在一段时间内修改依赖属性值的行为,它是基于时间线Timeline的。有人会说,要动画干嘛,华而不实,而且添加了额外的资源消耗而影响性能。尽管如此,适当的使用动画却可以使你的程序富有更好的表现力和交互性。更加可喜的是,WPF提供了丰富的动画支持,大部分的动画都可以直接通过XAML来呈现而不用去写繁琐的cs代码。在System.Windows.Media.Animation命名空间中,我们发现了许多的类,大体可归类为这么三种:基于线性内插算法动画(简单动画)、基于KeyFrame动画和基于路径动画。下面来分别介绍这三种动画: 首先以图来说明类的继承层次: 这张粗糙的图只是以Double类型的动画为例,因为它是比较全的,全面提到的三种动画类它都具备。支持KeyFrame的类型最多,其次是线性内插,最后是路径,只有三种,除了Double外,还有Matrix和Point。 1.基于线性内插算法动画(简单动画) 基于线性内插动画是在一个开始值到一个结束值之间以逐步增加的方式来改变属性值。有这么几个重要的属性: From:开始值,当忽略该属性时,动画默认从其使用者属性值开始,所以其使用者属性在执行动画前要被赋值 To:结束值,当忽略该属性时,动画默认从其使用者属性值结束,所以其使用者属性在执行动画前要被赋值 By:递增值

手写字文字动画

感情迁移 提交于 2020-01-27 02:32:20
1、打开AE,新建一个合成,命名为手写字。 2、在合成中添加一个文字层,输入文字,这里以爱情e加e这几个字为例,字体选择有拐角比较圆滑的字体为宜 3、使用钢笔工具根据文字画写遮罩,注意遮罩不要闭合 4、给文字层添加“描边”,设置参数如图,并尽可能的让白色遮挡住文字 5、在描边结束处打上关键帧,并将开始值设置为零 6、然后将时间线向后挪动一秒之后,将结束值变成一百,如下图所示,调整好关键帧的速度,这样文字手写的效果就完成了 来源: CSDN 作者: 学做视频的小萌新 链接: https://blog.csdn.net/qq_46039993/article/details/103748837

VINS-mono详细解读

本小妞迷上赌 提交于 2020-01-20 03:58:54
VINS-mono详细解读 极品巧克力 前言 Vins-mono是香港科技大学开源的一个VIO算法, https://github.com/HKUST-Aerial-Robotics/VINS-Mono ,是用紧耦合方法实现的,通过单目+IMU恢复出尺度,效果非常棒。 感谢他们开源,我从中学到了非常多的知识。源码总共有15000多行,我在通读完程序之后,结合参考文献,把程序背后的算法理论都推导了一遍,总结成了本文,与各位分享。 本文目标读者:对vins-mono有一定了解的SLAM算法工程师。由于程序里有非常多的实现细节,建议读者在读本文前,先读一遍vins-mono的程序。 1.特征点跟踪 首先用 cv::goodFeaturesToTrack 在第一帧图像上面找最强的150个特征点,非极大值抑制半径为30。新的特征点都有自己的新的对应的id。然后在下一帧过来时,对这些特征点用光流法进行跟踪,在下一帧上找匹配点。然后对前后帧中这些匹配点进行校正。先对特征点进行畸变校正,再投影到以原点为球心,半径为1的球面上,再延伸到深度归一化平面上,获得最终校正后的位置。对于每对匹配点,基于校正后的位置,用F矩阵加ransac来筛选。然后再在匹配上的特征点之外的区域,用 cv::goodFeaturesToTrack 搜索最强的新的特征点,把特征点数量补上150个。 最后,把剩下的这些特征点

ORB-SLAM学习(1)—— Tracking线程

故事扮演 提交于 2020-01-19 04:48:26
ORB-Slam的线程启动写在System类的构造函数,Tracking,LocalMapping和LoopClosing三个线程在System函数中启动,其中Tracking运行在主线程中。线程启动后,ORBSlam2再通过调用TrackMonocular(im,tframe)将图像传给Tracking线程,而TrackMonocular函数中调用了Tracking类的GrabImageMonocular(im,timestamp),才真正进入Tracking的图像处理过程。 代码架构 Tracking线程函数主要功能和流程 orb-slam做匹配的过程用的都ORB特征描述子。先在8层图像金字塔中,提取FAST特征点。提取特征点的个数根据图像分辨率不同而不同,高分辨率的图像提取更多的角点。然后对检测到的特征点用ORB来描述,用于之后的匹配和识别。跟踪这部分主要用了几种模型:运动模型(Tracking with motion model)、关键帧(Tracking with reference keyframe)和重定位(Relocalization)。 运动模式 TrackWithMotionModel 先通过上一帧的位姿和速度预测当前帧相机的位姿。 通过PnP方法估计相机位姿,在将上一帧的地图点投影到当前固定大小范围的帧平面上,如果匹配点少,那么扩大两倍的采点范围

ORB-SLAM2 论文笔记

会有一股神秘感。 提交于 2020-01-10 01:54:57
单目相机具有成本低,设置简单的优点,但是同样存在尺度不确定、初始化需要足够视差,最终造成尺度漂移、无法处理纯旋转等问题。 ORB-SLAM2为SLAM的发展作出了以下几个贡献: 1.这是第一个同时提供单目,双目和RGB-D接口的SLAM开源系统,并且包含回环检测,重定位和地图重用。 2.通过BA对RBG-D进行优化,效果优于state-of-the-art的ICP或photometric and depth error minimization 3.通过使用近距离和远距离的双目点以及单目观测,使得其双目的精确度要高于state-of-the-art的直接使用双目的SLAM系统 4.通过禁用建图来实现利用已有地图,进行轻量级的定位。 ORB-SLAM2的框架和ORB-SLAM的框架几乎是一模一样的,包含了三个线程:Tracking,Local Mapping和Loop Closing。主要的区别还是在对于双目相机和RBG-D相机前端,是如何进行追踪并构建后端优化问题的。因此与ORB-SLAM相同的部分就不再赘述,详细可参考上一篇关于ORB-SLAM论文的博客。 A.Monocular, Close Stereo and Far Stereo Keypoints ORB-SLAM2是基于特征的SLAM系统,因此当从输入的图像中提取特征之后,图像不需要被保存而是直接丢弃,因此可以说ORB

iOS基础 - 核心动画

可紊 提交于 2020-01-06 05:03:08
一、核心动画 l 核心动画基本概念 l 基本动画 l 关键帧动画 l 动画组 l 转场动画 l Core Animation 是一组非常强大的动画处理 API ,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! l 使用它需要先添加 QuartzCore.framework 和引入对应的框架 <QuartzCore/QuartzCore.h> l 开发步骤 : 初始化一个动画对象 (CAAnimation) 并设置一些动画相关属性 CALayer 中很多属性都可以通过 CAAnimation 实现动画效果,包括: opacity 、 position 、 transform 、 bounds 、 contents 等(可以在 API 文档中搜索: CALayer Animatable Properties ) 添加动画对象到层( CALayer )中,开始执行动画 通过调用 CALayer 的 addAnimation:forKey 增加动画到层( CALayer )中,这样就能触发动画了。通过调用 removeAnimationForKey 可以停止层中的动画 Core Animation 的动画执行过程都是在后台操作的,不会阻塞主线程 二、CAAnimation ——简介 l 是所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类

011-iOS核心动画(Core Animation)

夙愿已清 提交于 2020-01-06 05:02:49
简介 问题一:什么是核心动画(Core Animation)? •Core Animation是非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h> •CALayer中很多属性都可以通过CAAnimation实现动画效果,包括:opacity、position、transform、bounds、contents等(可以在API文档中搜索:CALayer Animatable Properties) •通过调用CALayer的 addAnimation:forKey 增加动画到层(CALayer)中,这样就能触发动画了。通过调用 removeAnimationForKey 可以 停止层中的动画 •Core Animation的动画执行过程都是在 后台操作 的, 不会阻塞主线程 问题二:开发步骤 ①初始化一个动画对象(CAAnimation)并设置一些动画相关属性 ②添加动画对象到层(CALayer)中,开始执行动画 ①CAAnimation 问题一:简述 所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类 CAAnimation继承结构 注意 :上图中的黑色虚线代表”继承”某个类,红色虚线代表

iOS_核心动画(二)

这一生的挚爱 提交于 2020-01-06 05:02:29
目  录: 一、Core Animation开发步骤 二、Core Animation的继承结构 三、CAAnimation常用的属性 四、CAPropertyAnimation(属性动画) 五、CABasicAnimation(基本动画) 六、CAKeyframeAnimation(关键帧动画) 七、CAAnimationGroup(动画组) 八、CATransition(转场动画)    上节中分享了核心动画的基础部分CALayer,知道了核心动画的操作对象不是UIView,而是基于CALayer。今天来看下Core Animation如何实现动画效果的。   Core Animation是一组非常强大的动画处理API,使用它能我们可以做出非常炫丽的动画效果,而且往往是事半功倍!不过在iOS 7之前使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h>。Core Aaimation在创建动画上不仅简单,而且具有更好的性能,原因有两个:    (1)动画在单独的线程中完成,不会阻塞主线程。   (2)动画只会重绘界面上变化的部分(部分刷新)。 一、Core Animation开发步骤   Core Animation开发步骤,大致划分两步:   1.初始化一个动画对象(CAAnimation

iOS核心动画高级技巧-4

梦想与她 提交于 2019-12-29 22:24:36
8. 显式动画 显式动画 如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆 上一章介绍了隐式动画的概念。隐式动画是在iOS平台创建动态用户界面的一种直接方式,也是UIKit动画机制的基础,不过它并不能涵盖所有的动画类型。在这一章中,我们将要研究一下显式动画,它能够对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动。 8.1 属性动画 属性动画 CAAnimationDelegate 在任何头文件中都找不到,但是可以在 CAAnimation 头文件或者苹果开发者文档中找到相关函数。在这个例子中,我们用 -animationDidStop:finished: 方法在动画结束之后来更新图层的 backgroundColor 。 当更新属性的时候,我们需要设置一个新的事务,并且禁用图层行为。否则动画会发生两次,一个是因为显式的 CABasicAnimation ,另一次是因为隐式动画,具体实现见订单8.3。 一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:1012951431, 分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。 清单8.3 动画完成之后修改图层的背景色 @implementation ViewController - (void)viewDidLoad { [super

泡泡机器人,ORB_SLAM2介绍

醉酒当歌 提交于 2019-12-28 00:27:22
ORB-SLAM2:一种开源的VSLAM方案 泡泡机器人 泡泡机器人SLAM 2017-07-03 泡泡机器人翻译作品 原文:ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras 作者: Raúl Mur-Artal and Juan D. Tardós 翻译:韩昊旻 审核:郑卓祺 编辑:徐武民 周平 欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权 摘要 ORB-SLAM2是基于单目,双目和RGB-D相机的一套完整的SLAM方案。它能够实现地图重用,回环检测和重新定位的功能。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2都能够在标准的CPU上进行实时工作。ORB-SLAM2在后端上采用的是基于单目和双目的光束法平差优化(BA)的方式,这个方法允许米制比例尺的轨迹精确度评估。此外,ORB-SLAM2包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域并且匹配特征点。 我们用29个广泛使用的公共数据测试的结果显示,在大多数情况下,本文方案比此前方案精度更高,此外,我们开源了ORB-SLAM2源代码,不仅仅是为了整个SLAM领域,同时也希望能够为其他领域研究者提供一套SLAM的解决方案。 I