OpenCV guarda imágenes CV_32FC1

Un programa que estoy usando es leer algunos mapas de bits y espera imágenes 32FC1.

Estoy tratando de crear estas imágenes.

cv::Mat M1(255, 255, CV_32FC1, cv::Scalar(0,0,0));
cv::imwrite( "my_bitmap.bmp", M1 );

pero cuando compruebo la profundidad, siempre es CV_8U

¿Cómo puedo crear los archivos para que contengan la información correcta?

Actualizar: No hace ninguna diferencia si utilizo una extensión de archivo diferente, por ejemplo, tif o png

Lo estoy leyendo, usando un código que ya está implementado, concvLoadImage.

Estoy tratando de CREAR los archivos que puede usar el código existente, que verifica el tipo de imagen.

No puedo convertir archivos en el código existente. El código existente no intenta leer el tipo de imagen al azar y convertirlo al tipo deseado, sino que comprueba que los archivos sean del tipo que necesita.

Descubrí, gracias por las respuestas, que cv :: imwrite solo escribe imágenes de tipo entero.

¿Hay otra forma, ya sea utilizando OpenCV o alguna otra cosa, para escribir las imágenes de modo que termine con el tipo CV_32F?

Actualizar de nuevo: El código para leer la imagen ... si está en un cv :: Mat:

cv::Mat x = cv::imread(x_files, CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);

El código existente:

IplImage *I = cvLoadImage(x_files.c_str(), CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);

Respuestas a la pregunta(2)

Su respuesta a la pregunta