structure_tensor_coherence — 2D texture op

• Datenarten: image → image

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

structure_tensor_coherence: 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_coherence: Regler a durchfahren (Doku-Website)

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

▸ structure_tensor_coherence: 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_coherence: 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 den lokalen Grad der Richtungsübereinstimmung (Anisotropie des Strukturtensors) in [0,1].

Genau (lambda1 - lambda2) / (lambda1 + lambda2). 1 ist vollständig eine Richtung (ideale Streifen), 0 ist isotrop (ebene Fläche, weißes Rauschen, Kreuzungspunkt eines Kreuzes). a/b sind dieselben 2 Skalen wie bei structure_tensor_orientation.

Paarweise mit structure_tensor_orientation verwenden: Die Orientierungskarte hat an jedem Pixel einen Wert, daher werden auch Stellen eingefärbt, an denen die Orientierung keine Bedeutung hat. Erst mit diesem Op als Gewicht weiß man, "wo man der Orientierung trauen kann".

Anwendungsbedingungen und bekannte Fallstricke: (1) Ist b (das Integrationsfenster) zu klein, fällt der Rang des Tensors auf 1 und es klebt überall an 1 - nicht ausgerichtet, sondern nicht gemessen. (2) Wo sich 2 Richtungen mit gleicher Stärke kreuzen (Kreuzungspunkte von Geweben, Gitter), fällt es auf 0 - das heißt nicht "keine Struktur", sondern "die Orientierung lässt sich nicht auf 1 festlegen", und es ist nicht von einer ebenen Fläche zu unterscheiden. Zur Unterscheidung local_std mit angeben.

Pixel, deren Spur unter dem 1e-6-fachen des Maximums im gesamten Bild liegt, liefern 0 (ebene Fläche). 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_coherence 0.50 0.50

▸ Diese Pipeline laden  ·  Laden & ausführen

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

• 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_orientation · 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.