2013-03-04 58 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