Pregunta

Tengo un tipo de 'mapa de bits' que contiene algunos datos aleatorios de mapa de bits. He escrito mis propios ajustes para el brillo, el color, la saturación y el tono que actúan en cada bit individualmente y, como era de esperar, es horrible lento.

En mi investigación, he notado que usar matrices puede ser muy rápido para ajustarlas. Además, .NET tiene una colormatrix donde puede aplicar los efectos de la matriz cuando drawImage ().

La matriz que configuramos parece la siguiente (del sitio web de 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

Pero no he podido encontrar rangos adecuados o cuáles son exactamente ninguno de estos números. No tengo idea de cómo ajustar el brillo, el color, la saturación y el tono.

¿¿Alguna ayuda?? ¿Me estoy perdiendo una buena documentación en alguna parte?

¡¡Gracias!!

¿Fue útil?

Solución

Hay algunos detalles en http://www.graficaobscura.com/matrix/index.html Pero es posible que desee publicar su otro código. Hacer operaciones por píxel es muy común y generalmente no encontrará problemas de rendimiento para este tipo de operación. BitMap.SetPixel de .NET es notoriamente lento. Hay un buen Serie de procesamiento de imágenes C# en CodeProject que muestra un método más rápido. No tengo experiencia con C ++, CLI, pero echaré un vistazo.

Otros consejos

Hay limitaciones en lo que puede hacer con una matriz de color.

Básicamente, la matriz que proporciona es, de hecho, una transformación homogénea de 4 dimensiones. Es una palabra grande que significa que puede rotar, escalar, traducir los diferentes canales (RGBA) de su color.

Ver Matriz de transformación para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top