Marker-Target Evaluation Tool
download:
Viewer_exe_Win32.zip (2006-08-09)!
| Deadline | Issue | Comment |
| 2006-05-19 | Hintergrundfarbe konfigurierbar machen | |
| updated | Current Binary für Windows/Linux zum download | Hinweise um die statisch gelinkte Programmdatei kleiner zu kriegen evtl hier. |
| 2006-08-08 | Visualisierung: Achse für Rotationsfehler von Zentrum weg orientieren | erste Achse zeigt von Centroid zum Point of Interest (tip). Done! |
| 2006-08-09 | Visualisierung: andere 2 Achsen für Rotationsfehler von Zentrum weg orientieren | 2 cones can be shown, but they swap sometimes. TODO: fix it, or find another way to visualize the 2 cones. |
| - | "online"-modus | |
| - | beliebiges bild (jpeg) als hintergrund laden um die fehlervisualisierung als (manuellen) overlay über den marker zeigen zu können | load: done! TODO: image stays still in background |
| 2006-05-28 | Bug: Absturz beim Laden eines neuen Targets | Fixed! |
| 2006-05-24 | Option "Show/Hide Coordinate System" einfügen | Done! |
Augmented Reality Accuracy Visualization
| Deadline | Issue | Comment |
| - | !!OpenGL Fenster mit Kamerabild im Hintergrund | |
| - | Online-Anzeige des Markertargets + Kovarianzen | |
| - | Kalibrierung Kamerabild | |
| - | Berechnung der 3D Kovarianzen | hier aufpassen dass die berechnung der kovarianzen und die visualisierung in unterschiedlichen klassen geschieht, weil der berechnungsteil auch in anderen projekten wiederverwendet werden soll |
Code
OpenGL mit kamera im Hintergrund
Anfang der weitergeleiteten E-Mail:
Von: "Daniel Pustka"
Datum: 18. Mai 2006 11:26:33 MESZ
An: "'Martin Bauer'"
Betreff: GL-Code
Hier der OpenGL-Code, um ein OpenCV-Bild anzuzeigen:
MT_Err MTMarkerTracker::DrawImageGL(const IplImage *pImage)
{
MT_CHECK_INITIALIZED(DrawImageGL);
if (pImage == NULL){
SetLastError("NULL pImage pointer passed as argument");
return MT_Fail;
}
if (pImage->imageData == NULL){
SetLastError("Image with invalid data passed as argument");
return MT_Fail;
}
// get image size
CvSize size = cvGetSize(pImage);
// get viewport size
GLint nViewport[ 4 ];
glGetIntegerv( GL_VIEWPORT, nViewport );
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(-1, 1, -1, 1);
glRasterPos3f(-1, -1, -0.99);
glPixelZoom( static_cast( nViewport[ 2 ] ) / size.width,
static_cast( nViewport[ 3 ] ) / size.height );
glDrawPixels(size.width, size.height, GL_BGR_EXT, GL_UNSIGNED_BYTE,
pImage->imageData);
glPopMatrix();
return MT_Success;
}
Von: "Martin Groher"
Datum: 18. Mai 2006 11:07:00 MESZ
An: "'Martin Bauer'"
Betreff: Hintergrundtextur
//initial:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glViewport(0,0,w(),h());
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,1.0,0.0,1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearColor(0.0, 0.0, 0.0, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//load image into m_buffer (unsigned char *m_buffer)
//IMPORTANT: height and width must be of power 2!!
//...
//load image into texture memory
glTexImage2D(GL_TEXTURE_2D,
0,
GL_LUMINANCE,
nx,
ny,
0,
GL_LUMINANCE,
GL_UNSIGNED_BYTE,
m_buffer);
//draw texture
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0); //bottom left
glVertex2f(0.0,0.0);
glTexCoord2f(1.0,0.0); //bottom right
glVertex2f(1.0,0.0);
glTexCoord2f(1.0,1.0); //top right
glVertex2f(1.0,1.0);
glTexCoord2f(0.0,1.0); //top left
glVertex2f(0.0,1.0);
glEnd();
glDisable(GL_TEXTURE_2D);
//now, change GL_PROJECTION:
glMatrixMode(GL_PROJECTION);
//use for instance gluPerspective, glFrustum, etc...now
//...
//draw 3D foreground scene
//...
====================================
Martin Groher
Chair for Computer Aided Medical Procedures
fon: +49 89 289 17071
fax: +49 89 289 17059
Online-Modus: Einlesen von A.R.T. Trackingdaten
check out svn+ssh://$USER@svnnavab.informatik.tu-muenchen.de:/svn/svn/trunk/src/CAMPAR/src/CAMPAR/Tracking/NetTrackerDevice.cpp