- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 [SLAM] -- 证明本质矩阵E的内在性质
此博客用于记录平日所学,若博客有描述错误的地方,欢迎指出,另望轻喷,嘻嘻。在求解本质矩阵的时候,往往要分析本质矩阵E的自由度。分析自由度时,往往提到一些本质矩阵的内在性质。根据 E = t^R, 可以证明,本质矩阵E的奇异值必定是 [σ,σ,0]T[\sigma,\sigma,0] ^T[σ,σ,0]T 的形式,这称为本质矩阵的内在性质。该博客要证明的就是这个性质。1. 对EEE的奇异值分解可以由对EETEE^TEET的特征值分解得到2. 步骤故我们的步骤是:(1) 求EETEE^TEET
2020-06-10 23:14:25
2432
7
原创 [SLAM] -- SE(3)上的指数映射和J式的推导
好长时间没有写博客啦,我又回来啦。没记错的话,两三年没写博客了~最近在学习SLAM, 以前学习东西都是囫囵吞枣,遂深刻反思。这篇博客主要关于SE(3)上的指数映射的推导,以及J 的推导。如图所示:(1)先给出SE(3)上的指数映射:书上给的指数映射的式子就是这样,可是式A和式B是咋得到的呢?(2)要证明的就是这个式A(指数映射)和式B(J式):式A的证明:式B(J公式)的证明:...
2020-04-20 23:00:52
2678
9
原创 Android--获得屏幕高宽,屏幕截图(包括或不包括状态栏)
记录下这些常用的方法,方便以后开发使用,贴代码://获得屏幕相关的辅助类public class ScreenUtils{ private ScreenUtils() { /* cannot be instantiated */ throw new UnsupportedOperationException("cannot be instantia
2017-06-13 23:06:14
2684
原创 android 对sqlite数据库的增删改查
一、Android平台下数据库的一些概念Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data//databases/的文件 夹下,一个文件就是一个数据库。2.一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。 3.Sqlite记录没有顺序
2017-06-13 22:50:52
662
原创 Android常用adb命令总结
针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。 一、Android Debug Bridge adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成:
2017-06-13 22:36:21
605
原创 UI设计的20个原则
该博客用于记录。 UI设计的概念侧重在“交互”设计。优秀的UI设计界面,不光是各种元素设计技巧的展现,更重要的是能表现出用户角度的完美“体验感”。1.明确你的用户群 首先要明确一个方向:谁是你的用户群?不同阶层、不同年龄的用户偏重的主题设定和设计元素都不相同,所以UI设计必须是有针对性地设计。2.界面要清晰 清晰度是界面设计中,第一步也是最重要的工作。要想你设计的界面有效并被人喜欢,首先必须让
2017-06-13 21:52:23
12962
原创 Android模拟按键
有时我们需要使用安卓实现在后台模拟系统按键,比如对音量进行调节(模拟音量键),关闭前台正在运行的App(模拟返回键),或者模拟触屏事件。但是对于原生安卓系统而言,后台进程关闭前台进程,甚至模拟用户事件,进而操控整个系统,是不符合系统安全原则的,如果有这样的漏洞被病毒或恶意软件所利用,会非常危险。 由于一些特殊原因,我恰巧需要实现这样的功能,而又没有条件自行编译安卓系统,但是可以利用Root权限,因
2017-06-04 22:02:08
2352
1
原创 NGUI--三种方式监听事件
NGUI是一款跨平台的以Unity为依托的GUI,NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件,提供强大的UI系统和事件通知框架。其代码简洁,多数类少于200行代码。NGUI事件的种类很多,比如点击、双击、拖动、滑动等等。 NGUI导入很简单,可以在 http://download.youkuaiyun.com/download/shisayokoso/9565514
2017-06-03 14:23:52
774
3
原创 可下拉输入框
在登录界面输入用户名的时候,每次输入比较麻烦,于是如果有下拉输入框可选择会比较方便,使用dialog也可以跳出一个框以供选择,但是似乎没有下拉输入框体验号,这只是个细节的部分,于是记录下来方便以后使用自定义适配器package com.sdu.zeng.dropdownedittext;import android.content.Context;import android.view.Lay
2017-05-28 16:55:38
587
原创 Android动态申请权限
参考: http://blog.youkuaiyun.com/lmj623565791/article/details/50709663一、概述对于6.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。而在6.0以后,我们可以直接安装,当app需要我们授予不恰当
2017-05-28 14:32:32
9584
原创 Android之仿IOS悬浮窗
在一些场合里,我们使用悬浮窗会有很大的便利,比如IOS系统的悬浮窗,360或者其他手机卫士的悬浮窗等等。本篇博客,我们创造出两个悬浮窗,通过点击小悬浮窗打开或者关闭大悬浮窗(一个播放控制器)。代码如下:在这之前,我们需要在manifest中申请权限:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />并且,
2017-05-21 22:45:29
3355
原创 Android图表利器-MPAndroidChart
最近需要在Android上将数据展示为图表,偶然间在GitHub上找到一个很不错的Android图表框架,支持柱状图,饼图,曲线图,点的误差图等等等,关键一点,好看!。 闲话少说,先上图(优快云出问题了。。。图片传不上): 本篇博客,我们介绍其中两种:柱状图和饼状图,其他的示例可以查看该大神的GitHub:https://github.com/PhilJay/MPAndroidChart
2017-05-21 21:35:30
2895
原创 移动端数据库神器-Realm 开始代码之旅(入门二)
上一篇我们讲述了如何配置realm,本篇博客我们将开启realm代码之旅。俗话说,无图无真相嘛,一言不合就上图: 再看看我们上篇博客中说到的用chrome查看realm数据库内容: So,我们来看看代码吧: 1、新建两个model类,Person和Pet,继承自RealmObject。Person类:public class Person extends RealmObject {
2017-05-13 22:42:16
1248
原创 移动端数据库神器-Realm 项目配置(入门一)
Realm是一个用来替代sqlite的解决方案,它比sqlite更轻量,同时速度更快,而且使用起来很简单顺手,还跨平台,目前已支持Java,Objective C,Swift,React-Native,Xamarin这五种语言。本篇博客以Android语言为基础,带大家一起探索realm的神奇之处。Realm官网:https://realm.io/工欲善其事,必先利其器。我们在Android Stu
2017-05-13 14:54:02
2194
原创 Ubuntu16.04中安装wineQQ 解决无法显示文字和字体发虚
本来在Ubuntu中用很早之前的QQ国际版用的好好的,可是偏偏跟我说我的QQ不能在旧版本的QQ登录,要我升级,我就很气,linux中没有了交流工具,蓝瘦香菇。。。 决定装wine QQ……一 安装wine先得添加ubuntu-wine/ppa这个官方的源地址 指令是:sudo add-apt-repository ppa:ubuntu-wine/ppa当然,你如果直接开始安装也是可以的,但
2017-01-19 23:29:38
19755
1
原创 KNN--用于手写数字识别(机器学习入门笔记)
最近在看机器学习实战这本书,写下博客作为笔记以帮助记忆。一、K-近邻算法概述概括的说,K-近邻算法采用测量不同特征值之间的距离的方法进行分类。 它的工作原理是:存在一个样本数据集合,也称训练样本集,并且样本集中每个数据存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)
2017-01-13 21:32:12
10600
3
原创 远程DNS缓存攻击__网络攻防实验三
一、实验描述DNS(Domain Name System)是一个多层次的分布式数据库系统,其基本功能是完成域名解析,即提供域名和IP 地址之间的映射关系,为Internet 用户提供便利。DNS 服务器只记录本地资源的所有授权主机,若想查询非本地的主机信息, 则要向信息持有者(权威DNS 服务器)发送查询请求。为了避免每次查询都发送请求,DNS 服务器会把权威DNS 服务器返回的查询结果保存...
2016-12-07 17:28:29
13961
2
原创 TCP/IP攻击实验(ARP,ICMP,SYN,RST,TCP会话劫持)
一、实验背景由于TCP/IP协议是Internet的基础协议,从开始设计的时候并没有考虑到现在网络上如此多的威胁,由此导致了许多形形色色的攻击方法,一般如果是针对协议原理的攻击,尤其DDOS,我们将无能为力。 TCP/IP攻击的常用原理有: (1)源地址欺骗,IP欺骗,DNS欺骗 (2)路由选择信息协议攻击 (RIP Attacks) (3)源路由选择欺骗 (4)TCP序列号欺骗和攻击二、
2016-12-02 15:41:12
22273
2
原创 Tensorflow从文件读取数据
TensorFlow程序读取数据一共有3种方法:供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。使用Tensorflow训练神经网络模型,首先要读...
2016-11-22 19:47:07
40120
原创 图片存储为cifar的Python数据格式
上次我们把用Python实现了cifar数据的可视化,看到了这个cifar数据到底长啥样,cifar数据可视化的链接: http://blog.youkuaiyun.com/zengxyuyu/article/details/53232533 我们用tensorflow可能是想训练自己的图片或者其他数据集,不止局限于cifar数据集,我们应该怎样把图片转成cifar数据集那种二进制并用字典的数据结构存储的...
2016-11-20 13:37:43
6755
2
原创 python实现cifar10数据集的可视化
在学习tensorflow的mnist和cifar实例的时候,官方文档给出的讲解都是一张张图片,直观清晰,当我们看到程序下载下来的数据的时候,宝宝都惊呆了,都是二进制文件,这些二进制文件还不小,用文本编辑器打开看也看不懂,要是将数据再现为图像,多好! (1)下载python版本的cifar数据 先给个cifar数据下载链接:http://www.cs.toronto.edu/~kriz/ci
2016-11-19 18:11:46
17502
5
原创 SEED实验:缓冲区溢出漏洞实验__网络攻防实验
一、实验描述(实验描述属于概况了解,详见实验步骤) 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。 缓冲区溢出攻击是危害最大的攻击方式之一。为 了防止缓冲区溢出攻击,已经研究出了多种保护 机制,比较常用的有:地址空间随机化、禁...
2016-11-13 18:30:35
9881
3
原创 基于matlab的Guass-Seidel(高斯--赛德尔) 迭代法求解线性方程组
Guass-Seidel(高斯–赛德尔) 迭代法(简称 G−S 迭代)是对 Jacobi 迭代的一种改进. 了解G-S迭代法之前先了解什么是Jacobi迭代?链接如下:http://blog.youkuaiyun.com/zengxyuyu/article/details/53054880在Jacobi迭代中,计算次序是x(k+1)1→x(k+1)2→x(k+1)3x_1^{(k+1)}\right
2016-11-06 20:49:44
37840
原创 基于matlab的jacobi(雅可比)迭代法求解线性方程组
考虑线性方程组Ax=bAx = b 其中A为非奇异矩阵,当A为低阶稠密矩阵是,选主元消去法是有效方法。 但对于A 的阶数n很大,零元素较多的大型稀疏矩阵方程组,利用迭代法求解则更为合适。迭代法通常适用于A中有大量零元素的特点。 简单迭代法是究竟是什么呢?给下面这个例子你就懂了 E.G.已知9x2=sinx+19x^2 = sinx+1,在x=0.4x = 0.4附近有根,假定我们已会计算1
2016-11-06 16:14:31
44164
4
原创 基于MATLAB的Cholesky分解法解线性方程组
定理: 若A∈Rn∗n对称正定,则存在一个对角元为正数的下三角矩阵L∈Rn∗n,使得A=LLT成立. A\in {R}^{n*n}对称正定,则存在一个对角元为正数的下三角矩阵 L\in {R}^{n*n},使得A=LL^T 成立. 假设现在要求求解线性方程组AX=B,其中A为对称正定矩阵,那么X可以通过下面步骤求解(1). 求A的Cholesky分解,得到A=LLTA=LL^T (2).
2016-11-06 01:24:23
14158
原创 python之sys.argv 用法解析
在学Python的过程中,常常会遇到sys.argv[],它是什么意思,应该怎么用呢?Sys.argv[]是用来获取命令行参数的,它是个列表.len(sys.argv)得到参数的个数sys.argv[0]获得的是脚本的名字如何使用sys.argv? 下面一个简单的例子1.首先要导入sys模块import sys2.用os.system接收命令行参数import sys,os os.s
2016-11-05 19:19:51
9384
原创 python一行代码解决SyntaxError: Non-ASCII character '\xe4'
python2.7在windows系统上会因编码问题报错(即使只是中文注释),导致程序无法运行,在pycharm上写中文注释会出现下面报错SyntaxError: Non-ASCII character '\xe4' in file sysref.py on line 4, but no encoding declared我们只需要在.py文件的头部加上这样一句话# -*- coding:utf-
2016-11-05 18:42:42
1002
原创 python中if __name__ == "__main__":解释
if __name__ == "__main__":是什么意思呢? 我们可以这样解释: 这个表示执行的是此代码所在的文件。 如果这个文件是作为模块被其他文件调用,不会执行这里面的代码。 只有执行这个文件时, if 里面的语句才会被执行。 这个功能经常可以用于进行测试。 原因是这样的: 我们都知道这样两点 1.Python文件的后缀是.py,是可以直接运行的,也可以作为模块被导入 2.在P
2016-11-04 23:21:53
919
原创 Python 读写文件 中文乱码 错误TypeError: write() argument must be str, not bytes+
今天使用Python向文件中写入中文乱码,代码如下:fo = open("temp.txt", "w+")str = '中文'fo.write(str)fo.close()后来指定写入字符串的编码格式为UTF-8,出现错误TypeError: write() argument must be str, not bytesfo = open("temp.txt", "w+")str = '中文
2016-11-04 20:21:03
50655
4
原创 Java实现的LU分解,高斯消去法求线性方程组的解
LU分解在本质上是高斯消元法的一种表达形式。实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵。这正是所谓的杜尔里特算法(Doolittle algorithm) 重点内容 高斯消去法分为 (1)LU分解 (2)前代 (3)回代实例:题目:a)用高斯消去法解方程组Ax = b,其中 A=⎡⎣⎢⎢24−249−1−2−37⎤⎦⎥⎥ A = \left[
2016-10-18 12:50:59
4292
1
原创 安装Ubuntu16.04后的几件事儿(驱动,搜狗输入法,QQ,修改Ubuntu为mac主题,搭建Java环境)
Ubuntu 官网下载链接 http://www.ubuntu.com/download/desktop ubuntu16.04下载 http://releases.ubuntu.com/16.04.1/ 这篇博客为记忆力不行的自己记录一下 目录: 1.安装无线网卡驱动 2.安装搜狗输入法 3.安装QQ 4.安装pycharm
2016-10-06 01:36:27
1132
转载 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-10-06 00:13:18
365
原创 Windows系统下Python与NumPy的安装
直到写这篇博客为止,Python官网上Python已经发型3.5.2版本,此处带个官网Python下载地址 https://www.python.org/downloads/ download页面下一个是Python最新版本,一个是2.7版本,我一开始下的是2.7版本,为了安装numpy,一般会使用pip来安装,遇到了如下问题:UnicodeDecodeError: 'ascii' codec
2016-10-04 02:12:24
868
原创 Ajax中文乱码解决总结
我使用Ajax传数据常常遇到乱码问题,前端和后台后有可能出现,下面总结一下Ajax传数据可能遇到的问题和解决方案,任何一点都可能造成乱码问题。我使用java servlet写后台,ajax传数据 1.检查IDE的编码, eclipse: 项目,右键,properties->resource->other 选择utf-8 webstorm: 右下角 2.
2016-09-18 11:15:52
1629
原创 <a>标签点击事件
今天发现a标签点击事件一个特殊的地方,记录一下。 我想通过点击导航条更换content里面的内容,点击的时候只有放手的一下content里面的内容改变了,立马又变成了改变之前的样子,但是我尝试用input点击的时候content里面的内容是永久性改变的。 代码如下: html代码:<li><a href="" class="active" id="user-register-click">用户
2016-09-10 23:24:34
1274
原创 Ajax方法
1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。4.as
2016-09-10 22:18:34
401
原创 Ajax提交数据给后台
在HTML中: javascript文件为:RegisterDataPost.js 提交按钮<input type="button" class="templatemo-blue-button" value="Submit" onclick="userRegister()"/>Script:<script type="text/javascript" src="js/RegisterDataPo
2016-09-10 22:11:22
1284
原创 HTML,CSS去除块级元素默认边距
HTML内外边距通常让不同浏览器展现出来的效果不同,所以一般会清除HTML默认内外边距:*{margin: 0px;padding: 0px;border: 0px}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,butto
2016-09-10 14:14:46
11187
原创 如何在eclipse上搭建servlet环境
1.Tomcat下载和安装: 此处带上tomcat官网链接:http://tomcat.apache.org/ 目前tomcat官网已经出了tomcat9了: 你可以先看看你的eclipse支持到tomcat哪个版本: 我使用的是tomcat7版本 下载下来是一个压缩文件,解压缩到D盘(或随意)2.在eclipse中 在eclipse中新建一个Dynamic Web Proj
2016-09-09 18:37:55
930
原创 Unity3D射线检测如何使用Layers和LayerMask
在Unity中用int32数据类型来表示32个Layer层,int32表示二进制一共有32位(0—31)。在Unity中每个GameObject都有Layer属性,默认的Layer都是Default。在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑!如图: 在代码中使用layers时,先了解 按位运算符:左移运算符<<,左移表示乘以2,左移多少位表
2016-09-08 12:57:49
8714
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人