Algoritmo de recorrido de imagenes.
Hola Comunidad:
Resulta que tengo que hacer un trabajo para la empresa donde estoy practicando(pues estudio informatica en la Universidad) y tengo que entregar el histograma de una imagen de acuerdo a los valores que esta presente en la escala RGB.
El detalle esta en que ya hice el histograma(implementado en C#) y funciona a las mil maravillas... pero solo para imagenes de poco tamanno, es decir, para imagenes en el orden de los Kb y algunas en Mb. Todo esta muy bien, solo que este histograma debe ser capaz de trabajar para imagenes grandes, digase en el orden de los 50 Mb pues para estas imagenes es que se quiere implementar este histogarama.
Este histograma lo que hace es recorrer la imagen pixel por pixel, y tomando de cada uno de ellos el valor que tiene en la escala de los rojos, verdes y azules, que sera un valor entre 0 y 255. Luego estos valores se iran contando dentro de un array que corresponde con los colores de las escalas... es decir, que tendre un array para almacenar los valores en la escala de Azules, otro para la escala de Rojos y otro para la escala de Verdes. Si el primer pixel tiene un valor de 25 para el azul, lo que se hace es ir a la pos 25 de array de azules e incrementar el valor que ahi estara en 1(si no hay valores para esta pos. el nodo del array contendra el valor cero.)
El fin es contar la frecuencia en que aparece una tonalidad para las distintas escalas y luego graficar esto.
Como se puede ver, el algoritmo es bien simple.. pero solo para imagenes de hasta 1024 x 768 pixeles. Para imagenes mas grandes comienza a demorarse demasiado y se necesita ante todo velocidad y poca congestion del procesador.. cosas que de la manera en que lo implemente no se logran, pues el tiempo en que se recorreo cada uno de los pixeles de la imagen el micro esta trabajando al 100%. Necesito algun otro algoritmo que optimice esto y la verdad es que no tengo idea de como lograrlo.
Entonces, publico mi interrogante en este foro a ver si alguien me pudiera sugeriri alguna idea.
Gracias.. y Saludos...
Lazaro Bustio Martinez.
|