Я пытаюсь использовать функцию opencv, которая принимает std::vector<cv::Point3f>
среди других параметров. В моей программе у меня есть std::vector<cv::Point3f> worldPoints
и еще один std::vector<int> mask
, оба размера больше, чем то, что я хочу отправить.
Я хочу передать функции opencv только записи, имеющие соответствующую ненулевую маску, настолько эффективно, насколько это возможно.
std::vector<cv::Point3f> worldPointsSubset;
for (int i=0; i<mask.size(); i++) {
if (mask[i] != 0) {
worldPointsSubset.push_back(worldPoints[i]);
}
}
// Then use worldPointsSubset in function
Есть ли другой способ, возможно, не связанный с копированием данных?
РЕДАКТИРОВАТЬ 1: Я имею в виду функцию solvePnPRansac ()