2017-08-08 84 views
1

我生成了一系列的aruco标记DICT_4X4_50,我打印它们,但是当我在此图像上启动探测器时,例如,它不起作用。虽然标记相当可见:为什么aruco没有在我的图像中检测到标记

enter image description here

int main(int argv, char** argc) 
{ 
    Mat frame = imread(argc[1], CV_LOAD_IMAGE_COLOR); 

    vector<int> markerIds; 
    vector<vector<Point2f>> markerCorners, rejectedCandidates; 

    Ptr<aruco::Dictionary> markerDictionary = aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME::DICT_4X4_50); 

    aruco::detectMarkers(frame, markerDictionary, markerCorners, markerIds); 


    aruco::drawDetectedMarkers(frame, markerCorners, markerIds); 
    imshow("Webcam", frame); 
    waitKey(0); 

} 

是图像不够好,或者是有一些参数,我可以修改?

+1

您是否校准过相机? –

+0

@ΦXocę웃Пepeúpaツ不,我还没有校准我的相机,但我只是想检测标记的时刻,它的工作原理,当我给它一个很好的清晰图像 –

+1

尝试让它在良好的照明工作第一 – chris

回答

0

我检查了rejectedCandidates,我发现它检测到标记,但由于某种原因它被拒绝了!

所以我转移到另一个标记,这是Apriltags,它给出了更好的结果..我不知道哪个库是最好的那里,但继续尝试,看看哪一个适合你。

0

您的标记的角对于算法不可见;这对我们来说几乎不可见。如果他们是,你的头脑只是推断他们的立场。

相关问题