• Scala对象初始化时访问成员的坑

    先看如下代码:

    以doTest为入口,这个程序的输出是: null 和期望不一样啊! 原因是Scala以整个类中的内容为构造方法,执行顺序是从基类到子类。运行method时,obj还没有初始化,于是就返回了null。 因为obj不可变,所以这里也不能直接初始化。真正的解决方法是使用lazy关键字,它可以让成员在第一次使用时被初始化。 […]

  • 里德-所罗门编码(Reed-Solomon Codes)

    简介 里德-所罗门编码是一种纠错码,被广泛使用在通信领域。主要原理是在传输数据的同时,也传输一定量的校验信息,当传输出现少量错误时,可以用这些信息恢复出原信息。 必要知识 群,环,域 参考相关资料,不作详述。 线性分组码 所谓分组,就是将长度待传输串分成个长度的串(),将每个长度的串分进行编码,得到长度编码后的串(),再以一定的规则连接起来进行传输。分组并不是编码的一部分,在编码前可以以任意方式进 […]

  • 反解摄像机的投影矩阵

    最近做实验苦于没有真实数据,以便同实验测量结果对比,计算误差大小。此时有一个想法即是,将实验的场景录制下来,然后从录像中找到对应时刻物体的位置,最终得到真实数据。这时就有一个难题:如何从图像中找到三维的坐标值?显然是不可能的,因为少了一维的数据量嘛。不过,在我们的应用场景下,高度是已知的,所以是二维到二维,完全可以得到。 齐次向量 首先我们需要反解摄像机的投影矩阵,这里有一些线性代数和图形学的知识 […]

  • 二维码的泛滥

    二维码是个好用的东西。有二维码,物理世界和数字世界更方便地联系在了一起。以前,我们得记住一长串的域名,然后将其输入电脑中,才能访问特定网站;而现在只需拿出手机,扫扫二维码就可以了。但是,在二维码进入生活的同时,二维码的滥用现象也越来越明显。 话头先放一边,先讲什么是二维码。二维码的学名为QRCode,翻译为中文便是“快速响应矩阵码”,由黑白方块组成,这些黑白方块中储存着信息。为了能够成功解码,四个 […]

  • 用git布署网站的方法

    大家都知道github提供了搭建静态页面网站的方式,也就是github.io。其使用方式是建一个指定名称的版本库,以版本库的根目录作为网站的根目录。这样做有一些好处,比如很容易实现网站的版本控制,部署起来也相对方便。而且,不光是静态页面,对于一些脚本类网站,这个方式也是很不错的。(jsp就别想了)。 那么如果我有一台服务器(Windows或是Linux),可以用来架设网站,那么是不是也能像gith […]

  • 解决android studio Gradle: 警告:编码 GBK 的不可映射字符的真正方法

    首先,不是网上到处都可搜到的在build.gradle里加入以下语句的方法:

    也不是把Compile改成JavaCompile的版本:

    如果能注意到编译出现的以下信息,并点了More Info的话,就可以进入这个页面,看到答案了。 所以加入以下配置即可: [crayo […]

  • Scala学习(十二)——集合类型

    简介 Java和C++里提供了十分方便的集合类供我们使用,Scala也不例外。 使用Java中的集合类 因为Scala可以直接使用Java库中的类,所以直接使用Java中的集合类也是可以的。用法和Java几乎完全相同:

    但是,如果只是这样的话,就没必要写这篇文章了。Scala也提供了自已的集合类型,相比之下,在Scala中用这些类型 […]

  • Scala学习(十一)——lambda表达式

    简介 lambda表达式是现在非常流行的一种编程特性,其体现了函数式编程的思想。lambda表达式,顾名思义,是一种表达式。和其他表达式不同的地方在于,其返回的是一个函数对象而不是一个数。 基本用法 回顾Scala学习四的“方法”一节,方法的类型同样适合于lambda表达式的类型。而lambda表达式的定义方式和其类型的定义方式比较类似,是参数名列表,=>,函数体: [crayon-5b0b […]

  • Scala学习(十)——作用域和import

    简介 作用域,是几乎所有高级语言都具有的功能。import关键字(或者类似的关键字),是几乎所有面向对象语言必备的功能。毫无疑问,在Java虚拟机上运行的Scala,也具有这两个功能。然而,Scala的import功能并非完全照搬Java的import,其用法和区别将在本节详解。 import语句 Java的import语句放在java文件的起始位置,用于导入类、常量。Scala也有这一功能(Ja […]

  • 从RTSP协议传输的H264视频流中取出每一帧的类型(I、P、B帧)

    RTSP是一个控制协议,其中的数据是用RTP传输的。 RTP使用了UDP,每个UDP包的内容区(没有UDP头)都包含以下的几个部分:

    V: 版本 P: 填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。 X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。 CC: C […]

文章导航