2016-05-01 23 views
0

私はサイズ[2500 x 1]の行列Aを持っています。今、行列の最初に[1]を追加して、行列の新しいサイズが[2501 x 1]になるようにします。私が書いたコードを以下に示します。私は間違って何ができるか入力引数の形式がpush_backで一致しませんopencv

C:\Users\ankitk\Documents\Visual Studio 2015\Projects\spt\Release>spt OpenCV Error: Formats of input arguments do not match() in cv::Mat::push_back, file C:\builds\master_PackSlave-win32-vc12-shared\opencv\modules\core\src\matrix.cpp, line 823 –

cv::Mat X = cv::Mat::ones(1, 1, CV_64FC1); 
cv::Mat imgBlock = testImage(rect); 
     cv::Mat yy = imgBlock.clone(); 
     cv::Mat xx = yy.reshape(0, 2500); 
X.push_back(xx); 

しかし、私はコードを実行しています、OpenCVのは、などのエラーを投げていますか?

+0

画像としてテキストを投稿しないでください。エラーメッセージをテキストとしてコピーして質問の本文に貼り付けます。 – Sabuncu

+0

C:\ Users \ ankitk \ Documents \ Visual Studio 2015 \ Projects \ spt \ Release> spt OpenCVエラー:入力引数の形式がcv :: Mat :: push_backのファイル(C:\ builds \ master_PackSlave)と一致しません-win32-vc12-shared \ opencv \ modules \ core \ src \ matrix.cpp、823行目 – Ankit

答えて

1

エラーメッセージが表示される理由は、XtestImageの種類が一致しないためです。同じタイプの行列のみを結合することができます(documentationに記載されています)。あなたはこのコード

std::cout << X.type() << std::endl; 
std::cout << imgBlock.type() << std::endl; 

を実行すると

ますが、出力として二つの異なる番号を取得します。

Xのタイプを画像のタイプに合わせて変更するか、testImageCV_64FC1に変換してから追加する必要があります。

関連する問題