2013-04-03 41 views
1

我有一個二維雙重類型的矩陣。爲什麼openCV Mat.at與原始矩陣不匹配

雙**結果; (8334 * 34大小)

的值是這樣的: 0.00211094,0,6.10098e-006 .......

我使用的代碼板M =墊(ROW,COL,CV_64F ,結果),

,但是當我檢查元素,我發現值不匹配,並且在很奇怪,像5.325e-344(太小m的值!)

COUT <( 0,0)!= result [0] [0]

我測試一個小矩陣,答案匹配矩陣。

double a = 0.00211094; 
double b = 6.10098e-006; 
double c=0; 
double aa[3][3] = {{a, b, c}, {0.4, 0.5, 0.6}, {0.7, 0.8, 0.9}}; 
Mat m = Mat(3, 3, CV_64F, aa); 

cout<<m.at<double>(0,1)<<endl; 

有人能告訴我爲什麼嗎?這是我的C++內存的問題(結果矩陣太大?)?

+0

Mat可能是不連續的,你正在訪問內存的填充部分? – alrikai

回答

0

只能將小矩陣設置爲Mat。

所以我嘗試將每個元素設置爲墊子。

for(i...){ 
for(j...){ 
    m.at<double>(i,j) =results[i][j]; 
} 
} 

它的工作原理。

有趣!