C++ OpenCV:如何读取浮动图像

C++ OpenCV:如何读取浮动图像,c++,opencv,io,mat,C++,Opencv,Io,Mat,我在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; } } cv::Mat m = imread("out.png", CV_LOAD_IMAGE_UNCHANGED); 我现在试着阅读如下: cv::Ma

我在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;
     }
}
cv::Mat m = imread("out.png", CV_LOAD_IMAGE_UNCHANGED);
我现在试着阅读如下:

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;
     }
}
cv::Mat m = imread("out.png", CV_LOAD_IMAGE_UNCHANGED);
但是m中的数据似乎是完全随机的,例如当访问
m时,at(5,5)

如何读回写入其中的数据?例如,在matlab中,我可以执行以下操作:

m = imread("out.png") 
它给出了1的正确矩阵

谢谢

请参见

imwrite函数将图像保存到指定的文件中。根据文件扩展名选择图像格式(有关扩展名列表,请参阅imread()使用此函数只能保存8位(对于PNG、JPEG 2000和TIFF,则为16位无符号(CV_16U))单通道或3通道(具有“BGR”通道顺序)图像。如果格式、深度或通道顺序不同,则在保存前使用Mat::convertTo()和CVTCLOR()进行转换。或,使用通用XML I/O函数将图像保存为XML或YAML格式

,请参见

imwrite函数将图像保存到指定的文件中。根据文件扩展名选择图像格式(有关扩展名列表,请参阅imread()使用此函数只能保存8位(对于PNG、JPEG 2000和TIFF,则为16位无符号(CV_16U))单通道或3通道(具有“BGR”通道顺序)图像。如果格式、深度或通道顺序不同,则在保存前使用Mat::convertTo()和CVTCLOR()进行转换。或,使用通用XML I/O函数将图像保存为XML或YAML格式

,