gpt4 book ai didi

c++ - 使用 RANSAC 估计两组点之间的二维变换

转载 作者:太空狗 更新时间:2023-10-29 23:50:10 27 4
gpt4 key购买 nike

据我所知,OpenCV 使用 RANSAC 来解决 findHomography 的问题,它返回一些有用的参数,例如 homograph_mask

但是,如果我只想估计 2D 变换,这意味着仿射矩阵,有没有办法使用与 findHomography 相同的方法,它使用 RANSAC 并返回该掩码?

最佳答案

您可以直接使用 estimateAffinePartial2D : https://docs.opencv.org/4.0.0/d9/d0c/group__calib3d.html#gad767faff73e9cbd8b9d92b955b50062d

cv::Mat cv::estimateAffinePartial2D (   
InputArray from,
InputArray to,
OutputArray inliers = noArray(),
int method = RANSAC,
double ransacReprojThreshold = 3,
size_t maxIters = 2000,
double confidence = 0.99,
size_t refineIters = 10
)

例如:

        src_pts = np.float32([pic1.key_points[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)
dst_pts = np.float32([pic2.key_points[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)

# Find the transformation between points, standard RANSAC
transformation_matrix, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)

# Compute a rigid transformation (without depth, only scale + rotation + translation) and RANSAC
transformation_rigid_matrix, rigid_mask = cv2.estimateAffinePartial2D(src_pts, dst_pts)

关于c++ - 使用 RANSAC 估计两组点之间的二维变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33141310/

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