ISO/IEC 29794-6 iris image quality metrics
Project description
iris-iqm
ISO/IEC 29794-6 iris image quality metrics.
A Python library and CLI tool that evaluates iris image quality by computing 29 metrics covering geometric features, image quality, and ISO-standard scores. Ported from MITRE's BIQT-Iris.
Installation
pip install .
Or in editable mode for development:
pip install -e ".[dev]"
Requires Python 3.8+. Dependencies: numpy, opencv-python-headless.
Usage
Python API
import iris_iqm
# From a file path
result = iris_iqm.evaluate("iris_image.png")
# From a NumPy array
import cv2
img = cv2.imread("iris_image.png", cv2.IMREAD_GRAYSCALE)
result = iris_iqm.evaluate_array(img)
# Access individual metrics
print(result.overall_quality) # 0-100
print(result.iso_overall_quality) # 0-100
print(result.features.iris_diameter) # pixels
print(result.contrast)
print(result.defocus)
# Get all metrics as a dictionary
metrics = result.to_dict()
CLI
# JSON output (default)
iris-iqm image.png
# CSV output
iris-iqm image.png -o csv
# Table output
iris-iqm image.png -o table
# Multiple images
iris-iqm img1.png img2.png img3.png -o csv
Output Metrics
Error State
| Metric | Type | Description |
|---|---|---|
error_code |
int | Error code (0 = success) |
error_message |
str | Error description (empty on success) |
Geometric Features
| Metric | Type | Description |
|---|---|---|
iris_center_x |
int | Iris center X coordinate (pixels) |
iris_center_y |
int | Iris center Y coordinate (pixels) |
iris_diameter |
int | Iris diameter (pixels) |
pupil_center_x |
int | Pupil center X coordinate (pixels) |
pupil_center_y |
int | Pupil center Y coordinate (pixels) |
pupil_diameter |
int | Pupil diameter (pixels) |
image_width |
int | Image width (pixels) |
image_height |
int | Image height (pixels) |
iris_pupil_ratio |
float | Pupil-to-iris diameter ratio |
Raw Measurements
| Metric | Type | Description |
|---|---|---|
contrast |
int | Image contrast (pixel standard deviation) |
defocus |
int | Defocus score (bandpass filter response) |
isgs_diff_mean_avg |
float | Mean iris-sclera greyscale difference |
ipgs_diff_mean_avg |
float | Mean iris-pupil greyscale difference |
usable_iris_area_percent |
float | Percentage of iris area not occluded (0-100) |
iris_pupil_gs_diff |
float | Iris-pupil greyscale difference |
pupil_circularity_avg_deviation |
float | Average deviation from circular pupil boundary |
Margin Measurements
| Metric | Type | Description |
|---|---|---|
margin_left |
float | Distance from iris to left image border |
margin_right |
float | Distance from iris to right image border |
margin_top |
float | Distance from iris to top image border |
margin_bottom |
float | Distance from iris to bottom image border |
Normalized Quality Scores (0.0 - 1.0)
| Metric | Description |
|---|---|
quality_contrast |
Normalized contrast |
quality_defocus |
Normalized defocus |
quality_iris_diameter |
Normalized iris diameter (trapezoidal) |
quality_isgs |
Normalized iris-sclera greyscale difference |
quality_ipgs |
Normalized iris-pupil greyscale difference |
quality_ip_ratio |
Normalized iris-pupil ratio |
quality_iris_vis |
Normalized usable iris area |
quality_margin |
Normalized margin adequacy |
Overall Quality
| Metric | Type | Description |
|---|---|---|
overall_quality |
int | Combined quality score (0-100) |
ISO/IEC 29794-6 Metrics
| Metric | Type | Description |
|---|---|---|
iso_overall_quality |
int | ISO combined quality (0-100) |
iso_greyscale_utilization |
float | Shannon entropy of intensity histogram |
iso_iris_sclera_contrast |
float | Weber contrast at iris-sclera boundary |
iso_iris_pupil_contrast |
float | Weber contrast at iris-pupil boundary |
iso_pupil_boundary_circularity |
float | DFT-based circularity of pupil boundary |
iso_iris_pupil_concentricity |
float | Normalized iris-pupil center distance |
iso_margin_adequacy |
float | Minimum margin from iris to image border |
iso_sharpness |
float | Laplacian-based sharpness measure |
Image Requirements
- Grayscale (color images are converted automatically)
- Minimum size: 256 x 256 pixels
- Maximum size: 1000 x 680 pixels (larger images are downscaled automatically)
- Supported formats: PNG, BMP, JPEG, TIFF, and any format supported by OpenCV
Testing
pip install -e ".[dev]"
pytest tests/ -v
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iris_iqm-1.1.0.tar.gz.
File metadata
- Download URL: iris_iqm-1.1.0.tar.gz
- Upload date:
- Size: 39.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
851789ea2bb29d9dee052c98cc57d76a705310cbc327ce57826e3fd6f06f6f91
|
|
| MD5 |
f4510eba325ffff626a1e4857a209f9b
|
|
| BLAKE2b-256 |
a128682855c455744c5c61ba18af52d9fcac43bad52f895b4fffb00b0669d200
|
File details
Details for the file iris_iqm-1.1.0-py3-none-any.whl.
File metadata
- Download URL: iris_iqm-1.1.0-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6162c19bf179f8dee92818800ad50a909e20a8b3190527d42a5f6e11a18b4b41
|
|
| MD5 |
5758e3ab5269e6f97fff82c3ccd9d524
|
|
| BLAKE2b-256 |
933fef7e8f3a449d01c8bc4bbacc56807ae33269a00117f3402bc51fa9afc2f2
|