Могу ли я получить позицию точки, используя отображение в OpenCV

Я сделал фото A используя камеру RGB. И я знаю положение точки g на фото A, Камера должна сделать калибровку камеры. Теперь я хочу знать положение точки g после калибровки. Я использую код, как показано ниже, но я хочу получить позицию точки, а не изображение. Как я могу это сделать? Вы можете дать мне какой-то совет?

initUndistortRectifyMap(
cameraMatrix,
distCoeffs,
Mat(),
Mat(),
Size(640, 480),
CV_32FC1,
map1, map2);
remap(A, B, map1, map2, cv::INTER_LINEAR);

Point2f g = Point2f(...,...);//i want to get the new position of the point not image B

1

Решение

Просто получите координаты с карт:

x, y — координаты перед отображением.

(map1 (x, y), map2 (x, y)) — координаты после отображения

Другими словами:

  • map1.at<float>(y,x) содержит преобразованные координаты х для каждой точки
    р (х, у).

  • map2.at<float>(y,x) содержит преобразованные координаты y для каждой точки
    р (х, у).

Смотрите документацию по переназначить функция.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]