2017-05-25 97 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

请将代码作为代码发布,而不是图像。 – 2017-05-25 06:11:15

+0

你的文字图像[不是很有用](// meta.unix.stackexchange.com/q/4086)。它不能被朗读或复制到编辑器中,而且它的索引也不是很好,这意味着具有相同问题的其他用户不太可能在此找到答案。请[编辑]您的文章直接合并相关文本(最好使用复制+粘贴以避免转录错误)。 –

+0

我已经更正了我的代码,因此我会根据此处张贴的图像键入代码 – hoboh

回答

0

我已经通过vconcat()函数解决了问题