如何读取浮点数的图像
OpenCV: how to read an image of floats
我在openCV中创建了一个Mat如下:
cv::Mat m = cv::Mat(10,10, CV_32FC1);
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
m.at<float>(i,j) = 1;
}
}
并将其保存到磁盘:
imwrite("out.png", m);
我现在试着这样读:
cv::Mat m = imread("out.png", CV_LOAD_IMAGE_UNCHANGED);
但是m中的数据似乎是完全随机的,当像m.at<float>(5,5)
这样访问时。
我怎么能读回写在它的数据?例如,在matlab中我可以这样做:
m = imread("out.png")
它给出了正确的1的矩阵
谢谢
参见imwrite
imwrite函数将图像保存到指定的文件中。图像格式是根据文件名扩展名选择的(有关扩展名列表,请参阅imread())。只有8位(或16位无符号(CV_16U)在PNG, JPEG 2000和TIFF的情况下)单通道或3通道(与' BGR '通道顺序)图像可以使用此功能保存。如果格式,深度或通道顺序不同,在保存前使用Mat::convertTo()和cvtColor()进行转换。或者,使用通用的XML I/O函数将图像保存为XML或YAML格式。
深度,convertTo
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 使用提升将数据从 PyObject 复制到浮点数 *
- 使用浮点数和双精度数的非常小数字的数学
- 使用英特尔内联函数将打包的 8 位整数乘以浮点数向量
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 返回浮点数的小数位数
- txt 文件中浮点数的最大和最小值
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 将浮点数转换为无符号字符数组并打印出来
- 如何将时间字符串 (M:SS) 转换为浮点数
- 如何将浮点数(*)[6]转换为浮点**类型?
- C++将浮点数乘以分数
- 表示RGB图像的浮点数组的初始CV::MAT
- 从浮点数组创建可视C++图像
- 将卤化物与表示为浮点数组的 HDR 图像一起使用
- OpenCV将浮点数据馈送到图像拼接过程中
- 如何读取浮点数的图像
- opencv:如何将浮点数组保存为图像