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

*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.*
Regler a durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):
▸ dc_rpca_lowrank: Regler a durchfahren (Doku-Website)
*Regler b ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ dc_rpca_lowrank: 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).*
Low-Rank-(Hintergrund-)Anteil der Robust-PCA.
Löst Principal Component Pursuit, die die Bildmatrix M in M = L + S (niedrigrangiges L + dünnbesetztes S) zerlegt, mit inexact ALM (Lin/Chen/Ma 2010) und gibt L zurück. Das Gewicht des dünnbesetzten Terms ist λ = (0.5 + 1.5*a) / sqrt(max(m, n)) (m, n sind die Matrixdimensionen bei der Zerlegung); je größer a, desto dünner besetzt ist S, und entsprechend mehr Anteile (Rang) verbleiben in L. Bei a=0 ist λ klein, der Großteil der Variation wird von S aufgenommen, und L wird konturlos. b wird nicht verwendet. Höchstens 60 Iterationen, Konvergenzkriterium ||M - L - S||_F <= 1e-7 * ||M||_F.
Bilder, deren längere Seite 64 überschreitet, werden für die Zerlegung auf 64 verkleinert, und nur L wird per linearer Interpolation auf die ursprüngliche Größe zurückgebracht (da der niedrigrangige Anteil Verkleinerung verträgt). Die Eingabe wird auf 2-D-float64 in [0,1] gebracht (3-D per Kanalmittelung), der Rückgabewert hat dieselbe Form und ist auf [0,1] begrenzt. Ein Bild aus lauter Nullen gibt die Eingabe unverändert zurück. Die Zahl der BLAS-Threads wird nur während der Zerlegung mit fsthreads gedrosselt (bei der SVD kleiner Matrizen sind mehr Threads langsamer). Bei einer Ausnahme greift fail-soft: eine geclippte Version der Eingabe wird zurückgegeben und im Register (Ledger) vermerkt.
Da diese Zerlegung "über Zeilen oder Spalten wiederkehrende Struktur" (Streifen, Verläufe, periodische Muster) als Hintergrund betrachtet, eignet sie sich auch bei einem einzelnen 2-D-Bild, um isolierte Defekte von periodischen Hintergründen wie Gewebe, Folien oder Displaypixeln zu trennen. Bei nichtperiodischen Hintergründen wie natürlichen Bildern ist L nur eine niedrigrangige Näherung und wird kein sinnvoller Hintergrund. Die zugehörige Defektseite ist dc_rpca_sparse (L + (S - 0.5) == input). Um Struktur mit kantenerhaltender Glättung zu gewinnen, dc_structure_texture.
• Leitfaden zur Familie gallery2d_texture_freq
• blas_threads_and_memory — Warum Matrixzerlegungen langsam sind — BLAS-Threads, Caches, Speicherlayout
• 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.
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.
dc_rpca_lowrank 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• blas_thread_budget — py -3.11 examples/blas_thread_budget.py
• gallery2d_texture_freq — py -3.11 examples/gallery2d_texture_freq.py
image als Eingabe)identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter
decomposition)dc_structure_texture · dc_texture_residual · dc_rpca_sparse · dc_retinex · dc_local_contrast_norm · dc_homomorphic
*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.