概述
基于前两篇JNI的准备,这次尝试集成一个Opencv的sdk,参照demo实现一个人脸检测功能。人脸检测与人脸识别是两种不同的概念。人脸识别更加复杂,从数据采集到获取样品特征值,里面涉及到的数据处理包含了很多高等数学的概念。希望以后能实现一个吧。
今天主要是实现人脸检测功能。
《JNI(一):基础理论知识》
《JNI(二):环境配置和简单使用》
看下效果
一蓑烟雨任平生
基于前两篇JNI的准备,这次尝试集成一个Opencv的sdk,参照demo实现一个人脸检测功能。人脸检测与人脸识别是两种不同的概念。人脸识别更加复杂,从数据采集到获取样品特征值,里面涉及到的数据处理包含了很多高等数学的概念。希望以后能实现一个吧。
今天主要是实现人脸检测功能。
《JNI(一):基础理论知识》
《JNI(二):环境配置和简单使用》
看下效果
将描述类的数据 从Class文件加载到内存 & 对数据进行校验、转换解析 和 初始化,最终形成:可被虚拟机直接使用的Java使用类型
分为五个步骤:加载 -> 验证 -> 准备 -> 解析 -> 初始化
Java的产生是由javac将.java文件编译成.class文件。.class文件中存放的就是.java文件里的内容。例如:1
2
3
4
5
6public class Demo{
private int m;
public int inc(){
reture m+1;
}
}
将上面定义的Demo.java(源文件)通过javac编译成.class文件,然后用16进制文本打开.class文件,文本里显示的是十六进制的符号内容。这段符号的组成是遵守着虚拟机的规范的。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18C38AC3BEC2BAC2BE2020203320130A20
04200F09200320100720110720120120
016D012001490120063C696E69743E01
2003282956012004436F646501200F4C
696E654E756D6265725461626C650120
03696E6301200328294901200A536F75
72636546696C6501200944656D6F2E6A
6176610C200720080C20052006012004
44656D6F0120106A6176612F6C616E67
2F4F626A656374202120032004202020
01200220052006202020022001200720
08200120092020201D20012001202020
052AC2B72001C2B120202001200A2020
20062001202020012001200B200C2001
20092020201F20022001202020072AC2
B420020460C2AC20202001200A202020
062001202020042001200D2020200220
0E
但是这些十六进制符号内容代表的是什么意思呢?
如果我们再用javap -verbose来反编译查看一下