• Domingo 22 de Diciembre de 2024, 13:01

Autor Tema:  procesamiento de imagenes!!  (Leído 3151 veces)

la mole p

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
procesamiento de imagenes!!
« en: Lunes 2 de Febrero de 2009, 09:03 »
0
hola a todos!!
Estoy desactualizado con mi programacion en VB 6.0, estoy haciendo un proyecto de procesamiento de imagenes en el cual utilizo para leer y escribir las API creo q ya conocidas por todos getpixel y setpixel de la siguiene forma:

Public Sub leer()
For j = 2 To 240
    For i = 2 To 320
        M(j, i) = (GetPixel(Picture1.hdc, i, j) Mod &H10000) / &H100   ' para poder obtener la componente G
    Next i
Next j
End Sub

Public Sub escribir()
For j = 1 To H
    For i = 1 To W
        SetPixel Picture3.hdc, i , j , RGB(M2(j, i), M2(j, i), M2(j, i))
    Next i
Next j
End Sub

pero en cuanto a velocidad no me convence!!!!
quedaria muy agradecido si alguien sabe de alguna alternativa mucho mejor q obviamente me ayude a mejorar la velocidad de mi codigo, ya sea con punteros, etc!!!

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: procesamiento de imagenes!!
« Respuesta #1 en: Lunes 2 de Febrero de 2009, 16:45 »
0
Cita de: "la mole p"
pero en cuanto a velocidad no me convence!!!!
Si quieres mi opinión, eso es intrínseco a que VB es LENTO. Si quieres más velocidad, prueba con VC++.

Un par de consejos si aún así quieres aumentar la velocidad: evita las APIs y hazlo manualmente como un fichero binario, y sobre todo evita la división (que es la operación de enteros más lenta para la CPU): intenta descomponerla en otras operaciones como rotamiento de bits hacia la izquierda ya que usas un divisor múltiplo de 2.

Salud

la mole p

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: procesamiento de imagenes!!
« Respuesta #2 en: Lunes 2 de Febrero de 2009, 21:06 »
0
gracias mosquito por tu opinion, justamente la otra vez estuve investigando como crear una dll en VC++ para ser utilizadas en VB6.0, por lo que ya mi proyecto esta bastante avanzado en VB6.0 y necesito terminarlo lo antes posible jejeje, pero no tuve suerte, mis conocimientos en c++ son basicos y pues en cuanto a VC++ soy nuevo en el tema.

Pondria el link del cual me guie pero no tengo permiso todavia para eso.

como le hago???  :wacko:

la mole p

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: procesamiento de imagenes!!
« Respuesta #3 en: Martes 3 de Febrero de 2009, 03:37 »
0
Cita de: "moskito"
evita las APIs y hazlo manualmente como un fichero binario, y sobre todo evita la división

mosko y podria saber a que te refieres con eso, disculpa mi ignorancia :P

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: procesamiento de imagenes!!
« Respuesta #4 en: Martes 3 de Febrero de 2009, 13:31 »
0
Cita de: "la mole p"
Cita de: "moskito"
evita las APIs y hazlo manualmente como un fichero binario, y sobre todo evita la división

mosko y podria saber a que te refieres con eso, disculpa mi ignorancia :P
Estás perdonado :lol:

Las API (Application Programming Interface) son las llamadas al sistema de Win32. Algunas son lentas, otras rápidas, pero si puedes evitarlas, mejor. Si abres tú mismo el fichero de la imagen y lo procesas manualmente, tendrás más bajo control qué se hace y qué no y por tanto podrías mejorar la velocidad de la API que usas. Es cuestión de probar.

Y en cuanto a la división, creo que ya te lo he explicado en el anterior post.

la mole p

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: procesamiento de imagenes!!
« Respuesta #5 en: Martes 3 de Febrero de 2009, 14:26 »
0
Cita de: "moskito"
Si abres tú mismo el fichero de la imagen y lo procesas manualmente, tendrás más bajo control qué se hace y qué no y por tanto podrías mejorar la velocidad de la API que usas. Es cuestión de probar.

Mosquito y alguna idea de como puedo hacer eso, me disculparas otra vez :D

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: procesamiento de imagenes!!
« Respuesta #6 en: Martes 3 de Febrero de 2009, 21:28 »
0
Bueno, eso depende de qué parte no controlas:

1. Abrir el fichero de la imagen en modo binario
2. Obtener la información que necesites

Ten en cuenta que el segundo paso puede ser complicado dependiendo del formato de las imágenes con que estés trabajando (BMP, JPG, GIF, TIFF, etc...)

la mole p

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: procesamiento de imagenes!!
« Respuesta #7 en: Miércoles 4 de Febrero de 2009, 01:04 »
0
mosquito:
hummm con respecto al paso numero 1, no tengo la mas minima idea :wacko: , me gustaria q me explicaras al detalle como lograr eso.

En cuanto a la informacion q necesito, bueno no comprendo bien tu enunciado, pero lo unico que quiero es obtener la componente G del modelo de color RGB, osea una matriz con numero de filas = al alto de la imagen, numero de columnas= al ancho de la imagen y con valores de 0-255(trabajando con una resolucion de 8 bits, 256 niveles de grises).

solo trabajo con imagenes jpg y una que otra bmp.

el tema de la velocidad es muy importante para mi, ya que mi codigo tendra q permitir un procesamiento en tiempo real, bueno al menos lo mas proximo posible(por lo mismo q lo estoy desarrollando en VB6).

Te agradecere me apoyes con esto!!!!

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: procesamiento de imagenes!!
« Respuesta #8 en: Miércoles 4 de Febrero de 2009, 13:04 »
0
Para el procesamiento de fichero, que es algo básico, aquí tienes mil y una explicaciones.

Como te decía, para tratar con ficheros binarios, hay que saber qué estructura tienen, es decir, qué significan los datos que hay en el fichero. Esta es sin duda la parte más complicada, así que si finalmente vas a hacer así, te dejo un enlace del formato JPEG y uno del formato BMP.

Si vas a tratar imágenes en tiempo real, por favor reconsidera el uso de VB6.

Saludos y muuuuuuuuuucha suerte  :good:

la mole p

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: procesamiento de imagenes!!
« Respuesta #9 en: Miércoles 4 de Febrero de 2009, 15:37 »
0
gracias mosquito, y si de todas maneras pienso hacer evolucionar mi codigo a VC++, muy agradecido por todo!!!!!
arigato gosaimashita!!!!