Foro donde postear temas generales de programación
Moderator: Junta Directiva
-
Kaelyn
- Posts: 9
- Joined: Thu Jun 05, 2008 3:10 am
Post
by Kaelyn » Fri Jun 06, 2008 3:26 am
exacto tengo q realizar lo mismo q la cmucam
no tiene gracia q me compre la cmucam, seria trabajo q yo no haria

-
Kaelyn
- Posts: 9
- Joined: Thu Jun 05, 2008 3:10 am
Post
by Kaelyn » Fri Jun 06, 2008 4:05 am
ya cuando solucione todos mis problemas se los presnto aqui
oka gracias es q soy novata

me entienden

Last edited by
Kaelyn on Fri Jun 06, 2008 7:44 pm, edited 1 time in total.
-
Ranganok
- Usuario Desarrollador

- Posts: 3874
- Joined: Mon Nov 07, 2005 3:10 pm
- Location: Barbaros del Valle
-
Contact:
Post
by Ranganok » Fri Jun 06, 2008 9:33 am
Kaelyn, intenta no escribir un post para cada frase ya que aumenta el tamaño del tema innecesariamente, si te has olvidado de poner algo puedes editar el post anterior.
S2
Ranganok Schahzaman
-
oab_boa
- Novato

- Posts: 13
- Joined: Tue Jul 08, 2008 5:26 pm
Post
by oab_boa » Mon Dec 15, 2008 5:17 pm
Buen Dia amigos, este es mi primer mensaje ya que hace poco que estoy registrado, estoy siguiendo a modo de tutorial este foro, usando builder-C++ 6. Estoy teniendo complicaciones en el acceso a un pixel de la imagen usando punteros, lo que tengo es esto:
unsigned char *Puntero;
Puntero = Imagen.punt.lpIndex;
for(int x=0; x<320; x++){
for(int y = 0; y<240; y++){
r = *Puntero; //el color rojo está en el primer byte
g = *(Puntero+1); //el verde en el segundo
b = *(Puntero+2); // y el azul en el tercero
*Puntero = r+10;
*(Puntero+1) = g+10;
*(Puntero+2) = b+10;
Puntero += 3; //subo de tres en tres bytes
}
}
Lo cual anda perfectamente pero haciendo unrecorrido secuencial del puntero de 3 en 3 bytes
Estoy teniendo problemas de Violacion de acceso si quiero hacer un acceso directo en la forma:
Puntero += 3*(320*fila+culumna); en vez de usar
Puntero += 3;
solo me accede con un maximo de fila=14, columna=10.
Se entiende el problema?
Le paso a alguien o solo estiy haciendo mal uso del puntero.
Gracias y saludos a todos.
-
Ranganok
- Usuario Desarrollador

- Posts: 3874
- Joined: Mon Nov 07, 2005 3:10 pm
- Location: Barbaros del Valle
-
Contact:
Post
by Ranganok » Mon Dec 15, 2008 6:55 pm
Creo que el problema es que estas haciendo un mal uso del puntero:
Tienes un array Imagen[320][240][3] es decir de 230400 bytes (=320*240*3). Es decir que tienes un máximo de 240 filas y 320 columnas.
Para posicionarte dentro de un pixel de la imagen directamente tienes que ir a la fila X y la columna Y de la siguiente forma:
Puntero = 3 * (320 * X + Y) + Imagen.punt.lpIndex;
El 3 es porque cada pixel tiene 3 bytes (R,G,B), 320 porque cada fila tiene 320 columnas e Imagen.punt.lpIndex porque es la posición de memória que marca el inicio del Array.
Si vas haciendo
Puntero += 3*(320*X+Y);
dentro del bucle (for) quiere decir que cada iteración en vez de irte al píxel siguiente harás un salto de X filas e Y columnas por lo que es posible que al poco rato te salgas del Array (por culpa del +=).
S2
Ranganok Schahzaman
-
fusion
- Usuario Avanzado

- Posts: 389
- Joined: Tue Oct 09, 2007 2:12 pm
- Nombre: Javier Lopez Segura
- Location: Madrid
-
Contact:
Post
by fusion » Mon Dec 15, 2008 8:38 pm
Me parece es al reves:
puntero=3*(y*320+x)
-
oab_boa
- Novato

- Posts: 13
- Joined: Tue Jul 08, 2008 5:26 pm
Post
by oab_boa » Mon Dec 15, 2008 8:53 pm
fusion wrote:Me parece es al reves:
puntero=3*(y*320+x)
Voy aprobarlo, entre las pruevas que hice, esta la tenia en mente pero por algo no la implemente,
vere que pasa, a simple vista parece que tenes razon, ya que como puse yo anteriormente estaba desplazando y en el acceso directo no preciso desplazar, solo acceder directamente.
gracias !!!!!!!
-
oab_boa
- Novato

- Posts: 13
- Joined: Tue Jul 08, 2008 5:26 pm
Post
by oab_boa » Tue Dec 16, 2008 1:02 pm
Tanto Ranganok como Fusion tenian razon, me estaba llendo del array porque desplazaba el puntero en lugar de ir directamente a la posicion que buscaba.
gracias y saludos a ambos
-
oab_boa
- Novato

- Posts: 13
- Joined: Tue Jul 08, 2008 5:26 pm
Post
by oab_boa » Mon Nov 15, 2010 9:44 pm
Buenas gente del foro,
He retomado un trabajo en VA que tenia suspendido hace algun tiempo, y que habia nacido desde este mismo foro.
Queria acudir a sus memorias si es que quedan todavia, resulta que implemente el modelo HLS y me gustaria saber si alguien ya lo implemento (creo que si) para evaluar resultados y de paso el metodo para usar este espacio de colores en la busqueda de zonas en la imagen. Se entiende mi consulta?
Gracias de ante mano.
Orlando
-
Ranganok
- Usuario Desarrollador

- Posts: 3874
- Joined: Mon Nov 07, 2005 3:10 pm
- Location: Barbaros del Valle
-
Contact:
Post
by Ranganok » Tue Nov 16, 2010 9:42 am
Uff, hace años implementé el paso de RGB a HLS, (cuando mif sacó la primera versión del manual de visión artificial), pero creo que ya no lo tengo...
Estaba en C# y era bastante rápido.
Lo bueno del HLS es que puedes indentificar colores similares más fácilmente que con el RGB (sólo necesitas la H con limitacions de L y S).
¿Qué es lo que quieres exáctamente?
S2
Ranganok Schahzaman
Users browsing this forum: No registered users and 1 guest