指纹的三种类型是什么?如何计算和统计纹嵴数
指纹有3种基本类型——斗型、弓型和箕型。
斗型:同心圆或螺旋纹线,看上去像水中漩涡的。
弓型:纹形像弓一样。
箕型:纹线是一边开口的,就像簸箕似的。
弓形纹,像个弓一样的
大概分为以下三大类:
(一)弓状纹。
(二)蹄状纹。
(三)涡状纹。
而这三大类又可细分为十一类。
(一)弓状纹:普通弓状纹(图1) 突起弓状纹(图2)
(二)蹄状纹:甲种蹄状纹(图3) 乙种蹄状纹(图4)
(三)涡状纹:纯涡状纹 (图5) 环状纹 (图6)
蹄状纹:双重蹄状纹(图7) 双胎蹄状纹(图8)
有胎蹄状纹(图9)
混合纹 (图10) 变体纹 (图11)
国内 先进 指纹技术 指纹算法 有哪些公司?哪个公司的指纹算法是自己研发的?
我知道的国内 的公司 有自己指纹算法的 长沙双安信息科技有限公司 网址: 联系电话:0731-82526735 双安公司于2010年2月24日向 博罗格纳大学 (意大利)FVC-Oning 测评机构提交了指纹技术进行评测。
截止至2010年2月24日共有125个单位已参加评测,其中包括46家分布于世界各地的指纹技术公司。
一共有257个指纹算法进行了测试。
双安 信息科技有限公司的指纹算法的精度在所有参加测评的257个算法中排名第一。
算法名称:EMB9200 主要指标如下: EPR:0.216% FMR1000:0.269% FMR10000:0.440% 其中指标FMR10000最有意义,是最接近实际应用的测评指标!
如何获取数字证书(x509Certificate)中的指纹算法?
创建X509证书方法较多,在Windows 环境下大致总结了几中办法,
1) 通过CA获取证书,
2) 通过微软提供的makecert 工具得到测试证书
3) 编程的方法创建,.Net提供了 X509Certificate2 类,该类可以用于创建证书,但只能从RawData中创建,创建后无法修改除FriendlyName以外的任何属性。
我在互联网上找了很久,始终没有找到完全通过程序创建自定义的证书的方法。
后来想了一个折中办法,就是用程序调用 makecert.exe 先生成一个证书,证书的一些参数如Subject,有效期,序列号等可以通过参数传入,然后把生成的证书文件读到Rawdata中,得到X509Certificate2 类型的证书对象。
当然这种方法确实比较笨,必须要依赖外部进程。
等后面有时间的话,我还是想按照X509 V3 标准,自己创建RawData,然后生成证书,这样应该是比较灵活的做法。
不知道网友们有没有什么更好的方法来创建一个自定义的证书。
通过 makecert.exe 创建X509证书的代码如下,供大家参考
static object semObj = new object();
///
/// 自定义的证书信息
///
public class T_CertInfo
{
public String FriendlyName;
public String Subject;
public DateTime BeginDate;
public DateTime EndDate;
public int SerialNumber;
}
///
/// 生成X509证书
///
///
makecert进程的目录
///
证书文件临时目录
///
证书信息
///
public static X509Certificate2 CreateCertificate(String makecrtPath, String crtPath,
T_CertInfo certInfo)
{
Debug.Assert(certInfo != null);
Debug.Assert(certInfo.Subject != null);
string MakeCert = makecrtPath + "makecert.exe";
string fileName = crtPath + "cer";
string userName = Guid.NewGuid().ToString();
StringBuilder arguments = new StringBuilder();
arguments.AppendFormat("-r -n "{0}" -ss my -sr currentuser -sky exchange ",
certInfo.Subject);
if (certInfo.SerialNumber > 0)
{
arguments.AppendFormat("-# {0} ", certInfo.SerialNumber);
}
arguments.AppendFormat("-b {0} ", certInfo.BeginDate.ToString(@"MM/dd/yyyy"));
arguments.AppendFormat("-e {0} ", certInfo.EndDate.ToString(@"MM/dd/yyyy"));
arguments.AppendFormat(""{0}"", fileName);
指纹的识别原理
指纹识别
读取指纹图象、提取特征、保存数据和比对。
在一开始,通过指纹读取设备读取到人体指纹的图象,取到指纹图象之后,要对原始图象进行初步的处理,使之更清晰。
接下来,指纹辨识软件建立指纹的数字表示——特征数据,一种单方向的转换,可以从指纹转换成特征数据但不能从特征数据转换成为指纹,而两枚不同的指纹不会产生相同的特征数据。
有的算法把节点和方向信息组合产生了更多的数据,这些方向信息表明了各个节点之间的关系,也有的算法还处理整幅指纹图像。
总之,这些数据,通常称为模板,保存为1K大小的记录。
无论它们是怎样组成的,至今仍然没有一种模板的标准,也没有一种公布的抽象算法,而是各个厂商自行其是。
最后,通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。
指纹其实是比较复杂的。
与人工处理不同,许多生物识别技术公司并不直接存储指纹的图象。
多年来在各个公司及其研究机构产生了许多数字化的算法(美国有关法律认为,指纹图象属于个人隐私,因此不能直接存储指纹图象)。
指纹识别算法最终都归结为在指纹图象上找到并比对指纹的特征。
指纹的特征我们定义了指纹的两类特征来进行指纹的验证:总体特征和局部特征。
总体特征是指那些用人眼直接就可以观察到的特征,包括:基本纹路图案环型(loop),弓型(arch),螺旋型(whorl)。
其他的指纹图案都基于这三种基本图案。
仅仅依靠图案类型来分辨指纹是远远不够的,这只是一个粗略的分类,但通过分类使得在大数据库中搜寻指纹更为方便。
(PatternArea)模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹是属于那一种类型的。
有的指纹识别算法只使用模式区的数据。
Aetex的指纹识别算法使用了所取得的完整指纹而不仅仅是模式区进行分析和识别。
核心点(CorePoint)核心点位于指纹纹路的渐进中心,它用于读取指纹和比对指纹时的参考点。
三角点(Delta)三角点位于从核心点开始的第一个分叉点或者断点、或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。
三角点提供了指纹纹路的计数和跟踪的开始之处。
式样线(TypeLines)式样线是在指包围模式区的纹路线开始平行的地方所出现的交叉纹路,式样线通常很短就中断了,但它的外侧线开始连续延伸。
(RidgeCount)指模式区内指纹纹路的数量。
在计算指纹的纹数时,一般先在连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。
局部特征局部特征是指指纹上的节点。
两枚指纹经常会具有相同的总体特征,但它们的局部特征--节点,却不可能完全相同节点(MinutiaPoints)指纹纹路并不是连续的,平滑笔直的,而是经常出现中断、分叉或打折。
这些断点、分叉点和转折点就称为节点。
就是这些节点提供了指纹唯一性的确认节点特性
1.分类-节点有以下几种类型,最典型的是终结点和分叉点
A.终结点(Ending)--一条纹路在此终结。
B.分叉点(Bifurcation)--一条纹路在此分开成为两条或更多的纹路。
C.分歧点(RidgeDivergence)--两条平行的纹路在此分开。
D.孤立点(DotorIsland)--一条特别短的纹路,以至于成为一点
E.环点(Enclosure)--一条纹路分开成为两条之后,立即有合并成为一条,这样形成的一个小环称为环点
F.短纹(ShortRidge)--一端较短但不至于成为一点的纹路,
2.方向(Orientation)--节点可以朝着一定的方向。
3.曲率(Curvature)--描述纹路方向改变的速度。
4.位置(Position)--节点的位置通过(x,y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。
从“指纹”到“指纹术”的研究,经历了漫长的过程。
指纹技术形成之后,又经过了从人工识别技术到自动化识别技术的发展转变。
随着计算机图像处理技术和信息技术的发展,指纹识别技术逐渐进入IT技术领域,与众多计算机信息系统结合在一起,广泛应用起来。