Hi,
I use ARToolkitPlus with openCV with Visual c++ 6.0.
1- ARToolkitPlus doesn't detect my Pattern (I print a
marker in the site of ARToolkitPlus).
2- How to print the marker in the idmarker directory
because these are very small ?
This is my source code :
-----------Init-------------------------------
cvNamedWindow( "ARMobileDist", 0 );
image1 = frameGrabber.grabbe();
frameGrabber.showImage("ARMobileDist");
tracker = new
ARToolKitPlus::TrackerSingleMarkerImpl<6,6,6, 1,
8>(width,height);
const char* description = tracker->getDescription();
tracker->setLogger(&logger);
tracker->setPixelFormat(ARToolKitPlus::PIXEL_FORMAT_LUM);
tracker->setLoadUndistLUT(true);
if(!tracker->init("data/LogitechPro4000.dat", 1.0f,
1000.0f))
tracker->setPatternWidth(80);
tracker->setBorderWidth(useBCH ? 0.125f : 0.250f);
tracker->activateAutoThreshold(true);
tracker->setUndistortionMode(ARToolKitPlus::UNDIST_LUT);
tracker->setMarkerMode(useBCH ?
ARToolKitPlus::MARKER_ID_BCH :
ARToolKitPlus::MARKER_ID_SIMPLE);
for(int i=0; i<16; i++)
printf("%.2f %s", tracker->getModelViewMatrix()[i],
(i%4==3)?"\n " : "");
---------------Per frame----------------
image1 = frameGrabber.grabbe();
frameGrabber.showImage("ARMobileDist");
// convert RGB->Gray
IplImage *mCvGrayscaleImage =
cvCreateImage(cvSize(320, 240), 8, 1);
mCvGrayscaleImage->origin = image1->origin;
cvCvtColor(image1, mCvGrayscaleImage, CV_RGB2GRAY);
int markerId = tracker->calc((unsigned
char*)(mCvGrayscaleImage->imageData));
float conf = (float)tracker->getConfidence();
if(markerId!=(-1))
printf("\n\nFound marker %d (confidence
%d%%)\n\nPose-Matrix:\n ", markerId,
(int(conf*100.0f)));
c = cvWaitKey(10);
if( (char)c == 27 )
break;
many Thanks
___________________________________________________________________________
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet !
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences.
http://fr.answers.yahoo.com
|