2016-10-21 5 views
0

上opencv2.4.10で異なる表示さ:マットは次のように、OpenCVののプロジェクトでは、プログラムをOSX

Mat A = Mat(9, 2, CV_16S); 
int x0,y0; 
ifstream fr("points.txt",ios::in); 
for (int j=0; j<9; j++) { 
      frs >> x0; 
      frs >> y0; 
      A.at<float>(j, 0) = x0; 
      A.at<float>(j, 1) = y0; 
     } 
cout << A << endl; 

が、私は、出力ました:accrually

[0, -16080; 
    0, 0; 
    0, 16640; 
    0, -16160; 
    0, -16384; 
    0, 16656; 
    0, -16128; 
    0, 16448; 
    0, 16640] 

を、ファイルfrs内のデータは次のとおりです。

-11 -8 
    0 -6 
    8 -6 
-7 -11 
-2 -10 
    9 -10 
-8 -14 
    3 -16 
    8 -18 

私は間違っていましたか?

答えて

0

まず、入力ファイルストリームの名前はfrですが、frからポイントを読み取ろうとしています。

[UPDATE]

あなたが代わりにCV_32Fの間違ったマットタイプCV_16Sを使用。ここでは、より多くの情報を見つけることができます。 Mat :: depthを参照してください。 http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html

このコードは有効です。

Mat A = Mat(9, 2, CV_32F); 
float x, y; 
std::ifstream fr("points.txt", std::ios::in); 
for (int j = 0; j < 9; j++) { 
    fr >> x >> y; 
    A.at<float>(j, 0) = x; 
    A.at<float>(j, 1) = y; 
} 
std::cout << A << std::endl; 
+0

はい、マットタイプCV_16S.THXは間違っています。 – XiaXuehai

関連する問題