NBIS指纹特征提取与匹配软件使用
1. docker 创建虚拟centos 环境
2. docker 安装wget 工具
3.wget下载源代码 wget http://nigos.nist.gov:8080/nist/nbis/nbis_v5_0_0.zip
4. centos 安装unzip解压 yum install unzip -y
5. centos 安装make cmake 等 yum install cmake -y
6. 运行自带的配置文件sh setup.sh <FINAL INSTALLATION DIR> [--without-X11] sh setup.sh /nbis --without-X11
7. 执行以下命令构建:
% make config
% make it
% make install
% make catalog
在 /nbis 目录下可以看到安装的命令:
[root@f97d15c8731a bin]# ls
an2k2iaf asc2bin chgdesc cjpeg cmbmcs datainfo djpeg djpeglsd dwsq14 fixwts intr2not lintran mkoas mlpfeats not2intr optrws rdimgwh rgb2ycc stackms wrwsqcom znormpat
an2k2txt bin2asc chkan2k cjpegb cropcoeff diffbyts djpegb dlwsqcom eva_evt histogen jpegtran meancov mktran nfiq oas2pics optrwsgw rdjpgcom rwpics txt2an2k ycc2rgb
an2ktool bozorth3 cjp2k cjpegl cwsq djp2k djpegl dwsq fing2pat iaf2an2k kltran mindtct mlp nfseg optosf pcasys rdwsqcom sd_rfmt wrjpgcom znormdat
8.上传指纹图像数据库
打开docker cli 客户端
执行命令:
PS C:\Program Files\Docker Toolbox> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f97d15c8731a centos:latest "/bin/bash" 3 hours ago Up 2 hours centos
docker cp 'C:\project source file\data hiding in fingerprint minutiae replicate\FVC2002_db1_a.rar' f97d15c8731a:/FVC2002_db1_a.rar
在容器中查看:
[root@f97d15c8731a /]# ll
total 100440
-rw-r--r-- 1 root root 11970 Jan 7 16:59 anaconda-post.log
lrwxrwxrwx 1 root root 7 Jan 7 16:58 bin -> usr/bin
drwxr-xr-x 5 root root 360 Feb 27 04:59 dev
drwxr-xr-x 61 root root 4096 Feb 27 05:06 etc
-rwxr-xr-x 1 root root 50174028 Feb 27 04:20 FVC2002_db1_a.rar
9.解压文件
rar 安装使用
Linux 系统下使用 rarlinux 解压缩 rar 压缩文件,下载页面:http://www.rarsoft.com/download.htm。
1.1 下载系统对应的版本
1
|
$ wget http://www.rarsoft.com/rar/rarlinux-x64-5.4.0.tar.gz
|
1.2 解压、安装
1
2
3
|
$ tar -zxvf rarlinux-x64-5.4.0.tar.gz
$ cd rar
$ make
|
看见下面这些信息就是安装成功了:
1
2
3
4
5
|
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
|
1.3 常用 rar 命令
1
2
|
$ rar x centos.rar # 解压 centos.rar 到当前目录
$ rar centos.rar ./piaoyi.org/ # 将 piaoyi.org 目录打包为 centos.rar
|
1.4 常见错误原因分析
1.4.1 如果在运行命令 rar 时, 出现下面这个问题
1
|
rar: /lib/i686/nosegneg/libc.so.6: version 'GLIBC_2.7' not found (required by rar)
|
解决办法:
1
|
$ cp rar_static /usr/local/bin/rar
|
1.4.2 使用 rar 的时候出现错误
1
|
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
|
因为 64 位系统中安装了 32 位程序,解决方法:
1
|
$ yum install glibc.i686
|
1.4.3 重新安装 glibc.i686 以后还有如下类似错误
1
|
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
|
再继续安装包:
1
|
$ yum install libstdc++.so.6
|
执行rar x FVC2002_db1_a.rar
[root@f97d15c8731a db1_a]# ls
100_1.tif 13_2.tif 17_1.tif 21_2.tif 25_1.tif 2_8.tif 33_1.tif 3_6.tif 41_1.tif 4_4.tif 48_8.tif 5_2.tif 56_8.tif 60_8.tif 64_8.tif 68_7.tif 72_8.tif 76_7.tif 80_7.tif 84_7.tif 88_6.tif 92_7.tif 96_6.tif
100_2.tif 13_3.tif 17_2.tif 21_3.tif 25_2.tif 29_1.tif 33_2.tif 37_1.tif 41_2.tif 45_1.tif 4_8.tif 53_1.tif 5_6.tif 61_1.tif 6_4.tif 68_8.tif 7_2.tif 76_8.tif 80_8.tif 84_8.tif 88_7.tif 92_8.tif 96_7.tif
100_3.tif 13_4.tif 17_3.tif 21_4.tif 25_3.tif 29_2.tif 33_3.tif 37_2.tif 41_3.tif 45_2.tif 49_1.tif 53_2.tif 57_1.tif 61_2.tif 65_1.tif 6_8.tif 73_1.tif 7_6.tif 81_1.tif 8_4.tif 88_8.tif 9_2.tif 96_8.tif
100_4.tif 13_5.tif 17_4.tif 21_5.tif 25_4.tif 29_3.tif 33_4.tif 37_3.tif 41_4.tif 45_3.tif 49_2.tif 53_3.tif 57_2.tif 61_3.tif 65_2.tif 69_1.tif 73_2.tif 77_1.tif 81_2.tif 85_1.tif 8_8.tif 93_1.tif 9_6.tif
100_5.tif 13_6.tif 17_5.tif 21_6.tif 25_5.tif 29_4.tif 33_5.tif 37_4.tif 41_5.tif 45_4.tif 49_3.tif 53_4.tif 57_3.tif 61_4.tif 65_3.tif 69_2.tif 73_3.tif 77_2.tif 81_3.tif 85_2.tif 89_1.tif 93_2.tif 97_1.tif
100_6.tif 13_7.tif 17_6.tif 21_7.tif 25_6.tif 29_5.tif 33_6.tif 37_5.tif 41_6.tif 45_5.tif 49_4.tif 53_5.tif 57_4.tif 61_5.tif 65_4.tif 69_3.tif 73_4.tif 77_3.tif 81_4.tif 85_3.tif 89_2.tif 93_3.tif 97_2.tif
100_7.tif 13_8.tif 17_7.tif 21_8.tif 25_7.tif 29_6.tif 33_7.tif 37_6.tif 41_7.tif 45_6.tif 49_5.tif 53_6.tif 57_5.tif 61_6.tif 65_5.tif 69_4.tif 73_5.tif 77_4.tif 81_5.tif 85_4.tif 89_3.tif 93_4.tif 97_3.tif
100_8.tif 1_3.tif 17_8.tif 2_1.tif 25_8.tif 29_7.tif 33_8.tif 37_7.tif 41_8.tif 45_7.tif 49_6.tif 53_7.tif 57_6.tif 61_7.tif 65_6.tif 69_5.tif 73_6.tif 77_5.tif 81_6.tif 85_5.tif 89_4.tif 93_5.tif 97_4.tif
10_1.tif 14_1.tif 1_7.tif 22_1.tif 2_5.tif 29_8.tif 3_3.tif 37_8.tif 4_1.tif 45_8.tif 49_7.tif 53_8.tif 57_7.tif 61_8.tif 65_7.tif 69_6.tif 73_7.tif 77_6.tif 81_7.tif 85_6.tif 89_5.tif 93_6.tif 97_5.tif
10_2.tif 14_2.tif 18_1.tif 22_2.tif 26_1.tif 30_1.tif 34_1.tif 3_7.tif 42_1.tif 4_5.tif 49_8.tif 5_3.tif 57_8.tif 6_1.tif 65_8.tif 69_7.tif 73_8.tif 77_7.tif 81_8.tif 85_7.tif 89_6.tif 93_7.tif 97_6.tif
10_3.tif 14_3.tif 18_2.tif 22_3.tif 26_2.tif 30_2.tif 34_2.tif 38_1.tif 42_2.tif 46_1.tif 50_1.tif 54_1.tif 5_7.tif 62_1.tif 6_5.tif 69_8.tif 7_3.tif 77_8.tif 8_1.tif 85_8.tif 89_7.tif 93_8.tif 97_7.tif
10_4.tif 14_4.tif 18_3.tif 22_4.tif 26_3.tif 30_3.tif 34_3.tif 38_2.tif 42_3.tif 46_2.tif 50_2.tif 54_2.tif 58_1.tif 62_2.tif 66_1.tif 70_1.tif 74_1.tif 7_7.tif 82_1.tif 8_5.tif 89_8.tif 9_3.tif 97_8.tif
10_5.tif 14_5.tif 18_4.tif 22_5.tif 26_4.tif 30_4.tif 34_4.tif 38_3.tif 42_4.tif 46_3.tif 50_3.tif 54_3.tif 58_2.tif 62_3.tif 66_2.tif 70_2.tif 74_2.tif 78_1.tif 82_2.tif 86_1.tif 90_1.tif 94_1.tif 9_7.tif
10_6.tif 14_6.tif 18_5.tif 22_6.tif 26_5.tif 30_5.tif 34_5.tif 38_4.tif 42_5.tif 46_4.tif 50_4.tif 54_4.tif 58_3.tif 62_4.tif 66_3.tif 70_3.tif 74_3.tif 78_2.tif 82_3.tif 86_2.tif 90_2.tif 94_2.tif 98_1.tif
10_7.tif 14_7.tif 18_6.tif 22_7.tif 26_6.tif 30_6.tif 34_6.tif 38_5.tif 42_6.tif 46_5.tif 50_5.tif 54_5.tif 58_4.tif 62_5.tif 66_4.tif 70_4.tif 74_4.tif 78_3.tif 82_4.tif 86_3.tif 90_3.tif 94_3.tif 98_2.tif
10_8.tif 14_8.tif 18_7.tif 22_8.tif 26_7.tif 30_7.tif 34_7.tif 38_6.tif 42_7.tif 46_6.tif 50_6.tif 54_6.tif 58_5.tif 62_6.tif 66_5.tif 70_5.tif 74_5.tif 78_4.tif 82_5.tif 86_4.tif 90_4.tif 94_4.tif 98_3.tif
11_1.tif 1_4.tif 18_8.tif 2_2.tif 26_8.tif 30_8.tif 34_8.tif 38_7.tif 42_8.tif 46_7.tif 50_7.tif 54_7.tif 58_6.tif 62_7.tif 66_6.tif 70_6.tif 74_6.tif 78_5.tif 82_6.tif 86_5.tif 90_5.tif 94_5.tif 98_4.tif
11_2.tif 15_1.tif 1_8.tif 23_1.tif 2_6.tif 31_1.tif 3_4.tif 38_8.tif 4_2.tif 46_8.tif 50_8.tif 54_8.tif 58_7.tif 62_8.tif 66_7.tif 70_7.tif 74_7.tif 78_6.tif 82_7.tif 86_6.tif 90_6.tif 94_6.tif 98_5.tif
11_3.tif 15_2.tif 19_1.tif 23_2.tif 27_1.tif 31_2.tif 35_1.tif 3_8.tif 43_1.tif 4_6.tif 51_1.tif 5_4.tif 58_8.tif 6_2.tif 66_8.tif 70_8.tif 74_8.tif 78_7.tif 82_8.tif 86_7.tif 90_7.tif 94_7.tif 98_6.tif
11_4.tif 15_3.tif 19_2.tif 23_3.tif 27_2.tif 31_3.tif 35_2.tif 39_1.tif 43_2.tif 47_1.tif 51_2.tif 55_1.tif 5_8.tif 63_1.tif 6_6.tif 71_1.tif 7_4.tif 78_8.tif 8_2.tif 86_8.tif 90_8.tif 94_8.tif 98_7.tif
11_5.tif 15_4.tif 19_3.tif 23_4.tif 27_3.tif 31_4.tif 35_3.tif 39_2.tif 43_3.tif 47_2.tif 51_3.tif 55_2.tif 59_1.tif 63_2.tif 67_1.tif 71_2.tif 75_1.tif 7_8.tif 83_1.tif 8_6.tif 91_1.tif 9_4.tif 98_8.tif
11_6.tif 15_5.tif 19_4.tif 23_5.tif 27_4.tif 31_5.tif 35_4.tif 39_3.tif 43_4.tif 47_3.tif 51_4.tif 55_3.tif 59_2.tif 63_3.tif 67_2.tif 71_3.tif 75_2.tif 79_1.tif 83_2.tif 87_1.tif 91_2.tif 95_1.tif 9_8.tif
11_7.tif 15_6.tif 19_5.tif 23_6.tif 27_5.tif 31_6.tif 35_5.tif 39_4.tif 43_5.tif 47_4.tif 51_5.tif 55_4.tif 59_3.tif 63_4.tif 67_3.tif 71_4.tif 75_3.tif 79_2.tif 83_3.tif 87_2.tif 91_3.tif 95_2.tif 99_1.tif
11_8.tif 15_7.tif 19_6.tif 23_7.tif 27_6.tif 31_7.tif 35_6.tif 39_5.tif 43_6.tif 47_5.tif 51_6.tif 55_5.tif 59_4.tif 63_5.tif 67_4.tif 71_5.tif 75_4.tif 79_3.tif 83_4.tif 87_3.tif 91_4.tif 95_3.tif 99_2.tif
1_1.tif 15_8.tif 19_7.tif 23_8.tif 27_7.tif 31_8.tif 35_7.tif 39_6.tif 43_7.tif 47_6.tif 51_7.tif 55_6.tif 59_5.tif 63_6.tif 67_5.tif 71_6.tif 75_5.tif 79_4.tif 83_5.tif 87_4.tif 91_5.tif 95_4.tif 99_3.tif
12_1.tif 1_5.tif 19_8.tif 2_3.tif 27_8.tif 3_1.tif 35_8.tif 39_7.tif 43_8.tif 47_7.tif 51_8.tif 55_7.tif 59_6.tif 63_7.tif 67_6.tif 71_7.tif 75_6.tif 79_5.tif 83_6.tif 87_5.tif 91_6.tif 95_5.tif 99_4.tif
12_2.tif 16_1.tif 20_1.tif 24_1.tif 2_7.tif 32_1.tif 3_5.tif 39_8.tif 4_3.tif 47_8.tif 5_1.tif 55_8.tif 59_7.tif 63_8.tif 67_7.tif 71_8.tif 75_7.tif 79_6.tif 83_7.tif 87_6.tif 91_7.tif 95_6.tif 99_5.tif
12_3.tif 16_2.tif 20_2.tif 24_2.tif 28_1.tif 32_2.tif 36_1.tif 40_1.tif 44_1.tif 4_7.tif 52_1.tif 5_5.tif 59_8.tif 6_3.tif 67_8.tif 7_1.tif 75_8.tif 79_7.tif 83_8.tif 87_7.tif 91_8.tif 95_7.tif 99_6.tif
12_4.tif 16_3.tif 20_3.tif 24_3.tif 28_2.tif 32_3.tif 36_2.tif 40_2.tif 44_2.tif 48_1.tif 52_2.tif 56_1.tif 60_1.tif 64_1.tif 6_7.tif 72_1.tif 7_5.tif 79_8.tif 8_3.tif 87_8.tif 9_1.tif 95_8.tif 99_7.tif
12_5.tif 16_4.tif 20_4.tif 24_4.tif 28_3.tif 32_4.tif 36_3.tif 40_3.tif 44_3.tif 48_2.tif 52_3.tif 56_2.tif 60_2.tif 64_2.tif 68_1.tif 72_2.tif 76_1.tif 80_1.tif 84_1.tif 8_7.tif 92_1.tif 9_5.tif 99_8.tif
12_6.tif 16_5.tif 20_5.tif 24_5.tif 28_4.tif 32_5.tif 36_4.tif 40_4.tif 44_4.tif 48_3.tif 52_4.tif 56_3.tif 60_3.tif 64_3.tif 68_2.tif 72_3.tif 76_2.tif 80_2.tif 84_2.tif 88_1.tif 92_2.tif 96_1.tif Thumbs.db
12_7.tif 16_6.tif 20_6.tif 24_6.tif 28_5.tif 32_6.tif 36_5.tif 40_5.tif 44_5.tif 48_4.tif 52_5.tif 56_4.tif 60_4.tif 64_4.tif 68_3.tif 72_4.tif 76_3.tif 80_3.tif 84_3.tif 88_2.tif 92_3.tif 96_2.tif
12_8.tif 16_7.tif 20_7.tif 24_7.tif 28_6.tif 32_7.tif 36_6.tif 40_6.tif 44_6.tif 48_5.tif 52_6.tif 56_5.tif 60_5.tif 64_5.tif 68_4.tif 72_5.tif 76_4.tif 80_4.tif 84_4.tif 88_3.tif 92_4.tif 96_3.tif
1_2.tif 16_8.tif 20_8.tif 24_8.tif 28_7.tif 32_8.tif 36_7.tif 40_7.tif 44_7.tif 48_6.tif 52_7.tif 56_6.tif 60_6.tif 64_6.tif 68_5.tif 72_6.tif 76_5.tif 80_5.tif 84_5.tif 88_4.tif 92_5.tif 96_4.tif
13_1.tif 1_6.tif 21_1.tif 2_4.tif 28_8.tif 3_2.tif 36_8.tif 40_8.tif 44_8.tif 48_7.tif 52_8.tif 56_7.tif 60_7.tif 64_7.tif 68_6.tif 72_7.tif 76_6.tif 80_6.tif 84_6.tif 88_5.tif 92_6.tif 96_5.tif
10. linux下ImageMagick安装和使用
检查系统有无安装ImageMagick
shell> rpm -qa | grep ImageMagick
没有就开始安装ImageMagick
shell> rpm -Uvh ImageMagick-6.3.4-10.i386.rpm
或者
shell> yum install ImageMagick
11. 获取细节点信息
[root@f97d15c8731a nbis]# ./bin/mindtct 100_1.jpg ./100_1_m.jpg
[root@f97d15c8731a nbis]# ll
total 408
-rw-r--r-- 1 root root 35980 Feb 27 08:01 100_1.jpg
-rw-r--r-- 1 root root 145112 Feb 27 08:05 100_1_m.jpg.brw
-rw-r--r-- 1 root root 6956 Feb 27 08:05 100_1_m.jpg.dm
-rw-r--r-- 1 root root 6956 Feb 27 08:05 100_1_m.jpg.hcm
-rw-r--r-- 1 root root 6956 Feb 27 08:05 100_1_m.jpg.lcm
-rw-r--r-- 1 root root 6956 Feb 27 08:05 100_1_m.jpg.lfm
-rw-r--r-- 1 root root 5995 Feb 27 08:05 100_1_m.jpg.min
-rw-r--r-- 1 root root 6956 Feb 27 08:05 100_1_m.jpg.qm
-rw-r--r-- 1 root root 684 Feb 27 08:05 100_1_m.jpg.xyt
-rw-r--r-- 1 root root 145624 Feb 27 08:00 100_1.tif
vi 100_1_m.jpg.xyt
75 319 225 10
83 264 67 11
91 283 56 25
101 243 79 57
111 218 101 54
112 118 349 11
113 312 45 27
113 136 326 26
131 168 315 56
143 176 135 57
166 350 11 55
166 127 0 52
168 145 169 59
170 154 349 67
177 194 157 31
184 148 0 66
185 268 124 13
189 332 349 58
202 253 304 16
204 248 304 18
204 209 34 40
208 175 202 68
212 24 0 10
215 62 191 36
217 234 67 33
225 88 191 51
231 202 56 53
236 323 135 58
236 236 90 58
236 34 11 7
237 65 11 33
249 277 112 52
255 167 202 62
262 217 101 32
268 234 112 51
273 106 202 26
274 360 135 6
274 185 22 12
277 124 22 26
280 140 202 11
288 308 124 11
293 156 11 26
303 192 326 14
304 165 0 35
304 118 22 5
309 146 0 25
315 233 315 11
339 259 304 10
格式:
TEXT OUTPUT FILES
<oroot>.dm
The Direction Map represents the direction of ridge flow within the fingerprint image. The map contains a grid of integer directions, where each cell in the grid represents an 8x8 pixel neighborhood in the image.
Ridge flow angles are quantized into 16 integer bi-directional units equally spaced on a semicircle. Starting with vertical direction 0, direction units increase clockwise and represent incremental jumps of 11.25
degrees, stopping at direction 15 which is 11.25 degrees shy of vertical. Using this scheme, direction 8 is horizontal. A value of -1 in this map represents a neighborhood where no valid ridge flow was determined.
<oroot>.hcm
The High-Curvature Map represents areas in the image having high-curvature ridge flow. This is especially true of core and delta regions in the fingerprint image, but high-curvature is not limited to just these
cases. This is a bi-level map with same dimension as the Direction Map. Cell values of 1 represent 8x8 pixel neighborhoods in the fingerprint image that are located within a high-curvature region, otherwise cell
values are set to 0.
<oroot>.lcm
The Low-Contrast Map represents areas in the image having low-contrast. The regions of low contrast most commonly represent the background in the fingerprint image. This is a bi-level map with same dimension as the
Direction Map. Cell values of 1 represent 8x8 pixel neighborhoods in the fingerprint image that are located within a low-contrast region, otherwise cell values are set to 0.
<oroot>.lfm
The Low-Flow Map represents areas in the image having non-determinable ridge flow. Ridge flow is determined using a set of discrete cosine wave forms computed for a predetermined range of frequencies. These wave
forms are applied at 16 incremental orientations. At times none of the wave forms at none of the orientations resonate sufficiently high within the region in the image to satisfactorily determine a dominant direc‐
tional frequency. This is a bi-level map with same dimension as the Direction Map. Cell values of 1 represent 8x8 pixel neighborhoods in the fingerprint image that are located within a region where a dominant direc‐
tional frequency could not be determined, otherwise cell values are set to 0. The Direction Map also records cells with non-determinable ridge flow. The difference is that the Low-Flow Map records all cells with
non-determinable ridge flow, while the Direction Map records only those that remain non-determinable after extensive interpolation and smoothing of neighboring ridge flow directions.
<oroot>.qm
The Quality Map represents regions in the image having varying levels of quality. The maps above are combined heuristically to form 5 discrete levels of quality. This map has the same dimension as the Direction Map,
with each value in the map representing an 8x8 pixel neighborhood in the fingerprint image. A cell value of 4 represents highest quality, while a cell value of 0 represent lowest possible quality.
<oroot>.xyt
This text file reports the minutiae detection results. This reports only the x,y coordinates, theta, and quality of the minutie points for the image. Each line in this file contains the space delimited information
for one minutiae point. The <oroot>.xyt is the minutiae format used by the bozorth3 matching algorithm.
<oroot>.min
This text file reports the minutiae detection results. The majority of the results listed in this text file are also encoded and stored in a Type-9 record in the output ANSI/NIST file. The first non-empty line in
the text file lists the number of minutiae that were detected in the fingerprint image. Following this, the attributes associated with each detected minutia are recorded, one line of text per minutia. Each minutia
line has the same format. Fields are separated by a ':', subfields are separated by a ';', and items within subfields are separated by a ','. A minutia line may be represented as:
MN : MX, MY : DIR : REL : TYP : FTYP : FN : NX1, NY1; RC1 : ...
where:
MN is the integer identifier of the detected minutia.
MX is the x-pixel coordinate of the detected minutia.
MY is the y-pixel coordinate of the detected minutia.
DIR is the direction of the detected minutia. Minutia direction is represented similar to ridge flow direction, only minutia direction is uni-directional starting at vertical pointing up with unit 0 and increasing
clockwise in increments of 11.25 degrees completing a full circle. Using this scheme, the angle of a detected minutia is quantized into the range 0 to 31 with 8 representing horizontal to the right, 16 repre‐
senting vertical pointing down, and 24 representing horizontal to the left.
REL is the reliability measure assigned to the detected minutia. This measure is computed by looking up the quality level associated with the position of the minutia from the Quality Map. The quality level is
then heuristically combined with simple neighborhood pixel statistics surrounding the minutia point. The results is a floating point value in the range 0.0 to 1.0, with 0.0 representing lowest minutia quality
and 1.0 representing highest minutia quality.
TYP is the type of the detected minutia.
bifurcation = "BIF"
ridge ending = "RIG"
FTYP is the type of feature detected.
appearing = "APP"
disappearing = "DIS"
(This attribute is primarily useful for purposes internal to the minutia detection algorithm.)
FN is the integer identifier of the type of feature detected. (This attribute is primarily useful for purposes internal to the minutia detection algorithm.)
NX1 is the x-pixel coordinate of the first neighboring minutia.
NY1 is the y-pixel coordinate of the first neighboring minutia.
RC1 is the ridge count calculated between the detected minutia and its first neighbor.
... for each additional neighbor ridge count computed, the pixel coordinate of the neighbor and the ridge count to that neighbor are reported.
[root@f97d15c8731a nbis]# cat bozorth3.help.txt
BOZORTH3(1E) NBIS Reference Manual BOZORTH3(1E)
NAME
bozorth3 - Computes match scores between fingerprints
SYNOPSIS
bozorth3 [options] probe-file.xyt gallery-file.xyt ...
bozorth3 [options] -M mates.lis
bozorth3 [options] -P probe.lis gallery*.xyt
bozorth3 [options] -G gallery.lis probe*.xyt
bozorth3 [options] -p probe-file.xyt gallery*.xyt
bozorth3 [options] -p probe-file.xyt -G gallery.lis
bozorth3 [options] -g gallery-file.xyt probe*.xyt
bozorth3 [options] -g gallery-file.xyt -P probe.lis
DESCRIPTION
The program bozorth3 computes match scores from fingerprint minutiae files. The files are expected to be in xyt-format, a simple text file format that is produced by the minutiae detector program mindtct, which is also part
of the NFIS distribution.
By default, each pair of arguments on the command line is considered to be a probe file and a gallery file, in that order, that are to be matched to yield a score of similarilty. The higher the score, the more closely the
minutiae in them match. The match score for known mates is often close to the number of minutiae in the probe or gallery file, but it can be lower or higher than that number, sometimes much higher.
There are two main mechanisms that allow running the bozorth3 matcher other than by simply specifying pairs of xyt-files on the command line. The mechanisms are useful or necessary under several circumstances. For example,
with large data sets, the number of pairs of files to be matched could easily exceed the maximum size the user's shell permits on a command line, or that's permitted by exec*() system calls. And there are cases where it's
just more logical to have input filenames stored in a file. So one mechanism uses list files — they contain xyt-filenames, one per line, with newline characters as line-endings. The other mechanism fixes the probe (or
gallery) file for an entire run, so that the filename doesn't have to be specified over and over again.
One form of the list file mechanism allows the pairs of files to be read from a single file. The -M mates.lis option requires a single list file of filenames to be matched against each other. The probe filenames are on the
odd lines, and the gallery filenames are on the even lines.
Similarly, the -P probes.lis option specifies that the probe filenames are in the file, and the gallery filenames come from the command line. The -G gallery.lis option specifies just the opposite. Both options may be
present, in which case all filenames will be read from the two files, and there will be no xyt-files on the command line.
The other subset of mechanisms fix a single file to be matched against a gallery (or probe) set of any size. For example, -p probe-file fixes the probe file for the entire run; it will be matched against a gallery consisting
of all other files on the command line (or, if -G gallery.lis is specified, against a gallery read from a file).
The -g gallery-file option specifies just the opposite. While it may seem illogical to reverse the notion of probe and gallery files by allowing a single gallery file to be compared against a probe set, it's allowed both for
consistency and to make it easier to test how close scores are when the files are matched in reverse order.
Fixing both the probe and gallery file is legal, but it's equivalent to having just a single pair of filenames on the command line without the -p and -g.
The score for a probe file a matched to a gallery file b is often identical to the score for b matched to a. One one data set, the scores were the same more than 75% of the time, and only a very small number were different
by more than 3.
Minutiae file format
Each line in a minutiae file contains three integers, representing the x- and y-coordinates and direction of the minutiae, and an optional fourth column of integers representing the quality of the minutiae at those coordi‐
nates. If the quality column isn't present in a file, all minutiae are assumed to be of the same quality.
A finger typically has 40-80 minutiae. Any automated minutiae extractor will, of course, flag some things as minutiae that aren't. To work with highly sensitive minutiae detectors such as mindtct, the bozorth3 matcher allows
each xyt-file to contain as many as 1000 minutiae lines. However, by default, only the 150 highest-quality minutiae are used to compute the match score. That number may be changed to any number from 0 to 200. If multiple
minutiae have the same quality value at the cut-off point, the tie-breaking method is simple truncation of the list, sorted by quality but with an undefined sort order among its equal-quality elements.
The optimal number of minutiae that should be used depends on the fingerprint images and the minutiae detector that processes them. Using more than is necessary typically reduces the accuracy of the matcher and increases its
run time.
To compute a match score between two fingerprints, both sets must have at least a minimum number of minutiae. That number is 10 by default, and can be changed to any non-zero integer. Otherwise the computation returns a
match score of 0.
OPTIONS
The command line options can be logically grouped into four classes:
General options
-h Print a help screen detailing the command line options.
-version
Print ANSI/NIST stardand and NBIS software version.
-v Enable verbose mode.
-A verbose=<section>
Enable verbose mode in a section of the code; the recognized sections are: main, load, bozorth, threshold.
Input options
-m1 all xyt files use representation according to ANSI INCITS 378-2004. This flag must be used if it was used by the mindtct algorithm when extracting the minutiae points.
-n max-minutiae
Set maximum number of minutiae to use from any file [150]; the legal range is [0,200].
-A minminutiae=#
Set minimum number of minutiae required for the match score to be more than 0 [10].
-A maxfiles=#
Set maximum number of files in any gallery, probe, or mates list file [10000].
-A plines=#-#
Process a subset of files in the probe file.
-A glines=#-#
Process a subset of files in the gallery file.
-A dryrun
Test mode only. Do not compute and print any match scores, just print the filenames between which match scores would be computed.
Thresholding options
-T threshold
Set match score threshold. By default, all match scores are printed. However, when a threshold specified, only match scores meeting or exceeding that value are printed.
-q Quit processing the probe file when a gallery file is found for which the match score meets or exceeds the specified threshold.
Output options
-A nooutput
Compute match scores, but don't print them.
-A outfmt=[spg]*
Output lines will contain (s)core, (p)robe and/or (g)allery filename. By default, only scores are output.
-O score-dir
Set the directory to write score files in.
-o score-file
Set the filename to store scores in.
-e stderr-file
Set the filename to store all other output in.
-b Use the default Standard I/O buffering to print the match scores. This is equivalent to line-buffering when the output is being printed to a terminal, and to block-buffering when the output is being printed to a file.
-l Use line-buffering to print the match scores. By default, output lines are stored and printed just prior to the bozorth3 exiting.
SEE ALSO
mindtct (1C)
12. 转换图片为jpg格式 获取细节点
for file in /home/db1_a/*
do
if test -f $file
then
echo "${file##*/}"
convert $file "/home/db1_a_jpg/${file##*/}.jpg"
/home/nbis/bin/mindtct "/home/db1_a_jpg/${file##*/}.jpg" "/home/db1_a_extract/${file##*/}.jpg"
fi
done
NBIS指纹特征提取与匹配软件使用的更多相关文章
- Opencv Sift算子特征提取与匹配
SIFT算法的过程实质是在不同尺度空间上查找特征点(关键点),用128维方向向量的方式对特征点进行描述,最后通过对比描述向量实现目标匹配. 概括起来主要有三大步骤: 1.提取关键点: 2.对关键点附加 ...
- 关于Web应用和容器的指纹收集以及自动化软件的制作
一次对Web应用的渗透,九成都是从信息收集开始,所以信息收集就显得尤为重要.关键信息的收集可以使你在后期渗透的时候更加的得心应手,把渗透比喻成走黑暗迷宫的话,那信息收集可以帮你点亮迷宫的大部分地图. ...
- OPENCV中特征提取和匹配的步骤
1.定义特征提取器和描述子提取器: cv::Ptr<cv::FeatureDetector> detector; cv::Ptr<cv::DescriptorExtractor> ...
- ORB特征提取与匹配
ORB特征是目前最优秀的特征提取与匹配算法之一,下面具体讲解一下: 特征点的检测 图像的特征点可以简单的理解为图像中比较显著显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等.ORB采用FAST ...
- Opencv Surf算子特征提取与最优匹配
Opencv中Surf算子提取特征,生成特征描述子,匹配特征的流程跟Sift是完全一致的,这里主要介绍一下整个过程中需要使用到的主要的几个Opencv方法. 1. 特征提取 特征提取使用SurfFea ...
- sift、surf、orb 特征提取及最优特征点匹配
目录 sift sift特征简介 sift特征提取步骤 surf surf特征简介 surf特征提取步骤 orb orb特征简介 orb特征提取算法 代码实现 特征提取 特征匹配 附录 sift si ...
- 位置指纹(LF)定位技术简介-室内定位
信号的多径传播对环境具有依赖性,呈现出非常强的特殊性.对于每个位置而言,该位置上信道的多径结构是惟一的,终端发射的无线电渡经过反射和折射,产生与周围环境密切相关的特定模式的多径信号,这样的多径 ...
- paper 1:图像特征提取
特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连 ...
- 【转】opencv检测运动物体的基础_特征提取
特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连 ...
随机推荐
- Java-Class-I:java.util.Map
ylbtech-Java-Class-I:java.util.Map 1.返回顶部 1.1. import java.util.HashMap; import java.util.Map; 1.2. ...
- Openstack Nova 源码分析 — Create instances (nova-conductor阶段)
目录 目录 前言 Instance Flavor Instance Status Virt Driver Resource Tracker nova-conductor Create Instance ...
- 记录一次像github开源项目提交pull request(Hexo Next)
文章目录 背景 fork到自己github 像往常一样的操作 克隆到本地 与上游建立连接 创建分支 修改项目代码 收尾工作 提交pull request 个人博客:https://mmmmmm.me ...
- hexo next主题深度优化(四),自定义一个share功能,share.js。
文章目录 背景: 开始: 引入资源: 代码 关键的一步 附:方便学习的小demo 一次成功后还出现上面的bug 结束 2018.12.23发现bug(读者可忽略) 个人博客:https://mmmmm ...
- RTC, Real Time Clock
配置 写入RTC_PRL, RTC_CNT, RTC_ALR寄存器时,需要先进入配置模式,通过把RTC_CRL寄存器的CNF位置一. 另外,在每次配置一个寄存器时必须等待上一次配置完成,可以通过检测R ...
- java could not open `C|D|E|F:\jre\lib\amd64\jvm.cfg' 解决方案与原因
因为安装了 jdk 后发现有多个 jre 一个是安装目录下的. 还有一个是安装后的自动安装的注意路径都不一样. 由于本人有强迫症所有不能容忍有两个 jre 目录的存在,所以果断删除了 D 盘下的.谨慎 ...
- jquery下拉框应用
<!DOCTYPE html> <html lang="en"> <head> <script src="http://code ...
- GetOpenFilename的基本用法(文件夹实操)
Sub 数据导入()Dim f, arr, i&, j&, k, m%, n%, p%, sh As Workbookf = Application.GetOpenFilename(f ...
- Leetcode211. Add and Search Word - Data structure design 添加与搜索单词 - 数据结构设计
设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a- ...
- boost multi_index 插入返回值
boost multi_index 对象插入函数emplace() 的返回值,是一个std::pair<iterator, bool>该pair 的first 是一个插入成功的位置,第二个 ...