我正在使用的程序正在读取一些位图,并且需要32FC1图像。
我正在尝试创建这些图像。
cv::Mat M1(255, 255, CV_32FC1, cv::Scalar(0,0,0));
cv::imwrite( "my_bitmap.bmp", M1 );
然而,当我检查深度时,它总是CV_8U。
我该如何创建包含正确信息的文件?
更新:使用不同的文件扩展名(例如.tif或.png)没有任何区别。
我正在使用已经实现的代码 - 使用cvLoadImage
读取它。
我正在尝试创建现有代码可以使用的文件 - 该代码检查图像类型。
我无法在现有代码中转换文件。现有代码不会尝试读取随机图像类型并将其转换为所需类型,而是检查文件是否属于需要的类型。
我发现 - 感谢答案 - cv :: imwrite仅写入整数类型图像。
是否有其他方法 - 使用OpenCV或其他方式 - 来编写图像,以便最终获得CV_32F类型?
再次更新:读取图像的代码...如果进入一个cv :: Mat:
cv::Mat x = cv::imread(x_files, CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);
现有代码如下:
IplImage *I = cvLoadImage(x_files.c_str(), CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);
cv::Mat
对象? - Jacob