Fortran - imagenes fortran

   
Vista:

imagenes fortran

Publicado por pablo bernal (7 intervenciones) el 04/10/2009 16:50:42
hola. quiero aprender algo sobre procesamiento de imagenes, y no se como obtener la matriz de de una imagen, por ejemplo la de la pantalla del ordenador o la que captura la webcam. asique si puede alguien decirme como hacerlo le estaria agradecido. muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Fortran
- Código fuente de Fortran
- Cursos de Fortran
- Temas de Fortran
información
Códigos de Fortran
- Ecuaciones lineales

RE:imagenes fortran

Publicado por Paco (2 intervenciones) el 05/10/2009 19:54:54
El proceso de imagen es todo un mundo, no es algo que en un foro de estos alguien escriba "Haz esto y ya está". Busca en Internet información sobre archivos gráficos y de video (es fácil de encontrar). Una vez que conoces la estructura del archivo de imagen, ya puedes empezar a trastear. En general, habrá, al menos, una cabecera donde se indiquen los datos relevantes del archivo, como dimensiones, unidades, número de colores, tipo de compresión si la hay, etc. A partir de los datos de la cabecera podrás leer la matriz de la imagen. Pero ten presente que el tratamiento de imagen, aunque sumamente interesante, puede ser terriblemente complicado. Y no digamos el video, si quieres hacer algo más que una simple edición para añadir o quitar sonido o fotogramas.

Valor y al toro.

Saludos,

PACO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por pablo bernal (7 intervenciones) el 06/10/2009 12:40:30
muchas gracias por tu respuesta Paco, lo que pasa es que yo soy nobel en esto y no se hacer muchas virguerias aun. entonces si hubiese alguien que me pudiese pasar una funcion o una subrutina en lenguaje fortran 90 para obtener la matriz de una imagen, y me explicase como utilizarla me vendria estupendo. sino, algun lugar en la web que me dijese por donde van los tiros. solo necesito obtener la matriz de la imagen; lo demas ya me lo ingenio yo.

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por Paco (2 intervenciones) el 06/10/2009 20:22:13
Te indico el formato de un fichero .BMP para que puedas empezar a trastear.
Puedes crear imágenes BMP desde la aplicación Paint de Windows, por ejemplo.
Esta es la estructura:

1. Cabecera (14 bytes):
Firma: 2 bytes Siempre "BM"
Tamaño archivo: 4 bytes
Reservado: 4 bytes Siempre 0
Offset a datos: 4 bytes Indica donde empieza la matriz de datos

2. Cabecera de informacion (40 bytes):
Tamaño de la cabecera de información 4 bytes
Anchura del bitmap en pixels 4 bytes
Altura del bitmap en pixels 4 bytes
Numero de planos 2 bytes Siempre 1 (1)
Numero de bits por pixel 2 bytes Válido 1,2,4,8,24,32
Tipo de compresion 4 bytes 0 = No compresion
Tamaño de la imagen 4 bytes Tamaño de la imagen
Resolucion horizontal 4 bytes
Resolucion vertical 4 bytes
Colores utilizados 4 bytes 0 = Todos (2)
Colores importantes 4 bytes 0 = Todos (2)

3. Tabla de colores (4 * Numero_de_colores bytes)
(Solo aparece si Bits por Pixel es <= 8, si no no hay tabla de colores)
Rojo (R) 1 byte
Verde (G) 1 byte
Azul (B) 1 byte
Reservado 1 byte (siempre cero)
(Repetido Numero_de_colores veces)

4. Aqui empieza la matriz de datos.

Por numero de colores, los modos de 24 y 32 bits son iguales. La diferencia es que el modo de 24 bits ocupa menos espacio (3 bytes por pixel), mientras que el de 32 bits desperdicia 1 byte a cambio de estar mejor optimizado de cara al hardware.

Los datos estan organizados de este modo (byte por byte):

Para 24 bits:
RR GG BB RR GG BB ... (cada conjunto RR GG BB representa 1 pixel)
y así hasta completar Ancho * Alto conjuntos RR GG BB.

Para 32 bits:
BB GG RR 00 BB GG RR 00 ... (cada conjunto BB GG RR 00 representa 1 pixel)
y así hasta completar Ancho * Alto conjuntos BB GG RR 00.

Debes abrir el fichero de imagen en formato binario. Los elementos de 2 bytes debes leerlos como enteros de 16 bits, los de 4 bytes como enteros de 32 bits.

Al leer los colores, en 32 bits, leelos directamente como numeros enteros de 32 bits. Si están en 24 bits, deberás leerlos byte por byte y hacer un color de 32 bits del siguiente modo:
Color(32 bits) = BB + 256*GG + 65536*RR

Los datos los leerás, por ejemplo, en una matriz de enteros de 32 bits de dimensines Altura_bitmap filas X Anchura_bitmap columnas.

En el formato de 32 bits, el orden de los colores aparece invertido respecto del de 24 bits porque, al utilizarlo como entero, los procesadores INTEL guardan en primer lugar los bytes menos significativos.

Nota (1):
En las antiguas tarjetas gráficas EGA y para algunos modos VGA, los colores se obtenían mediante la combinación de varios planos de imagen, cada uno con un color.

Nota (2):
Cuando se utilizan 8 bits o menos para color, lo que se hace es mapear el valor correspondiente a un color de 32 bits. Creo que también se hacía para modos de video con 15 y 16 bits (prácticamente desaparecidos con las modernas tarjetas de video).

Como ya te dije en la primera respuesta, busca en Internet, hay muchísima información. También un par de consejillos finales:

1. Busca un editor hexadecimal (hexedit o algún programa parecido), te permitirá ver directamente los bytes de tu archivo de imagen.

2. Quizá sería más adecuado emplear un lenguaje de programación que soporte estructuras de datos, como C o PASCAL.

Que lo disfrutes,

PACO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por Alejandro (1 intervención) el 21/10/2009 20:58:06
Hola pablo. Te comento que estuve abocado en el tema del procesamiento de imagenes en la ultima semana. Mi problema en particular era como hacer para leer un Bmp, interpretarlo y poder hacer uso de algún algoritmo matemático para realizar, por ejemplo, un desenfoque, control de contraste, etc... Al fin lo he logrado. El tema es que antes de leer un bmp hay que leer su header. El Header de un bmp tiene informacion muy valiosa sobre como debe leerse el bmp. Son 54 bytes reservados para toda la informacion que uno requiere al momento de interpretar una imagen. Haciendo uso del header he logrado hacer unas subrutinas para fortran que leen el bmp, copian sus tres canales (R, G, y B) en tres matrices separadas y reconstruyen el BMP nuevamente con cualquier operacion o algoritmo intermedio. Si lo necesitas te puedo explicar bien como se hace...

Saludos.

Alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por pablo (7 intervenciones) el 29/10/2009 00:13:27
pues si me vendria bastante bien... aunque es posible que entienda bastante poco, porque tengo un nivel muy basico... estoy haciendo una licenciatura en fisica y lo unico que he programado son cosas muy sencillas haciendo uso de los condicionales y bucles. nos hemos metido con funciones y subrutinas y poco mas... a mi me gusto y por eso quiero entrar mas en esto, pero ya te digo puede que entienda bien poco. de todas formas si me lo explicas me vendria fenomenal y estaria muy agradecido

muchas gracias y un saludo

pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por Alejandro (1 intervención) el 09/11/2009 15:25:05
Pues si, te la escribo bien explicada y te la envío, no tengo ningún problema! Yo estoy terminando la licenciatura en Astronomía. Supongo que entonces hablamos el mismo idioma! Me había olvidado de controlar el foro... perdon por la demora! deberías pasarme tu mail
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por pablo (7 intervenciones) el 03/12/2009 18:11:37
vale muchas gracias. y perdon por tardar yo tambien... mi mail es:
pablo_darkweb@hotmail.com

un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por pablo (7 intervenciones) el 18/02/2010 17:46:10
hola Alejandro. estoy tiempo revisando el correo para ver si me escribias explicándome el tema de las imágenes. no he encontrado ningun correo, asique este mensaje con la esperanza de que lo veas tu u otra persona y así salir de la duda que tengo...

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:imagenes fortran

Publicado por pablo (7 intervenciones) el 20/02/2010 11:55:18
hola Alejandro. estoy tiempo revisando el correo para ver si me escribias explicándome el tema de las imágenes. no he encontrado ningun correo, asique escribo este mensaje con la esperanza de que lo veas tu u otra persona y así salir de la duda que tengo...

por si lo ves mi correo es: pablo_darkweb@hotmail.com

un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar