2017-08-04 58 views
0

莫名其妙地檢測charuco鑽石不適用於我的更大的圖像。使用1920x1080的原始圖像,它不能可靠地識別ID(每次鑽石ID元素都在切換位置)。在第一張圖片中,您可以看到它識別(7,9,45,2)。OpenCV:charuco(鑽石)不適用於更大的圖像。調整哪些參數?

1920x1080 image. wrong ids order and pose estimation

然後我嘗試下采樣圖像960×540,除以校準參數,可以F,C,一半,和它的作品!該id被正確識別爲(2,7,45,9)並且姿態估計是準確的。

960x540 image. correctly estimated

如何使它更大的圖像工作?我試圖根據絕對像素單位(而不是相對於圖像大小)更改檢測參數。這是我當前參數的列表。我意識到增加threasholding的窗口大小有助於識別正方形,但不能用於id或姿勢估計。

nmarkers: 1024 adaptiveThreshWinSizeMin: 13 adaptiveThreshWinSizeMax: 113 adaptiveThreshWinSizeStep: 10 adaptiveThreshWinSize: 42 adaptiveThreshConstant: 7 minMarkerPerimeterRate: 0.1 maxMarkerPerimeterRate: 4.0 polygonalApproxAccuracyRate: 0.05 minCornerDistance: 10.0 minDistanceToBorder: 10 minMarkerDistance: 10.0 minMarkerDistanceRate: 0.05 doCornerRefinement: false cornerRefinementWinSize: 5 cornerRefinementMaxIterations: 30 cornerRefinementMinAccuracy: 0.1 markerBorderBits: 1 perspectiveRemovePixelPerCell: 8 perspectiveRemoveIgnoredMarginPerCell: 0.13 maxErroneousBitsInBorderRate: 0.04 minOtsuStdDev: 5.0 errorCorrectionRate: 0.6 任何提示?

謝謝!

回答

0

最後我需要修補opencv aruco模塊。這是一個閾值升高太快(到第4)到圖像大小(在refineDetectedMarkers)的問題。解決方法是使minRepDistance中的detectCharucoDiamond僅與圖像大小成線性比例。

完整答案和補丁在opencv forum

相關問題