gpt4 book ai didi

opencv - find4QuadCornerSubpix 与cornerSubPix

转载 作者:行者123 更新时间:2023-12-03 14:48:37 26 4
gpt4 key购买 nike

我无法找到有关 find4QuadCornerSubpix() 函数的任何类型的信息。我试图了解 find4QuadCornerSubpix() 和 cornerSubPix() 之间的区别。

有人可以帮助我吗?

谢谢

最佳答案

TLDR;使用cornerSubPix,find4QuadCornerSubpix未完成

  • cornerSubPix 使用求解器在 mask 区域 (winSize) 内找到鞍点(一阶导数为零,二阶导数正在改变符号)。请注意, findChessboardCorners 将使用一个 2x2 的小窗口执行一个 cornerSubPix 调用,因此您已经获得了一些亚像素精度的坐标。
  • find4QuadCornerSubpix 尝试近似分隔棋盘格字段(“四边形”)的线并返回这些线的交叉点。 find4Quad 函数也仅使用每个提供的输入点(例如来自 findChessboardCorners)周围的屏蔽区域(“region_size”)。

  • 我用这些 abs 用人工生成的图像(添加低噪声,无失真,大多数四边形边缘长度约为 100pxl)测试了两个角的改进。以像素为单位测量的差异:
  • 均方根 0.0537 最大 0.1963; cv::findChessboardCorners(无额外引用):
  • 均方根 0.0368 最大 0.0969; (1) + 11x11 角子像素;与 ocv 教程中的参数相同
  • 均方根 0.2230 最大 1.2619; (1) + 11x11 find4QuadCornerSubpix (imgs 二值化 w. 自适应 Thr.)

  • 我测试了 3x3、11x11、50x50、100x100、150x150 并输入了二值化 w 的图像。自适应阈值;所有的结果都是一样的。
    我选择了一些真实世界的例子,其中内在校准对于类似于(2)的东西具有大约 0.08 的重投影 rms。对于 (3) 他们有 0.25 像素的 reproj。女士。
    所以目前(opencv 4.5.1 版)对我来说 find4QuadCornerSubpix 看起来未完成且无法使用。 0.5 的 rms 是我在没有任何子像素改进的情况下预期的最大误差。如果任何输入坐标比 region_size/2 更接近图像边界,该函数也会失败
    资料来源:
    https://github.com/opencv/opencv/blob/fc1a15626226609babd128e043cf7c4e32f567ca/modules/imgproc/src/cornersubpix.cpp
    https://github.com/opencv/opencv/blob/fc1a15626226609babd128e043cf7c4e32f567ca/modules/calib3d/src/quadsubpix.cpp
    https://github.com/opencv/opencv/blob/b450dd7a87bc69997a8417d94bdfb87427a9fe62/modules/calib3d/src/calibinit.cpp
    https://github.com/opencv/opencv/blob/b19f8603843ac63274379c9e36331db6d4917001/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp

    关于opencv - find4QuadCornerSubpix 与cornerSubPix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018039/

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