OpenCV Mat::row assignment

OpenCV Mat::row assignment

本文关键字:assignment row OpenCV Mat      更新时间:2023-10-16
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 条语句时出现错误。信息是">

The inferior stopped because it received a signal from the operating system.
Signal name : 
SIGSEGV
Signal meaning : 
Segmentation fault

'如何解决?谢谢

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