Es scheint, als würden Sie zwei Dinge fragen. Ich kann technisch nicht wirklich über JBU sprechen, aber ich kann einen Überblick über die notwendigen Konzepte und die bilaterale Filterung im Allgemeinen geben. Sie müssen wahrscheinlich selbst mehr Details finden, aber dies sollte eine kohärente Struktur ergeben, von der aus Sie beginnen können.
Fixieren von "Image" s
Viele Bildverarbeiter betrachten das Filtern entweder als Nachbearbeitung oder als Möglichkeit, Bilder zu skalieren. Die Perspektive des Mathematikers ist genauer, beschreibender und komplexer.
Wenn Sie eine Bilddatei haben, haben Sie kein echtes Bild. Sie haben Pixel „Werte“, die streng gültig sind nur in der Mitte der Pixel . Grob gesagt hat jedes Pixel einen Bereich , der diese Farbe annimmt. Mathematisch gesehen verwenden Sie einen Rekonstruktionsfilter für den nächsten Nachbarn, um das wahre Bild aus Pixelwerten zu rekonstruieren. Damit ein „Bild“ wirklich eine Reihe von Proben und einen Rekonstruktionsfilter, in der Regel nächste Nachbarn .
Resampling
Wenn Sie ein Bild hochskalieren, tun Sie wirklich Folgendes hochskalieren Resampling . Wie machst Du das? Sie nehmen Ihr Signal und generieren daraus einen neuen Satz von Samples. Aber für ein Bild, ich sagte nur , dass wir nicht haben das reale Bild; wir müssen es zuerst rekonstruieren. Ein typisches Resampling-Verfahren sieht also folgendermaßen aus:
- Nehmen Sie Ihre Pixelwerte.
- Rekonstruieren Sie ein Bild zwischen den Werten, die in Pixelzentren leben, mithilfe der Rekonstruktionsfilterung.
- Messen Sie einen neuen Satz von Proben aus dem rekonstruierten Bild, möglicherweise mit unterschiedlichen Abständen.
- Werfen Sie die alten Proben weg und verwenden Sie die neuen.
Der entscheidende Punkt ist, dass der verwendete Rekonstruktionsfilter der "Filter" ist, der für das Resampling verwendet wird. Zum Beispiel würde ein "bikubisches Upsample" einen bikubischen Rekonstruktionsfilter verwenden.
Es stellt sich heraus, dass Sie (theoretisch) dasselbe Bild zurückerhalten, wenn Sie eine sinc-Funktion für den Rekonstruktionsfilter verwenden und das Bild nicht verkleinern. Wenn Sie das Bild vergrößern und dann wieder verkleinern, erhalten Sie dieselbe Antwort. Dies gilt im Allgemeinen nicht für andere Filter.
Die meisten Filter nähern sich einem Sinc-Filter mehr oder weniger an. Abweichungen führen zu Bildverlust.
Filtern
Wenn Sie dieselbe vor / nach der Abtastrate verwenden, führen Sie eine sogenannte "Filterung" durch. Formal wird die Filterung ohne Änderung der Abtastrate neu abgetastet. Das Filtern ist ein Sonderfall des Resamplings.
Der einzig mögliche Zweck, sie zu filtern, um Informationen wegzuwerfen (z. B. einen Gaußschen) oder möglicherweise auch falsche Informationen zu verzerren oder hinzuzufügen (z. B. einen Sobel).
Bilaterale Filterung
Sie können viele verschiedene Filter zum Filtern verwenden. Die bilaterale Filterung ist eine davon. Ich glaube nicht, dass es derzeit für irgendeinen Zweck als Stand der Technik angesehen wird (obwohl ich nicht weiß, was es ist; wahrscheinlich etwas Neues, was ich vom maschinellen Lernen erwarte).
Ein bilateraler Filter ist ein nichtlinearer Filter, dh er hat keine schöne Fourier-Darstellung. Konzeptionell ist es wie ein Gaußscher, aber die Quellfarben selbst berücksichtigen auch die "Entfernung" eines Pixels von anderen. Dies neigt dazu, flache Bereiche zu glätten, während Kanten erhalten bleiben.
Bilaterale Upscaling
Ich hoffe, Sie sehen jetzt, wohin ich damit gehe: Jeder Filter, den Sie zum Filtern verwenden können, kann zum Hoch- oder Herunterskalieren verwendet werden, was wirklich dasselbe ist (weil alles neu abgetastet wird).
Wenn Sie einen bilateralen Filter implementiert haben, sollten Sie in der Lage sein, einen bilateralen Filter-Resampler einfach zu implementieren. Wenn Sie einen Gauß-Filter implementiert haben, sollten Sie auch einen Gauß-Filter-Resampler implementieren können.
Die einzige Schwierigkeit können die Definitionen sein. Leider ist die Unterscheidung zwischen Filtern und Resampling in der Bildverarbeitungsliteratur systematisch durch gelegentliches Nichtvorhandensein getrübt. Für die Implementierung eines bilateralen Filters würde ich mich stark auf seine Ähnlichkeiten mit dem Gaußschen Resampling verlassen. IIRC (ich habe das Papier seit Jahren nicht mehr gelesen) bilaterale Filterung erfolgt in Pixel, nicht in Stichproben.