2016-10-10 10 views
1

나는 aruco를 사용하여 마커를 감지하고 있습니다.QT C++ - 마커 기반 증강 현실

std::vector<int> ids; 
    std::vector<std::vector<cv::Point2f> > corners; 

    cv::aruco::detectMarkers(image, dictionary, corners, ids); 
    if (ids.size() > 0) 
     cv::aruco::drawDetectedMarkers(imageCopy, corners, ids); 

drawDetectedMarkers 메서드를 사용하려면 마커에 3D 개체를 추가하고 싶습니다. C# 언어로 구현 된 유사한 프로젝트를 살펴 보았습니다. 나는 그들의 단결 물체를 가져갔습니다. 그러나 어떤 마커에 어떤 3D 물체를 집어 넣는 가장 좋은 방법인지 모르겠습니다. openscenegraph 또는 opengl을 사용해야합니까? 이 과정에서도 마커 보드를 사용할 수 있습니다. 나는 실시간으로 rvec (보드의 회전 벡터)와 tvec (보드의 번역 벡터) 값을 얻었다. 3d 객체 (QT)에서 처음입니다. 나는 모든 제안에 열려 있습니다.

답변

0

3D 시각화를 위해 OpenCV Viz 라이브러리를 활용할 수 있습니다. 사실 OpenCV Viz는 OpenSceneGraph의 간소화 된 버전입니다. OpenCV 2.4 이상을 사용하는 경우 Viz가 기본값입니다. OBJ 및 PLY 형식의 메쉬 파일을 지원합니다. ARUCO의 rvec/tvec 출력을 사용하여 Viz에서 3D 오브젝트를 변형 할 수 있습니다. 샘플 코드 스 니펫을 보려면 내 게시물을 살펴보십시오. (Click) OpenCV 2.4 버전은 here, 3.1 버전은 here을 클릭하십시오.