gpt4 book ai didi

python - 角点优化方法,CORNER_REFINE_SUBPIX,来自 AcUro,使用 Python 和 OpenCV

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:18 25 4
gpt4 key购买 nike

您好

我想提高 aruco.detectMarkers 标记检测的准确性。所以,我想使用 Corner Refine Method with CORNER_REFINE_SUBPIX , 但我不明白它是如何在 python 中实现的。

示例代码:

frame = cv.imread("test.png") 
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
para = aruco.DetectorParameters_create()
det_corners, ids, rejected = aruco.detectMarkers(gray,dictionary,parameters=para)
aruco.drawDetectedMarkers(frame,det_corners,ids)

我尝试过的事情:

para.cornerRefinementMethod()
para.cornerRefinementMethod(aruco.CORNER_REFINE_SUBPIX)
para.cornerRefinementMethod.CORNER_REFINE_SUBPIX
para = aruco.DetectorParameters_create(aruco.CORNER_REFINE_SUBPIX)
para = aruco.DetectorParameters_create(para.cornerRefinementMethod(aruco.CORNER_REFINE_SUBPIX))

它们没有用,我是 python ArUco 的新手,所以我希望有一个简单明了的解决方案。

我还想像 Documentation 中那样实现封闭标记(第 4 页)。你碰巧知道是否有办法在 python 中生成这些封闭的标记?

最佳答案

关于您问题的第一部分,您的回答非常接近:我认为您的问题在于切换和调整“para”选项。如果是这样,你只需要在参数对象中设置相应的值,如

para.cornerRefinementMethod = aruco.CORNER_REFINE_SUBPIX

请注意,“aruco.CORNER_REFINE_SUBPIX”只是一个整数。您可以通过在控制台中键入 type(aruco.CORNER_REFINE_SUBPIX) 来验证这一点。因此,为“para”对象赋值就像上面提到的那样。

您可能还想调整 para.cornerRefinementWinSize,它似乎是以代码像素为单位实现的,而不是实际的图像像素单位。

关于第二部分,您可能需要编写一个函数,在角点处添加方框,您可以使用 detectMarker 函数获得该函数。请注意,角点始终按顺时针顺序排列,因此您可以轻松分配正确的偏移值(如“向上和向左”、“向上和向右”等)。

关于python - 角点优化方法,CORNER_REFINE_SUBPIX,来自 AcUro,使用 Python 和 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53079757/

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