inner_box3 — 3D regionprops op

• Datenarten: voxel → primitive

• Aufruf: import fullseye as fs; fs.ledger.inner_box3(vol) -> 'dict' (die Implementierung direkt: import regionprops3d; regionprops3d.inner_box3(vol) -> 'dict'; aus dem Register: ops3d.get("inner_box3"))

Verwendung

Die größte achsenparallele Box, die vollständig in eine binäre Voxelregion einbeschrieben ist (das 3-D-Gegenstück zu inner_rectangle1).

Exakte Lösung: Für jedes Tiefenintervall [z0, z1] muss die Box innerhalb des logischen UND der Schichten z0..z1 liegen (Voxel, die in allen Schichten Vordergrund sind). Das größte einbeschriebene 2-D-Rechteck in diesem UND (Histogrammverfahren = derselbe Kern wie inner_rectangle1) × Intervalllänge ist eine Kandidatenbox, und das Maximum über alle Intervalle ist die exakte größte einbeschriebene Box. O(D^2 * H * W).

Returns

dict

Ecken min / max in (depth,row,col)-Achsenreihenfolge, center (+ cd/cr/cc),

volle Breite size und volume als Voxelanzahl.

Raises

ValueError

Nicht-3-D-Eingabe oder eine Region ohne Vordergrund (keine einbeschriebene Box).

Ergänzung:

• min / max sind Voxelindizes einschließlich beider Enden (float-Arrays). size = max - min + 1, volume = prod(size). center ist (min + max) / 2 und kann .5 enthalten. Der registrierte Name auf der 2-D-Seite ist r2_inner_rectangle1.

• Für jedes Tiefenintervall sucht eine Python-Schleife das größte Rechteck, O(D²·H·W). Sobald das UND leer wird, bricht die Suche für dieses z0 ab. Bei großen Volumen langsam.

• Gibt es mehrere Kandidaten gleichen Volumens, wird der zuerst gefundene zurückgegeben (kleineres z0, darunter kleineres z1).

• Die Eingabe wird mit allem außer 0 als Vordergrund in bool umgewandelt (auch NaN ist Vordergrund). Die Achsenreihenfolge ist (depth, row, col).

• Typisch: erst mit largest_component auf 1 Objekt eingrenzen, dann aufrufen (sind mehrere Komponenten gemischt, ist es nicht unbedingt die Box der größten Komponente).

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• measurement_uncertainty — Messunsicherheit und Kalibrierung — was nötig ist, um zu behaupten, dass man misst

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• inner_box_inspection — py -3.11 examples_3d/inner_box_inspection.py

Typkompatible Folge-Operatoren (nehmen primitive als Eingabe)

fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment

Gleiche Kategorie (regionprops)

label_components · region_props · largest_component · filter_by_volume · vol_label · vol_region_props


*Provenance: regionprops3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.