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指纹特征提取与匹配软件使用的更多相关文章

  1. Opencv Sift算子特征提取与匹配

    SIFT算法的过程实质是在不同尺度空间上查找特征点(关键点),用128维方向向量的方式对特征点进行描述,最后通过对比描述向量实现目标匹配. 概括起来主要有三大步骤: 1.提取关键点: 2.对关键点附加 ...

  2. 关于Web应用和容器的指纹收集以及自动化软件的制作

    一次对Web应用的渗透,九成都是从信息收集开始,所以信息收集就显得尤为重要.关键信息的收集可以使你在后期渗透的时候更加的得心应手,把渗透比喻成走黑暗迷宫的话,那信息收集可以帮你点亮迷宫的大部分地图. ...

  3. OPENCV中特征提取和匹配的步骤

    1.定义特征提取器和描述子提取器: cv::Ptr<cv::FeatureDetector> detector; cv::Ptr<cv::DescriptorExtractor> ...

  4. ORB特征提取与匹配

    ORB特征是目前最优秀的特征提取与匹配算法之一,下面具体讲解一下: 特征点的检测 图像的特征点可以简单的理解为图像中比较显著显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等.ORB采用FAST ...

  5. Opencv Surf算子特征提取与最优匹配

    Opencv中Surf算子提取特征,生成特征描述子,匹配特征的流程跟Sift是完全一致的,这里主要介绍一下整个过程中需要使用到的主要的几个Opencv方法. 1. 特征提取 特征提取使用SurfFea ...

  6. sift、surf、orb 特征提取及最优特征点匹配

    目录 sift sift特征简介 sift特征提取步骤 surf surf特征简介 surf特征提取步骤 orb orb特征简介 orb特征提取算法 代码实现 特征提取 特征匹配 附录 sift si ...

  7. 位置指纹(LF)定位技术简介-室内定位

        信号的多径传播对环境具有依赖性,呈现出非常强的特殊性.对于每个位置而言,该位置上信道的多径结构是惟一的,终端发射的无线电渡经过反射和折射,产生与周围环境密切相关的特定模式的多径信号,这样的多径 ...

  8. paper 1:图像特征提取

    特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连 ...

  9. 【转】opencv检测运动物体的基础_特征提取

    特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连 ...

随机推荐

  1. 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. ...

  2. Openstack Nova 源码分析 — Create instances (nova-conductor阶段)

    目录 目录 前言 Instance Flavor Instance Status Virt Driver Resource Tracker nova-conductor Create Instance ...

  3. 记录一次像github开源项目提交pull request(Hexo Next)

    文章目录 背景 fork到自己github 像往常一样的操作 克隆到本地 与上游建立连接 创建分支 修改项目代码 收尾工作 提交pull request 个人博客:https://mmmmmm.me ...

  4. hexo next主题深度优化(四),自定义一个share功能,share.js。

    文章目录 背景: 开始: 引入资源: 代码 关键的一步 附:方便学习的小demo 一次成功后还出现上面的bug 结束 2018.12.23发现bug(读者可忽略) 个人博客:https://mmmmm ...

  5. RTC, Real Time Clock

    配置 写入RTC_PRL, RTC_CNT, RTC_ALR寄存器时,需要先进入配置模式,通过把RTC_CRL寄存器的CNF位置一. 另外,在每次配置一个寄存器时必须等待上一次配置完成,可以通过检测R ...

  6. java could not open `C|D|E|F:\jre\lib\amd64\jvm.cfg' 解决方案与原因

    因为安装了 jdk 后发现有多个 jre 一个是安装目录下的. 还有一个是安装后的自动安装的注意路径都不一样. 由于本人有强迫症所有不能容忍有两个 jre 目录的存在,所以果断删除了 D 盘下的.谨慎 ...

  7. jquery下拉框应用

    <!DOCTYPE html> <html lang="en"> <head> <script src="http://code ...

  8. GetOpenFilename的基本用法(文件夹实操)

    Sub 数据导入()Dim f, arr, i&, j&, k, m%, n%, p%, sh As Workbookf = Application.GetOpenFilename(f ...

  9. Leetcode211. Add and Search Word - Data structure design 添加与搜索单词 - 数据结构设计

    设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a- ...

  10. boost multi_index 插入返回值

    boost multi_index 对象插入函数emplace() 的返回值,是一个std::pair<iterator, bool>该pair 的first 是一个插入成功的位置,第二个 ...