将矢量数组加载到矢量RGB数组时遇到问题。
在
rgbv = pointcloud_RGB[i];
我收到错误“矢量下标超出范围”。有人可以指导我。
此致
苏哈斯
const std::vector<cv::Vec3b>& pointcloud_RGB;
for (unsigned int i=0; i<points.size(); i++) {
cv::Vec3b rgbv(255,255,255);
if (pointcloud_RGB.size() >= i) {
rgbv = pointcloud_RGB[i];
}
}
答案 0 :(得分:2)
你有一个错误。
如果pointcloud_RGB.size() == i
,那么i
是向量末尾之后的一个元素。
要解决此问题,只需改变您的条件:
if (pointcloud_RGB.size() >= i) {
对此:
if (pointcloud_RGB.size() > i) {
答案 1 :(得分:0)
for (unsigned int i=0; i<points.size(); i++) {
cv::Vec3b rgbv(255,255,255);
if (i<pointcloud_RGB.size() ) {
rgbv = pointcloud_RGB[i];
}
}
This will fix, out of bound error