问题标签 [aruco]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 iOS 上使用 aruco 构建 opencv 时,“不允许从 id 到 double 的函数式转换”
我正在尝试制作一个可以检测 Aruco 标记的 iOS 应用程序。所以,我下载了适用于 iOS 的 opencv2.framework,但我意识到 Aruco 并不包含在其中。在此页面之后,我手动编译将 opencv_contrib( https://github.com/opencv/opencv_contrib.git
) 模块文件夹添加到 opencv 模块文件夹中。这个过程运行良好,在 Xcode 中我可以访问 Aruco 函数。但我也得到了这个奇怪的错误:
function-style cast xcode error
我试过调试,运行时 v 作为双变量传递。显式转换(double)v
也无效。我怎样才能解决这个问题?
python - 为什么 ArUco 标记检测会给出奇怪且违反直觉的结果?
我正在使用一个简单的 ArUco 标记检测程序,该程序具有输入图像或视频以及输出旋转(角度 wrt 3D 轴)和转换(位置 wrt 3D 轴向量)。该程序主要基于以下3个功能:
- 检测标记
- 估计姿势单标记
- 绘制检测标记
我的目标是查看程序在连接到车辆时检测 ArUco 标记的准确度。(即印在车辆上的 ArUco 标记)
首先,我使用 calibrateCameraCharuco() 从 Blender(我用来渲染图像的软件)获取相机参数,这些参数非常接近理想的相机参数。(使用理想的相机参数,我得到相同的结果)
其次,我生成了一组图像并得出了如下所示的错误结果。-角度结果 - ArUco 标记尺寸 80 厘米
角度的行为很奇怪,因为错误首先对于低值来说是低的,对于中等值来说是高的,对于高角度值来说又是低的。此外,距离误差结果看起来与角度相同。
我想知道您之前是否有过这样的结果,或者您是否对为什么 ArUco Markers 的检测行为会这样有任何建议。
感谢您的关注,我提前感谢您的帮助。
opencv - 关于将detect_markers.cpp 与opencv aruco 一起使用的问题?
我正在使用 opencv 网站上的 detect_markers.cpp 来使用相机检测标记的姿势。编译没有错误后我得到了这个,那么我如何输入参数?http://docs.opencv.org/3.1.0/d5/dae/tutorial_aruco_detection.html
这是我得到的信息:基本标记检测用法:detecttest [params]
python - OpenCV-python 和 ArUco 库估计PoseSingleMarker() 模块没有属性
使用 OpenCV-python 和 aruco 库进行跟踪项目。使用时抛出以下错误
错误:
其他人工作正常
aruco.Dictionary_get(aruco.Dict_6x6_250)
aruco.DetectParameters_create()
知道为什么它会抛出那个错误吗?
编辑:它在帮助文档中
c++ - 在 aruco opencv 中使用单色相机捕获视频
我目前正在尝试将单色相机与 aruco 和 opencv 库一起使用,以加速计算并获得更好的标记捕获。我遇到的问题是,在运行 aruco_test 程序时,单色提要在屏幕上增加了三倍,因此分辨率降低了三分之二,并且每次检测到标记三次而不是一次。
我看到提要讨论了 opencv 中单色相机的类似问题。一些答案建议裁剪图像(这可以解决三倍问题,但不能解决较小的分辨率),但这似乎都是由 BGR2GRAY 或 GRAY2BGR 的转换引起的。任何有关究竟是什么导致图像增加三倍以及如何在 aruco 源代码或 opencv 源代码中绕过该部分的任何帮助将不胜感激。
信息:
驱动程序信息(不使用 libv4l2):
使用 Aruco 2.0.19 和 OpenCV 3.2
像素格式不是 YUYV 我不能简单地从相机输入中获取 Y 通道。
执行的代码:
c++ - 无法使用 OpenCV 3.1.0 检测 ArUco 标记
我正在尝试编写一个简单的 C++ 例程,首先将预定义的 ArUco 标记字典(例如 4x4_100)写入文件夹,然后使用 OpenCV 3.1 和 Visual Studio 2017 从文件夹中选择的特定图像中检测 ArUco 标记。我已经编译了所有使用 ArUco 标记所需的 OpenCV-contrib 库。我的例程构建没有任何错误,但即使在为内置的“aruco::detectMarkers”函数提供了所有正确的参数(例如图像、字典等)之后,我也无法检测到标记。你能帮我理解我的方法有什么问题吗?下面是一个最小的工作示例,测试图像附在此处“4x4Marker_40.jpg”:
c++ - 错误“命名空间 cv::aruco 没有成员:CharucoBoard”
我正在尝试使用 C++ 中的 ChArUcoBoard (chessboard + ArUco) 类校准相机,但在导入 Charuco 类时出现以下错误:“”namespace cv::aruco has no member :CharucoBoard”。事实上,我无法导入任何与“Charuco”相关的功能。我已经编译了 Opencv3.3.0 库,并且能够使用除“Charuco”功能之外的整个“aruco”类。您能否指出那里可能出现的问题?
ros - 旋转矢量 (Rxyz) 的 Aruco Ros 约定
Aruco Ros 打印标签 id,后跟关键点、Txyz(平移)和 Rxyz(旋转)。Rxyz 有 3 个弧度角。它代表哪个角度?是欧拉角吗?如果是,那么在6 个内在约定和 6 个外在约定中,它遵循哪一个?是罗德里格斯角还是其他什么?我有一个特殊情况,我知道标签和相机的轴。我可以弄清楚他们的 Rxyz 约定吗?
java - 捕获小型 arUco 标记
当我检测到 aruco 标记的一个小像素(长度和宽度都小于 0.4 厘米)时,我遇到了问题。有没有办法通过Android Java解决这个问题?
opencv - OpenCV:charuco(钻石)不适用于更大的图像。调整哪些参数?
以某种方式检测 charuco 钻石对我来说不适用于更大的图像。使用我的 1920x1080 原始图像,它既不能可靠地识别 id(钻石 id 元素每次都在切换位置)。在第一张图片中,您可以看到它识别出 (7, 9, 45, 2)。
然后我尝试将图像下采样到 960x540,并将校准参数 f、c 分成一半,它可以工作!id被正确识别为(2,7,45,9),姿态估计准确。
如何使它适用于更大的图像?我尝试根据绝对像素单位(与图像大小无关)更改检测参数。这是我当前参数的列表。我意识到增加阈值的窗口大小有助于识别正方形,但不适用于 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
有什么提示吗?
谢谢你!