Domanda

Ho un tipo di "bitmap" contenente alcuni dati bitmap casuali. Ho scritto le mie regolazioni per luminosità, colore, saturazione e tonalità che agiscono su ogni bit individualmente e, non sorprende che sia terribile.

Nella mia ricerca ho notato che l'uso di matrici può essere molto veloce nel regolare queste. Inoltre, .NET ha una colormatrix in cui è possibile applicare gli effetti della matrice quando si disegna ().

La matrice che abbiamo impostato sembra il seguente (dal sito Web MSDN):

float[][] colorMatrixElements = { 
new float[] {2,  0,  0,  0, 0},        // red scaling factor of 2
new float[] {0,  1,  0,  0, 0},        // green scaling factor of 1
new float[] {0,  0,  1,  0, 0},        // blue scaling factor of 1
new float[] {0,  0,  0,  1, 0},        // alpha scaling factor of 1
new float[] {.2f, .2f, .2f, 0, 1}};    // three translations of 0.2

Ma non sono stato in grado di trovare gamme adeguate o cosa effettivamente uno di questi numeri effettivamente. Non ho idea di come adattarsi alla luminosità, al colore, alla saturazione e alla tonalità.

Qualsiasi aiuto?? Mi manca una buona documentazione da qualche parte?

Grazie!!

È stato utile?

Soluzione

Ci sono alcuni dettagli a http://www.graficaobscura.com/matrix/index.html Ma potresti voler pubblicare il tuo altro codice. Fare operazioni per pixel è molto comune e di solito non si incontrano problemi di prestazione per questo tipo di operazione. Bitmap.setpixel di .NET è notoriamente lento. C'è un bene C# Serie di elaborazione delle immagini a CodeProject che mostra un metodo più veloce. Non ho esperienza con C ++-CLI ma darò un'occhiata.

Altri suggerimenti

Ci sono limitazioni su ciò che puoi fare con una matrice a colori.

Fondamentalmente, la matrice fornita è in realtà una trasformazione omogenea di 4 dimensioni. È una grande parola che significa che puoi ruotare, scala, tradurre i diversi canali (RGBA) del tuo colore.

Vedere Matrix di trasformazione per ulteriori dettagli.

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