Domanda

Qualche suggerimento su come potrei fare per tracciare lo spazio colore RGB come una matrice 2-D? Ho bisogno di una descrizione teorica di quello che sta succedendo; un esempio di codice o pseudo sarebbe utile ma non è obbligatorio. Grazie!

È stato utile?

Soluzione

Se si vuole rappresentare tutti i colori nello spazio RGB in una griglia 2D, può essere impossibile evitare discontinuità / confini taglienti nel risultato. Ma alcune tecniche di mappatura sarà meglio di altri.

Gli esempi da Possiblywrong.wordpress.com postale allRGB: curve di Hilbert e spanning tree casuali :

  • Traverse i pixel dell'immagine tramite una (ordine 12) curva Hilbert 2-dimensionale, mentre allo stesso tempo attraversare il cubo di colore RGB tramite (ordine 8) Curva Hilbert 3-dimensionale, assegnando ogni pixel a sua volta il colore corrispondente hilbert RGB 3D- loading= 2D">

  • "in ampiezza trasversale di Spanning Tree casuale di pixel, l'assegnazione di colori per curva di Hilbert." Larghezza-primo attraversamento di Spanning tree casuale di pixel, l'assegnazione di colori per curva di Hilbert.

Anche il check-out allrgb.com , "L'obiettivo di allRGB è semplice: creare immagini con un pixel per ogni colore RGB (16777216);., non un colore mancante, e non un colore due volte "

Altri suggerimenti

Se non si vuole perdere tutte le informazioni, è necessario utilizzare tre dimensioni. Se si può perdere alcune informazioni dimensionali, allora è facile. Basta fare questo:

// 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);
        }
    }
}

Non è davvero una buona risposta per 2D, perché si ha realmente bisogno di 3 dimensioni. Naturalmente, è possibile proiettare uno spazio 3D su 2D, ma di mantenere una quantità significativa di informazioni quasi necessario fornire la normale manipolazione 3D, in modo da poter vedere la proiezione visto da diverse angolazioni e simili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top