Blocks

SourceAFIS » Algorithm » Transparency » Blocks

Blocks, a part of algorithm transparency, is a division of scaled image into blocks of approximately same size. It is computed during feature extraction. Two block grids are defined, called primary and secondary, that are shifted by half a block relative to each other.

Blocks are used extensively throughout the algorithm. They are used to compute local contrast and derived mask data, equalized image, block orientation and smoothed orientation, parallel smoothing and orthogonal smoothing, and binarized image and derived data. They are used in many places to optimize out calculations over areas outside of fingerprint mask.

KeyMIMEFilename in ZIP
blocksapplication/cbor004-blocks.cbor

Visualization

The following visualization was created from this stage's CBOR data overlaid on top of the original fingerprint image. Visualization itself is not part of transparency data.

Visualization of primary block grid overlaid on top of the original fingerprint image
Primary block grid is pictured blue. Secondary block grid is in the background as green lines.

Format

Blocks are encoded as a CBOR data structure:

Both primary and secondary block grids have the same structure.

Positions are measured in pixels of the scaled image. Axis y starts at the top of the image and increases towards bottom. Axis x starts at the left edge of the image and increases to the right. This orientation of axes applies to both pixels and higher level blocks.

Example: 004-blocks.cbor

{
  "pixels": {
    "x": 388,
    "y": 374
  },
  "primary": {
    "blocks": {
      "x": 26,
      "y": 25
    },
    "corners": {
      "x": 27,
      "y": 26
    },
    "x": [
      0,
      14,
      "... skipped 23 items in range 29 to 358 ...",
      373,
      388
    ],
    "y": [
      0,
      14,
      "... skipped 22 items in range 29 to 344 ...",
      359,
      374
    ]
  },
  "secondary": {
    "blocks": {
      "x": 27,
      "y": 26
    },
    "corners": {
      "x": 28,
      "y": 27
    },
    "x": [
      0,
      7,
      "... skipped 24 items in range 21 to 365 ...",
      380,
      388
    ],
    "y": [
      0,
      7,
      "... skipped 23 items in range 21 to 351 ...",
      366,
      374
    ]
  }
}