# Block histogram

Histogram, a part of algorithm transparency, contains pixel value histogram for every primary block. Pixels are taken from scaled image. It is computed during feature extraction. Histogram is processed into smoothed histogram before it is used to compute contrast.

Key | MIME | Filename in ZIP |
---|---|---|

`histogram` | `application/cbor` | `005-histogram.cbor` |

## Visualization

Histogram visualization can be created from this stage's binary data mapped onto blocks. Original fingerprint image is in the background. Visualization itself is not part of transparency data.

## Format

Histogram is a 3-dimensional array (or cube) of integers. Two dimensions correspond to X and Y positions of primary blocks. Every block has its own histogram consisting of bins that represent shades of gray from white (0) to black (255). Bins are the third dimension of the histogram cube. Histogram is encoded in CBOR:

`width`

- Horizontal block count.`height`

- Vertical block count.`bins`

- Number of histogram bins per block (normally 256).`counts`

- Array of`width * height * bins`

32-bit integers, one for every primary block and bin. The 3-dimensional histogram cube is mapped into 1-dimensional array by sorting values by block's Y position top to bottom, then by block's X position left to right, and finally by bin number.

Example: `005-histogram.cbor`

```
{
"width": 26,
"height": 25,
"bins": 256,
"counts": [
0,
196,
"... skipped 166,396 items in range 0 to 225 ...",
0,
0
]
}
```