C/Visual C - Convertir un BMP a una matriz

 
Vista:

Convertir un BMP a una matriz

Publicado por Jose (18 intervenciones) el 07/10/2002 22:11:42
Quisiera leer un BMP o cualquier otro formato de imagen, y pasarlo a una matriz, para poder manipular sus bits, se trataria de una imagen en blanco y negro, solo quiero obtener una matriz con unos y ceros, para extraer determinadas lineas, lo he intentado pero me dan fallos de proteccion.
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

RE:Convertir un BMP a una matriz

Publicado por Oliver++ (339 intervenciones) el 07/10/2002 23:51:33
la matriz la puedes implementar con new y delete. hacerla con tipos de datos bool. Y que tipo de errores de protección es que te da? si son por acceso a sonas restringidas es porque estas pasando usando mal los vectores.
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:Convertir un BMP a una matriz

Publicado por jose (18 intervenciones) el 08/10/2002 08:38:03
Me da fallo al leer la zona de memoria (acces violation), pero mi problema es que no se como leer un BMP (abrirlo como un fichero binario), y posteriormente recorrer sus elementos, porque no se que tipo de datos son los que tiene dentro, ni como tratarlos para meterlos en la matriz, o un vector, eso me da igual. Lo principal es como tratar el contenido del BMP, para obtener solo los bits propiamente de la imagen y guardarlos.
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:Convertir un BMP a una matriz

Publicado por Googol (255 intervenciones) el 08/10/2002 10:37:18
Puedes buscar el formato en Internet, no es difícil porque no está comprimido. El problema quizá sea que los quieres de un solo bit de profundidad de color, algo que no abunda especialmente.
También hay información sobre el formato en el MSDN de Microsoft. De hecho la estructura de datos sobre la información del BMP (que ahora no recuerdo cómo se llama) es en realidad su cabecera. Luego iban los bytes con los colores, empezando por la última línea, de izquierda a derecha
Suerte!
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:Convertir un BMP a una matriz

Publicado por jose (18 intervenciones) el 08/10/2002 15:13:05
Muchas graciasa los dos, lo buscare a ver que tal me va, seguramente tendre que volver a preguntaros algo.
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:Convertir un BMP a una matriz

Publicado por Oliver++ (339 intervenciones) el 08/10/2002 17:04:08
si encuentras info me dices que a mi tambien me interesa. te lo agradecere mucho jose.
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:Convertir un BMP a una matriz

Publicado por jose (18 intervenciones) el 08/10/2002 17:58:10
Ok
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:Convertir un BMP a una matriz

Publicado por Alvaro (122 intervenciones) el 09/10/2002 17:37:59
GDI es la respuesta.
Graphics Device Interface de Windows maneja los bitmaps.
Estos tiene una estructura compleja y pueden tener varios tipos de encabezados.
Lo mejor es que utilices la funcion LoadImage, que te permite cargar imagenes desde archivos y recursos.
Luego utilizas el HDC (Handle to Device Context) de la ventana para crear un hdc compatible con el bitmap que cargaste, esto con CreateCompatibleDC.
La función GetDIBits obtendra los bits del bitmap que cargaste.
Debes tomar en cuenta la compresión del Bitmap. este puede ser de 1 bit por pixel (monocromatico), 2 bpp (4 colores), ..., 8 bpp (2 ^ 8 colores), ..., 32 bpp (2 ^ 32 Colores o colores VGA).
Si creas una variable BITMAP y la asocias al HANDLE del bitmap que te retornó LoadImage con la función SelectObject obtendras las medidas en pixel, los bits por pixel, el ancho de cada scan line. etc...
Suerte...
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:Convertir un BMP a una matriz

Publicado por jose (18 intervenciones) el 09/10/2002 18:01:23
No podrias mandarme el codigo? , tan solo el de cargar el BMP, y acceder a los pixels, es que ya estoy desesperado de tanto probar con todo, y la verdad esta solucion me interesa mucho, si podrias mandarmelo te lo agradeceria. GRACIASSSSS
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:Convertir un BMP a una matriz

Publicado por Alvaro (122 intervenciones) el 09/10/2002 18:19:50
En realidad, a mi me gusta que las personas se esfuercen, sobre todo en lo referente a programación.
Si buscas abajo en el foro, veras que he protestado contra todas esas personas que piden que ‘les den el código para’.
Si en realidad te has esforzado entonces aquí va un pista.
Ten en cuenta que a mi también me costo descubrirlo.

HDC hdc;
HANDLE hBitmap;
BITMAP bmp;
hdc = CreateCompatibleDC(hDcDialogo);
hBitmap = LoadImage( .....);
SelectObject(hdc, hBitmap);
GetObject(hBitmap, ....);

char *buff;
int dimensiones = ¿¿¿????.
buff = (char *)malloc(dimensiones);
if (GetDIBits(....., buff, .....) ¡= dimensiones) {
//Error.
}

SUERTE...
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:Convertir un BMP a una matriz

Publicado por jose (18 intervenciones) el 09/10/2002 18:34:16
Muchas gracias por la pista, lo que me pasa es que es lo unico que me falta para terminar el proyecto, y esta es justo la parte del medio que une las piezas, y llevo desde el miercoles pasado buscando y buscando, y que no habia manera. Voy a probar esto, ya te contare. 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