Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/01/2013, 22:09
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: ejercicio de c++ con arrays

Mira yo lo haria con dos for para recorrer de izquierda a derecha y de arriba abajo. Este ultimo seria el primero y el otro estaria adentro. Imaginemos que esas son las coordenadas x , y

for( y = 0 ; y < TAMY - 1 ; y ++)
for( x = 0 ; x < TAMX - 1 ; x ++)

Despues tendria una funcion llamada promedio que devuelve el promedio entre cuatro numeros entonces dentro del For haria:

if (promedio(matriz[y][x] , matriz[y+1][x] , matriz[y][ x + 1] , matriz[y+1][x+1] ) >= 240 )

Ahora dentro de ese if usaria una pila o una lista enlazada para almacenar las celulas. O simplemente un array lo suficientemente grande. Utilizaria una structura para manejar la informacion de manera sencilla:

struct celula {
int x , y:
int promedio;
}
struct celula Lcelula[500];

Dentro del if seria algo asi

Lcelula [i].x = x;
Lcelula [i].y = y;
Lcelula [i].promedio = ....
i++;

Al terminar los dos for tenes un array con las celulas y la variable i te dice la cantidad de celulas.

Esa seria mi idea. Espero que algo te sirva. Cualquier duda comenta.

Para evitar el uso repetido de los pixeles simplemente podes multiplicar la intensidad de cada pixel por -1 para que al probar con el pixel nuevamente el promedio de negativo y escape de esa opciones.
Lo bueno de multiplicar por menos uno es que facilmente podes restaurar la matriz original.

Saludos.

PD: Tenes en cuenta que pasaron 50 minutos desde un mensaje tuyo y el siguiente. Tenes que ser mas paciente.