Я делаю небольшой проект с ARToolkit plus. Мне показалось странным, что идентификатор обнаруженного маркера всегда равен -1, так как достоверность маркера также всегда равна 0,0. Я загрузил файл patt.hiro, поставляемый со стандартной застежкой-молнией ARTK plus. Код ниже показывает, что я делаю:
фрагмент из функции DrawGLScene:
//Render the webcam background
IplImage* img = showWebcam();
// do the OpenGL camera setup
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(tracker->getTracker()->getProjectionMatrix());
//Detect the markers in the video frame
ARToolKitPlus::ARMarkerInfo* markerinfo=0;
int nummarkers = detectMarkers(img, &markerinfo);
функция ‘detectMarkers’:
int detectMarkers(IplImage* image, ARToolKitPlus::ARMarkerInfo** markerinfo){
cvFlip(image, image, 0);
int nummarkers;
tracker->getTracker()->calc((uchar*)(image->imageData), -1, false, markerinfo, &nummarkers);
return nummarkers;
Программа успешно обнаруживает маркеры в сцене, но не дает им никакого идентификатора или доверительного отношения, даже если маркер загружен в память. Любая помощь действительно ценится!
Задача ещё не решена.
Других решений пока нет …