2013-03-04 56 views
0

我在OpenCV中创建一个垫彩车的相关图片如下:OpenCV的:如何阅读

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的

感谢的正确矩阵

回答

3

imwrite

功能imwrite图像保存到指定的文件。图像格式是基于文件扩展名选择的(请参阅扩展名列表的imread())。 单通道或3通道(使用'BGR'通道顺序)只能使用此功能保存8位(或16位无符号(CV_16U),PNG,JPEG 2000和TIFF情况下的图像)。如果格式,深度或频道顺序不同,使用Mat :: convertTo()和cvtColor()在保存前将其转换。或者,使用通用XML I/O函数将图像保存为XML或YAML格式。

depthconvertTo