SLAM14讲ch7Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
搜了好久又看了下书,改到debug模式下,发现pp.y pp.x qq.x qq.y的数值溢出了也就是img的下标,修改判断条件就好了
//修复bug,防止下标越界
//(pp.y>=0&&qq.y>=0&&pp.x>=0&&qq.x>=0)&&(pp.y<=img.rows&&qq.y<=img.rows&&pp.x<=img.cols&&qq.x<=img.cols)&&
if ((pp.y>=0&&qq.y>=0&&pp.x>=0&&qq.x>=0)&&(pp.y<=img.rows&&qq.y<=img.rows&&pp.x<=img.cols&&qq.x<=img.cols)&&(img.at<uchar>(pp.y, pp.x) < img.at<uchar>(qq.y, qq.x))) {
d |= 1 << k;
}
}
desc[i] = d;
再次运行