- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我在使用 aruco 时遇到错误。我只是想从教程中获取一个例子。我按照教程做了一切,但我得到:
/home/pi/Programs/markerDetection/markerDetection.cpp: In function ‘int main(int, char**)’:
/home/pi/Programs/markerDetection/markerDetection.cpp:26:104: error: invalid initialization of reference of type ‘cv::Ptr<cv::aruco::Dictionary>&’ from expression of type ‘cv::aruco::Dictionary’
aruco::detectMarkers(inputImage, dictionary, markerCorners, markerIds, parameters, rejectedCandidates);
^
In file included from /home/pi/Programs/markerDetection/markerDetection.cpp:6:0:
/home/pi/opencv/include/opencv2/aruco.hpp:176:19: note: in passing argument 2 of ‘void cv::aruco::detectMarkers(cv::InputArray, cv::Ptr<cv::aruco::Dictionary>&, cv::OutputArrayOfArrays, cv::OutputArray, const cv::Ptr<cv::aruco::DetectorParameters>&, cv::OutputArrayOfArrays)’
CV_EXPORTS_W void detectMarkers(InputArray image, Ptr<Dictionary> &dictionary, OutputArrayOfArrays corners,
^
CMakeFiles/marker.dir/build.make:54: recipe for target 'CMakeFiles/marker.dir/markerDetection.cpp.o' failed
make[2]: *** [CMakeFiles/marker.dir/markerDetection.cpp.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/marker.dir/all' failed
make[1]: *** [CMakeFiles/marker.dir/all] Error 2
Makefile:76: recipe for target 'all' failed
make: *** [all] Error 2
我的代码是:
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/videoio/videoio.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/aruco.hpp"
#include <vector>
using namespace cv;
using namespace std;
int main (int argc, char** argv)
{
VideoCapture cap;
if(!cap.open(0)){
return 0;
}
for(;;){
Mat inputImage;
cap >> inputImage;
vector< int > markerIds;
vector< vector<Point2f> > markerCorners, rejectedCandidates;
aruco::DetectorParameters parameters;
aruco::Dictionary dictionary = aruco::getPredefinedDictionary(aruco::DICT_6X6_250);
aruco::detectMarkers(inputImage, dictionary, markerCorners, markerIds, parameters, rejectedCandidates);
Mat outputImage;
aruco::drawDetectedMarkers(outputImage, markerCorners, markerIds);
if(inputImage.empty()) break;
imshow("Webcam", outputImage);
if(waitKey(1) >= 0) break;
}
return 0;
}
我知道包含的内容太多,代码需要一些工作,但我只需要编译它,我不知道那里发生了什么。功能有变化吗?
最佳答案
以下代码适用于我:
字典声明:
cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);
作为函数getPredefinedDictionary
返回 Ptr<Dictionary>
( http://docs.opencv.org/trunk/d9/d6a/group__aruco.html )
检测标记:
cv::aruco::detectMarkers(gray, dictionary, marker_corners, marker_ids);
关于opencv - Aruco 教程代码无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391657/
我已经完成了标记的姿势估计并获得了 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 放大
我是一名优秀的程序员,十分优秀!