gpt4 book ai didi

c++ - 我可以在 OpenCV 中使用重映射获取点位置吗

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:29 24 4
gpt4 key购买 nike

我用 RGB 相机拍摄了一张照片A。而且我知道点 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

最佳答案

只需使用 map 获取坐标:

x,y - 之后(不是之前)的坐标,正如 pasbi 在评论、映射中正确注意到的那样。

(map1(y,x),map2(y,x)) - 映射前的坐标

换句话说:

  • map1.at<float>(y,x)包含每个目标点的源 x 坐标p(x,y).

  • map2.at<float>(y,x)包含每个目标点的源 y 坐标p(x,y).

请参阅有关 remap 的文档功能。

关于c++ - 我可以在 OpenCV 中使用重映射获取点位置吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34265650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com