2017-05-25 13 views
-2
cv::Vec<double, 9> 4; 
for(int j = 0; j <3; ++j) { 
    r[3 * j] = x[j]; 
    r[3 * j + 1] = y[j]; 
    r[3 * j + 2] = z[j]; 
} 
vector<double> xi_, yi_, zi_; 
     for (int j = 0; j < n; ++j) { 
      xi_.push_back(obj_pts.at<double>(0, j)); 
      yi_.push_back(obj_pts.at<double>(1, j)); 
      zi_.push_back(obj_pts.at<double>(2, j)); 
     } 
    cv::Mat Xi[xi_]; 
    cv::Mat Yi[yi_]; 
    cv::Mat Zi[zi_]; 
    cv::Mat XXcs(3, n,CV_64F), XXc, mo; 
    mo = cv::Mat::ones(1, n, CV_64F); 
(297th)  XXcs.row(0) = r[0] * Xi.t() + (r[1] * c + r[2] * s) * Yi.t() + (-r[1] * s + r[2] * c) * Zi.t() + t_[0] * mo; 
     XXcs.row(1) = r[3] * Xi.t() + (r[4] * c + r[5] * s) * Yi.t() + (-r[4] * s + r[5] * c) * Zi.t() + t_[1] * mo; 
     XXcs.row(2) = r[6] * Xi.t() + (r[7] * c + r[8] * s) * Yi.t() + (-r[7] * s + r[8] * c) * Zi.t() + t_[2] * mo; 

プログラムをデバッグしようとしましたが、292番目のステートメントに実行するとエラーが表示されます。 情報はそれを修正するためにどのように `OpenCV Mat ::行の割り当て

The inferior stopped because it received a signal from the operating system. 

Signal name : 
SIGSEGV 
Signal meaning : 
Segmentation fault 

` のですか?ありがとうございます

+0

コードではなくコードとして投稿してください。 –

+0

あなたのイメージは非常に有用ではありません(// meta.unix.stackexchange.com/q/4086)。大声で読み上げたりエディタにコピーしたりすることはできません。インデックスはあまりうまくいきません。つまり、同じ問題を抱えている他のユーザーが答えを見つけにくいということです。関連するテキストを直接組み込むには、投稿を編集してください(できれば、コピーエラーを避けるためにコピー+貼り付けを使用することをおすすめします)。 –

+0

私はすでに私のコードを修正しているので、私はここに掲示されたイメージに従ってコードをタイプします – hoboh

答えて

0

私はすでにvconcat()関数で問題を解決しました