The chip bar on the Analysis Results screen is extended with two new texture-analysis chips — **Gabor** and **LBP** — placed to the right of the existing **Heatmap** chip. Both are toggle chips following the same pattern as CLAHE and Heatmap: tapping the chip replaces the iris image with the computed view; tapping a second time restores the original.
Each new chip runs its computation in a background isolate, writes the result into a per-eye cache, and returns immediately on subsequent toggles. Initial first-render time on a 2,000-pixel-wide Dino-Lite image is typically 0.8–1.5 seconds on a modern Windows PC and 1.5–3 seconds on mid-range mobile hardware.
3.10.7 Gabor Filter Texture Analysis
**What it does**
The Gabor chip convolves the iris image with a bank of **2-D Gabor filters** — sinusoidal plane waves modulated by a Gaussian envelope — tuned to multiple spatial frequencies and orientations. The magnitude response at each pixel records how strongly that pixel resembles an oriented stripe at each scale. Summing across orientations produces an **energy map** in which fibres, striae, radial sulci, and tophi edges appear as bright ridges against a dark stroma background.
Gabor filtering is the canonical texture operator in iris image analysis: it underlies Daugman’s original iris-code algorithm and remains the reference tool for fibre-density and fibre-orientation quantification.
**Filter bank parameters**
The default bank is configurable in Settings (§8.6). Factory defaults:
| Parameter | Default | Notes |
|———–|———|——-|
| Number of scales | 4 | Spatial frequencies: 0.08, 0.16, 0.32, 0.64 cycles/pixel |
| Number of orientations | 8 | 0°, 22.5°, 45°, 67.5°, 90°, 112.5°, 135°, 157.5° |
| Gaussian envelope σ | 2.5 × λ | Envelope proportional to wavelength |
| Aspect ratio γ | 0.5 | Ratio of minor to major Gaussian axis |
| Phase offset ψ | 0° (even) and 90° (odd) | Magnitude computed as √(even² + odd²) |
**How to use**
Tap the **Gabor** chip. The iris image is replaced by the Gabor energy map rendered with a cool-to-hot gradient. Four small orientation swatches appear under the image showing the dominant response for each of the four cardinal axes (horizontal, vertical, and the two diagonals).
A **Scale slider** (1–4) under the image lets you inspect each spatial frequency independently — scale 1 emphasises fine fibre detail, scale 4 emphasises coarse structural bands such as the ciliary zone and the collarette.
**Quantitative readouts**
Below the image, a small metrics strip shows three derived values:
| Readout | Meaning | Typical ranges |
|———|———|—————-|
| **Fibre Density** | Mean energy across the ciliary zone | Lymphatic 0.25–0.45 · Haematogenic 0.10–0.25 |
| **Radial Dominance** | Ratio of radial-orientation energy to tangential-orientation energy | > 1.3 = strongly radial (classic lymphatic); < 0.9 = disorganised stroma |
| **Fibre Uniformity** | Inverse of energy standard deviation | Higher = more regular (tight/silk-like); lower = irregular/honeycomb |
**Clinical applications**
– **Constitutional typing** — Fibre Density and Radial Dominance provide an objective backup to the subjective “tight vs. loose fibre” call in the Lymphatic group.
– **Honeycomb pattern identification** — Low Uniformity with low Radial Dominance is characteristic of Mesenchymal Pathological constitution.
– **Stroma transparency assessment** — A low-energy region in the ciliary zone indicates diminished stroma density, consistent with lacuna or crypt presence even below the detection threshold of §3.11.3.
– **Teaching reference** — The orientation swatches make the directional structure of the stroma visible to students who cannot yet see it in the raw image.
> **Note:** Gabor energy reflects oriented intensity gradient, not biological fibre presence per se. Bright pigment edges, scurf rim margins, and specular reflections all generate strong Gabor responses. Use §3.11.5 to suppress specular reflections before reading the energy map quantitatively.
—
### 3.10.8 Local Binary Pattern (LBP) Stroma Classifier
**What it does**
The LBP chip computes a **uniform rotation-invariant Local Binary Pattern** descriptor over the iris stroma and displays both a colour-coded texture map and a histogram of the LBP pattern distribution. LBP is a simple but remarkably effective texture operator: each pixel is compared with its 8 neighbours on a circle of radius *R*, and the thresholded pattern is encoded as a compact integer code. Uniform rotation-invariant LBP (the LBP<sub>8,1</sub><sup>*riu2*</sup> variant) collapses all rotations of the same pattern into a single bin, making the descriptor invariant to the rotational orientation of the iris at capture time.
**How to use**
Tap the **LBP** chip. The iris image is replaced by a texture-type colour map using the following legend:
| Pattern class | Colour | Physical meaning |
|—————|——–|——————|
| Flat (uniform neighbourhood) | Dark blue | Pigment field, solid tophi surface |
| Edge | Cyan | Fibre edge, lacuna boundary, collarette rim |
| Corner | Green | Fibre intersection, crypt corner |
| Line end | Yellow | Fibre terminus |
| Spot | Orange | Small lacuna, pigment spot |
| Non-uniform / mixed | Red | High-entropy region (disorganised texture) |
Below the image, a **LBP histogram** bar chart shows the frequency of each pattern class across the iris. A secondary **OD/OS histogram comparison** appears when both eyes have been computed, letting you visually compare the texture signature of the two irides.
**Derived indices**
| Index | Formula | Interpretation |
|——-|———|—————-|
| **Texture Entropy** | −Σ pᵢ log pᵢ over LBP bins | Higher = more disorganised stroma; lower = more uniform texture |
| **Flat-Pattern Ratio** | Flat bin / total | Higher in Haematogenic; lower in Neurogenic Sensitive |
| **Edge-Pattern Ratio** | Edge bin / total | Higher in tight-fibred Lymphatic; a proxy for fibre density |
| **OD/OS Texture Similarity** | Histogram intersection | 0–100%; > 85% suggests bilateral symmetric stroma |
**Clinical applications**
– **Constitutional subtyping** — The LBP histogram shape is diagnostic for the broad constitutional groups; the Texture Entropy and Flat-Pattern Ratio together distinguish Lymphatic (low entropy, low flat ratio) from Haematogenic (moderate entropy, high flat ratio) from Biliary/Mixed (high entropy, variable).
– **Bilateral symmetry** — OD/OS Texture Similarity provides a single-number score for structural bilateralism; a markedly low value may indicate lateralised constitutional expression or lateralised acquired change.
– **Longitudinal monitoring** — Texture Entropy is added as an optional series to the Serial Scan Timeline (§3.10.6) so that stroma change over time can be tracked as a single quantitative trend.
> **Tip:** Run CLAHE (§3.10.1) before activating LBP for better separation of edge patterns on dark haematogenic irides. The edge and corner classes become much cleaner after local contrast equalisation.
> **Relationship to Gabor:** Gabor and LBP are complementary. Gabor is directional and multi-scale; LBP is rotation-invariant and scale-specific. A practitioner who wants a full texture fingerprint should run both and read them side-by-side.
—
### 3.10.2E Iris 3D Relief Viewer — Enhanced Edition
Version 6.1+ significantly extends the existing 3D Relief viewer (§3.10.2). All controls from the original viewer remain unchanged; the additions listed below appear as a new **Tools** side panel that slides in from the right edge of the viewer dialog.
#### New control groups
**Surface rendering**
| Control | Options | Effect |
|———|———|——–|
| **Shading mode** | Smooth · Flat · Wireframe · Points | Smooth is the existing default; Flat emphasises individual triangle facets; Wireframe shows mesh structure only; Points displays the height-map as a point cloud |
| **Mesh density** | Low (64²) · Medium (128²) · High (256²) · Ultra (512²) | Controls the triangle count of the relief mesh. Ultra produces microscopic detail but is only recommended on desktop |
| **Projection** | Perspective · Orthographic | Orthographic projection eliminates foreshortening and is preferred for measuring relative heights between two features |
**Colour and texture**
| Control | Options | Effect |
|———|———|——–|
| **Palette** | Photo-texture · Thermal · Viridis · Terrain · Greyscale · Depth-tinted · Pigment-density | Photo-texture is the existing default. New palettes map height to colour instead of using the original photo, making relief structure easier to read |
| **Texture blend** | 0 – 100% | Mixes the selected palette with the photo texture; useful for seeing both pigment and relief simultaneously |
| **Overlay** | None · Zone polar grid · Collarette ring · Clock markers | Draws overlays directly on the 3D surface. Zone polar grid is the same overlay as the 2D results screen, projected onto the relief |
**Lighting**
| Control | Range | Effect |
|———|——-|——–|
| **Light azimuth** | 0° – 360° | Horizontal angle of the directional light — “rake lighting” from a low angle dramatically reveals subtle relief that is invisible at high angles |
| **Light elevation** | 0° – 90° | Vertical angle of the directional light |
| **Ambient level** | 0 – 100% | Global fill light — lower values deepen shadows for high-contrast relief |
| **Preset: Rake NE / NW / SE / SW** | — | One-tap preset angles for standard iridology relief inspection |
**Camera presets**
A row of quick-access thumbnails below the viewer:
| Preset | Camera position |
|——–|—————–|
| **Top-Down** | Direct overhead (90° elevation, 0° tilt) — equivalent to the 2D photo |
| **Landscape** | ~56° tilt, 0° rotation — the existing default |
| **Side Profile** | 0° elevation — pure side view of the relief, for measuring collarette ridge height |
| **3/4 View** | 45° elevation, 30° rotation — textbook presentation angle |
| **Orbit Animation** | Rotates 360° around the Y-axis at 10° per second |
**Cross-section slicer**
A new **Slice** mode cuts a planar cross-section through the height map and draws the resulting profile beneath the 3D view.
| Slice type | Description |
|————|————-|
| **Radial slice** | Cut from the pupil centre outward along a user-selected clock angle (0°–360°). Reveals the relief profile across the collarette, ciliary zone, and periphery of a single zone |
| **Meridional slice** | Horizontal or vertical cut across the full iris. Useful for bilateral profile comparison |
| **Freeform slice** | Drag a line across the top-down view to define an arbitrary slice path |
The slice profile view shows:
– Height (normalised 0–1) on the Y axis
– Distance along the slice on the X axis
– Coloured markers at the pupil edge, collarette position, and iris rim
– A reference zero line for visual comparison
**Differential relief**
A **High-pass filter** slider subtracts a Gaussian-blurred copy of the height map from the original. Low values of the slider isolate fine-scale features — crypts, small lacunae, individual fibres — from the broad global curvature of the iris. This is particularly effective for isolating tophi and small lacunae that are visually dominated by the large-scale variation in stroma density.
**Stereo anaglyph mode**
Toggle **Anaglyph (Red/Cyan)** to render the 3D view as a red/cyan stereo pair. With standard red/cyan anaglyph glasses, the relief becomes convincingly three-dimensional in a way that improves depth perception of crypts and lacunae beyond what a rotating monocular view can achieve.
**Bilateral dual-pane 3D**
A **Bilateral View** button opens the 3D viewer in a split-pane layout with OD on the left and OS on the right. All controls (lighting, slicer, palette, camera) are synchronised between the two panes by default, with a **Sync** toggle to decouple them if independent inspection is required. This is the 3D counterpart to the existing §3.10.5 Side-by-Side Eye Comparison.
**Export formats**
| Export | Produces |
|——–|———-|
| **PNG snapshot** | Current 3D view as a 2048 × 1536 px image |
| **Turntable MP4** | A 6-second 360° rotation animation at 30 fps, H.264-encoded |
| **Turntable GIF** | Same as MP4 but as a 10-frame looping GIF (smaller file, lower quality) |
| **STL mesh** | 3D-printable mesh of the relief surface; can be loaded into any 3D-printing slicer |
| **OBJ + texture** | Textured mesh for import into Blender / ZBrush / Three.js for teaching visualisations |
> **Note:** Height in the 3D viewer continues to reflect luminance, not anatomical depth (see §3.10.2). The new palettes and lighting modes make subtle relief more perceptible, but they do not alter this fundamental caveat. Dense pigment regions may still appear artificially elevated. Cross-sectional measurements are therefore **relative relative comparisons**, not absolute anatomical heights.
