- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个用于检测 aruco 标记的程序,我想使用 1 个标记他的姿势从具有多个 aruco ID 的相机图像进行计算。
我有一个 aruco id 为 256、257、258 的板问题是,当看到 aruco id 256 时,它将计算图像中的所有 aruco 标签,而不仅仅是 aruco id 256。
在我的代码下面有没有解决这个问题的方法。
************** 代码 ****************
// if marker detected = ID 256
for(int i = 0;i < ids.size();i++){
std::cout << "aruco ID: " << ids[i] << std::endl; //print de marker ID die we gevonden hebben
if (ids[i]==256) // als de gedetecteerde marker gelijk is aan de gewenste marker
{
std::cout << "aruco marker grootte in meters: " << actual_marker_length << std::endl;
cv::aruco::drawDetectedMarkers(image_copy, corners, ids);
std::vector<cv::Vec3d> rvecs, tvecs;
cv::aruco::estimatePoseSingleMarkers(corners, actual_marker_length,
camera_matrix, dist_coeffs, rvecs, tvecs);
cv::aruco::drawAxis(image_copy, camera_matrix, dist_coeffs,
rvecs[i], tvecs[i], 0.1);
vector_to_marker.str(std::string());
vector_to_marker << std::setprecision(4)
<< "x: " << std::setw(8)<< tvecs[0](0);
std::cout << "x: " << tvecs[0](0) << std::endl;
cv::putText(image_copy, vector_to_marker.str(),
cvPoint(10, 30), cv::FONT_HERSHEY_SIMPLEX, 0.6,
cvScalar(0, 252, 124), 1, CV_AA);
vector_to_marker.str(std::string());
vector_to_marker << std::setprecision(4)
<< "y: " << std::setw(8) << tvecs[0](1);
std::cout << "y: " << tvecs[0](1) << std::endl;
cv::putText(image_copy, vector_to_marker.str(),
cvPoint(10, 50), cv::FONT_HERSHEY_SIMPLEX, 0.6,
cvScalar(0, 252, 124), 1, CV_AA);
vector_to_marker.str(std::string());
vector_to_marker << std::setprecision(4)
<< "z: " << std::setw(8) << tvecs[0](2);
berekenZ(ArucoMarker, tvecs[0](2));
cv::putText(image_copy, vector_to_marker.str(),
cvPoint(10, 70), cv::FONT_HERSHEY_SIMPLEX, 0.6,
cvScalar(0, 252, 124), 1, CV_AA);
berekeningenIrLock(tvecs[0](0), tvecs[0](1), tvecs[0](2));
}
最佳答案
如果您指的是绘制所有检测到的标记,我不确定您何时说它“计算所有标记”。如果是这样,您的代码的问题是 if
语句中的以下行。
cv::aruco::drawDetectedMarkers(image_copy, corners, ids);
这会不断绘制所有检测到的 ids
,即使您只将 rvec[i]
和 tvec[i]
传递给 drawAxis
函数。
关于c++ - Aruco Marker 检测单个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55062211/
我已经完成了标记的姿势估计并获得了 rvec 和 tvec 值。我不知道如何找到它的中心,因为我需要绘制一个需要中心值的圆柱体。 我该怎么做? 最佳答案 标记的 tvec 是标记从原点的平移 (x,y
我正在运行一个 Ubuntu 虚拟机,Python 3.6.1,Anaconda 4.4.0(64 位)。我正在尝试运行 the code on this website .当我尝试使用 导入cv2.
您好,我在使用 aruco 时遇到错误。我只是想从教程中获取一个例子。我按照教程做了一切,但我得到: /home/pi/Programs/markerDetection/markerDetec
我的应用程序接收可以具有 bayer_rggb8 编码的相机图像。我需要将这些图像转换为 bgr8/rgb8/mono8 吗?或者 Aruco 可以检测拜耳编码的 cv::Mat 中的标记吗? 我使用
我正在尝试使用 Aruco 标记找到相机的方向。从旋转矩阵中提取的欧拉角在超过某个点后是不稳定的。随着相机与标记的距离增加,相机的偏航角值就不稳定。标记上的“Z”轴翻转。欧拉角不稳定,每一帧都不一样,
我一直在使用 Python 的 OpenCV 库,使用 ArUco 进行对象跟踪。 目标是获取 ArUco 标记中心的 x/y/z 坐标,以及相对于校准相机的角度。 我能够使用目前的代码在 aruco
我将 ArUco 库与 OpenCV 一起使用(更多信息 here),但我找不到从头开始构建和运行程序的方法。 安装库后,我可以访问不同的示例,但是如果我想创建一个新文件并在其中添加库 header
我一直在尝试使用可以提供纹理的客户摄像头来统一执行AruCo或标记检测,这不是普通摄像头,因此您不能使用该包装随附的常规webcamtexture,我一直在尝试可以想象的一切但这对我不起作用。我已经测
我有两张照片真的很像这个被正确识别为 5x5_250 字典的标记 209 虽然这另一个非常相似但无法识别,它是同一个 5x5_250 字典的标记 207: 而且标记 207 在另一张照片中被识别出来了
我正在使用虚拟工作室创建一个增强现实系统,该系统仅用于检测表面的方向和倾斜度。我是 C++ 的新手,想问问是否有人可以提供有关如何将 aruco 库实现到 visual studio 中的说明。 我已
我有一个用于检测 aruco 标记的程序,我想使用 1 个标记他的姿势从具有多个 aruco ID 的相机图像进行计算。 我有一个 aruco id 为 256、257、258 的板问题是,当看到 a
我是 ArUco 的新手,我在尝试理解输出中的单位时遇到了一些问题: 817=(527.126,235.966) (525.665,210.056) (552.459,208.619) (553.24
我正在尝试使用 OpenCV 4.1.1 和 Aruco 构建一个简单的增强现实应用程序。目标是将图像叠加在标记之上,但图像超出标记的边缘。 我已经校准了我的相机并获得了相机矩阵和畸变系数。通过使用
为 ArUco 进行相机标定有多重要?如果我不校准相机怎么办?如果我使用其他相机的校准数据怎么办?如果相机焦点发生变化,是否需要重新校准?为消费者应用进行校准的实用方法是什么? 最佳答案 在回答您的问
是否可以为 ArUco 训练新的标记?例如,在 ARToolKit 中,可以创建新的标记模式并使用 mk_patt.exe 训练它们,它会生成可用于检测模式的模式文件。是否可以在 ArUco 库中做类
我正在使用 ArUco 标记来校正透视图并计算图像的大小。在此图像中,我知道标记外边缘之间的确切距离,并使用它来计算黑色矩形的大小。 我的问题是 aruco::detectMarkers 并不总能识别
我使用函数cv.aruco.estimatePoseSingleMarkers()来获取rvec和tvec。使用这两个向量如何获得相机相对于 Aruco 标记的姿势? while (True):
我正在尝试计算 aruco 标记和相机之间的精确(3 厘米误差率是可以接受的)距离。我使用 python、opencv 和 aruco。我可以检测到它们(标记端为 0.023 米,即 2.3 厘米)但
我正在使用来自 OpenCV Contrib 的 ChAruCo 标记跟踪。我想跟踪多个板,但创建标记板的机制并不像我期望的那样。 我想象的是有一个字典(比如说,DICT_4X4_50)使用字典中不同
引用原文question ,当使用相对较大的长度标记(例如 0.65m)时,相机的位姿精度是否会提高? 最佳答案 使用单个标记会出现原题中描述的所有问题,无论标记的大小如何。如果你按比例因子 F 放大
我是一名优秀的程序员,十分优秀!