2013-05-11 61 views
0

我是新來的opencv,我想從文本文件中讀取像素值。我正在閱讀並將其存儲在浮點向量中。複製浮點數據到墊子

vector<float> iArray; 

我想從該浮點數據創建一個圖像。我必須將浮點數據複製到Mat。

我正在這樣做,它似乎沒有工作。

Mat image(640, 480, CV_32FC3); 
for (int i = 0; i < iArray.size(); ++i) 
    image = iArray.at(i); 

就像其他數據類型,我假設將值複製到圖像將是足夠的,但事實並非如此。我相信我錯了。請幫幫我。謝謝。

回答

0

看來,你正在試圖做某些事情,而沒有閱讀文檔什麼是錯誤的方式。

爲什麼用3個通道創建Mat?你的輸入圖像是否有3個通道?看來你必須做到以下幾點:

Mat image(Size(640,480) CV_32FC1); 
int k=0; 
for (int i = 0; i < image.rows; ++i) 
{ 
    for (int j = 0; j < image.cols; ++j) 
    { 
     image.at<float>(i,j) = iArray[k]; 
     ++k; 
    } 
} 
+0

是的,這是一個3頻道圖像 – rish 2013-05-11 07:35:25

+0

謝謝你的解決方案。我意識到我的錯誤。我在1D拿走了Mat,這是錯誤的。還有一個問題。 – rish 2013-05-11 07:39:25