Frage

Alle Vorschläge, wie ich über Plotten den RGB-Farbraum als 2-D-Matrix gehen könnte? Ich brauche eine theoretische Beschreibung von dem, was vor sich geht; ein Codebeispiel oder Pseudo-Code wäre hilfreich, aber nicht erforderlich. Dank!

War es hilfreich?

Lösung

Wenn Sie jede Farbe im RGB-Raum in einem 2D-Gitter darstellen wollen, kann es unmöglich sein Diskontinuitäten / scharfe Grenzen im Ergebnis zu vermeiden. Aber einige Mapping-Techniken als andere besser aussehen werden.

Beispiele aus Possiblywrong.wordpress.com Post allRGB: Hilbert-Kurven und zufällige Spanning Bäume :

  • Traverse die Pixel des Bildes über eine 2-dimensionale (Auftrag 12) Hilbert-Kurve, während zur gleichen Zeit über eine die RGB-Farbwürfel durchqueren 3-dimensional (order 8) Hilbert-Kurve, Zuweisen jedes Pixel wiederum die entsprechende Farbe Hilbert RGB 3D- loading= 2D">

  • "Breite-first Traversal von zufälligem Spanning Tree von Pixeln, Farben in Hilbert-Kurve, um die Zuordnung."

Überprüfen Sie auch heraus allrgb.com „Das Ziel allRGB ist einfach: Um Bilder zu erstellen mit einem Pixel für jeden RGB-Farbe (16777216);. nicht eine Farbe fehlt, und nicht eine Farbe zweimal "

Andere Tipps

Wenn Sie keine Informationen verlieren wollen, müssen Sie drei Dimensionen verwenden. Wenn Sie einige dreidimensionale Informationen verlieren können, dann ist es einfach. Genau dies tun:

// or HSV
int [256*256][256] colorMatrix;
for (int r = 0; r < 256; r++) {
    for (int r = 0; r < 256; r++) {
        for (int r = 0; r < 256; r++) {
            colorMatrix[256*r+g][b] = color(r, g, b);
        }
    }
}

Es ist nicht wirklich eine gute Antwort für 2D, weil Sie wirklich 3 Dimensionen benötigen. Natürlich können Sie einen 3D-Raum auf 2D-Projekt, sondern eine sinnvolle Menge an Informationen, die Sie fast benötigen, um die normale 3D-Manipulation zu halten, so dass Sie den Vorsprung aus verschiedenen Winkeln betrachtet sehen können und so weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top