Plotting RGB-Spektrum, wie 2-D-Farbmatrix?
-
08-10-2019 - |
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!
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 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.