structure_tensor_orientation — 2D texture op

• Datenarten: image → image

• Aufruf: fullseye.apply(img, "structure_tensor_orientation", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])

structure_tensor_orientation: input → output

*Die Abbildung ist die tatsächliche Ausgabe auf einer synthetischen 128×128-Eingabe. Links Eingabe, rechts Ausgabe. Punktwolken als Draufsicht-Streudiagramm (Helligkeit = z), 1-D-Reihen als Linie, Volumen als Maximum-Projektion entlang z, Videos als mittleres Bild, komplexe Bilder als Betrag; Rückgabewerte, die kein Bild ergeben, werden als Werte gezeigt.*

*Die Ausgabe ist in einer viridis-artigen Falschfarbe dargestellt (dunkles Violett = klein, Gelb = groß), damit ein Feld von Größen — Abstand, Phase, Orientierung, Tiefe — lesbar ist.*

Regler a durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):

▸ structure_tensor_orientation: Regler a durchfahren (Doku-Website)

Regler b durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):

▸ structure_tensor_orientation: Regler b durchfahren (Doku-Website)

Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):

▸ structure_tensor_orientation: andere Eingaben (Doku-Website)

*Die 4. Spalte ist eine Farb-Eingabe (H,W,3). Dieser Op verarbeitet Farbe, ohne Kanäle zu vermischen (er faltet den Farbkanal nicht als dritte Raumachse).*

Verwendung

Liefert die lokale Verlaufsrichtung der Streifen (Hauptachse des Strukturtensors), auf [0,1] abgebildet.

0 und 1 entsprechen beide der Horizontalen, 0.5 der Vertikalen (die Orientierung läuft alle 180 Grad einmal herum, daher sind 0 und 1 dieselbe Orientierung - zu beachten: Differenzbildung dieser Ausgabe erzeugt an der Nahtstelle falsche Stufen).

a ist die Glättung vor der Ableitung sigma (0.5-3.0 Pixel), b das Integrationsfenster rho (1.0-8.0 Pixel). rho gibt an, "über welche Fläche die Orientierung als ausgerichtet gilt"; größer wählen als die Teilung von Fasern oder Schleifspuren.

Anwendungsbedingungen: Eine Orientierung ist nur dort definierbar, wo der Gradient strukturell gerichtet ist. Pixel, deren Tensor- Anisotropie relativ zur Spur unter 1e-6 liegt (ebene Flächen, isotropes Rauschen), liefern als "Orientierung undefiniert" 0.5 - ohne Untergrenze würde hier Rundungsstaub auf einer gleichförmigen Fläche durch arctan2 verstärkt, und schon eine Helligkeitsänderung um 0.01 kehrt die Orientierung überall gleichzeitig um. Die Verlässlichkeit der Orientierung separat mit structure_tensor_coherence messen.

Einsatz: Faserorientierung in faserverstärkten Werkstoffen, Richtung von Walz- und Schleifriefen, Holzmaserung, Streckungsrichtung von Kristallkörnern. HALCON hat kein entsprechendes Einzel-Op.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie gallery2d_texture_freq

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.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

In Studio ausprobieren

Das Programm unten ist nachweislich lauffähig (gleiche Eingabe wie die Abbildung). In der Studio-Hilfe wird dieser Block zu Schaltflächen, die es sofort laden und ausführen.

structure_tensor_orientation 0.50 0.50

▸ Diese Pipeline laden  ·  Laden & ausführen

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

• degenerate_inputs — py -3.11 examples/degenerate_inputs.py

• gallery2d_texture_freq — py -3.11 examples/gallery2d_texture_freq.py

Typkompatible Folge-Operatoren (nehmen image als Eingabe)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

Gleiche Kategorie (texture)

std_filter · local_bimodality · local_std · scale_select_std · bootstrap_std_error · structure_tensor_coherence · gabor · sk_frangi


*Provenance: ops.py — 2D 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.