tac_height_from_shading — 2D tactile op

Datenarten: imageimage

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

tac_height_from_shading: 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):

tac_height_from_shading: knob a sweep (docs site)

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

tac_height_from_shading: knob b sweep (docs site)

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

tac_height_from_shading: other inputs (docs site)

*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

Höhen-/Reliefkarte durch Poisson-Integration der Schattierungsgradienten -- die Integrationsstufe der GelSight-Tiefenrekonstruktion (und des photometrischen Stereos): Die Bildgradienten werden als Oberflächenneigungen `p = gain*gx, q = gain*gy interpretiert, und die Poisson-Gleichung lap(h) = div(p,q) wird spektral gelöst, h_hat = div_hat / lap_hat, mit dem diskreten Laplace-Symbol 2cos(2*pi*u/W)+2cos(2*pi*v/H)-4 und dem (unbestimmten) Gleichanteil (DC-Modus), der auf null festgelegt wird. a = Gradientenverstärkung (0,25..4,25-fach), b` = Vorglättungs-Sigma des Gradientenfelds (0..3). Die Ausgabe wird min-max-normiert auf [0,1] und auf HxW zurückgeführt; ein konstanter Frame integriert sich zu einem flachen (durchweg nullwertigen) Relief.

Regler (gemessen): `a` von 0 bis 1 zu variieren ändert die Ausgabe nicht (an fünf verschiedenen Eingaben gemessen).

Vergleichbarkeit der Werte (gemessen): Die Ausgabe wird auf das Maximum des jeweiligen Bildes normiert (das Ausgabemaximum ist stets 1.0, und eine Skalierung der Eingabe lässt die Ausgabe unverändert). Werte sind daher nicht bildübergreifend vergleichbar — ein Merkmal gleicher Stärke erhält je nach dem stärksten Merkmal im Bild einen anderen Wert, und in einem Bild mit nur schwachen Merkmalen wird das Rauschen auf 1.0 angehoben. Für einen Vergleich über Bilder hinweg auf eine gemeinsame Referenz umskalieren.

Leeres Bild (gemessen): Ein Bild gleichmäßiger Helligkeit liefert unabhängig von der Helligkeit ein leeres Ergebnis (jedes Pixel ist Hintergrund 0). Reinweiß und Reinschwarz verhalten sich gleich; Helligkeit allein detektiert nichts.

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.

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.

tac_height_from_shading 0.50 0.50

▸ Load this pipeline  ·  Load & run

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

sim2real_and_alifepy -3.11 examples/sim2real_and_alife.py

Typkompatible Folge-Operatoren (nehmen image als Eingabe)

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

Gleiche Kategorie (tactile)

tac_contact_mask · tac_surface_normal · tac_pressure_proxy · tac_shear_field


*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.