[artoolkit-commits] artoolkit/util/calib_cparam calib_cparam.c,1.6,1.7
Optical marker tracking and overlay for augmented reality.
Brought to you by:
philip_lamb
From: Philip L. <phi...@us...> - 2005-08-30 18:36:19
|
Update of /cvsroot/artoolkit/artoolkit/util/calib_cparam In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19940 Modified Files: calib_cparam.c Log Message: Step 2 of cleanup. Index: calib_cparam.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/util/calib_cparam/calib_cparam.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** calib_cparam.c 12 Aug 2005 21:41:03 -0000 1.6 --- calib_cparam.c 30 Aug 2005 18:36:10 -0000 1.7 *************** *** 64,70 **** #endif ! int xsize; ! int ysize; ! unsigned char *image; int refresh; --- 64,70 ---- #endif ! int gXsize; ! int gYsize; ! unsigned char *gImage; int refresh; *************** *** 136,143 **** scanf("%lf", &dist_factor[1]); while( getchar()!='\n' ); ! printf("Input distotion retio: F = "); scanf("%lf", &dist_factor[2]); while( getchar()!='\n' ); ! printf("Input Size Adjustment factor: S = "); scanf("%lf", &dist_factor[3]); while( getchar()!='\n' ); --- 136,143 ---- scanf("%lf", &dist_factor[1]); while( getchar()!='\n' ); ! printf("Input distortion ratio: F = "); scanf("%lf", &dist_factor[2]); while( getchar()!='\n' ); ! printf("Input size adjustment factor: S = "); scanf("%lf", &dist_factor[3]); while( getchar()!='\n' ); *************** *** 146,154 **** if( arVideoOpen( vconf ) < 0 ) exit(0); ! if( arVideoInqSize(&xsize, &ysize) < 0 ) exit(0); ! printf("Image size (x,y) = (%d,%d)\n", xsize, ysize); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); ! glutInitWindowSize(xsize, ysize); glutInitWindowPosition(100,100); win = glutCreateWindow("Camera calibration"); --- 146,154 ---- if( arVideoOpen( vconf ) < 0 ) exit(0); ! if( arVideoInqSize(&gXsize, &gYsize) < 0 ) exit(0); ! printf("Image size (x,y) = (%d,%d)\n", gXsize, gYsize); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); ! glutInitWindowSize(gXsize, gYsize); glutInitWindowPosition(100,100); win = glutCreateWindow("Camera calibration"); *************** *** 158,163 **** glMatrixMode(GL_PROJECTION); glLoadIdentity(); ! glOrtho(0, xsize, 0, ysize, -1.0, 1.0); ! glViewport(0, 0, xsize, ysize); glPixelZoom( (GLfloat)1.0, (GLfloat)-1.0); --- 158,163 ---- glMatrixMode(GL_PROJECTION); glLoadIdentity(); ! glOrtho(0, gXsize, 0, gYsize, -1.0, 1.0); ! glViewport(0, 0, gXsize, gYsize); glPixelZoom( (GLfloat)1.0, (GLfloat)-1.0); *************** *** 167,172 **** glClear(GL_COLOR_BUFFER_BIT); ! param.xsize = xsize; ! param.ysize = ysize; param.dist_factor[0] = dist_factor[0]; param.dist_factor[1] = dist_factor[1]; --- 167,172 ---- glClear(GL_COLOR_BUFFER_BIT); ! param.xsize = gXsize; ! param.ysize = gYsize; param.dist_factor[0] = dist_factor[0]; param.dist_factor[1] = dist_factor[1]; *************** *** 189,209 **** glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL ); ! if( xsize > 512 ) { tex1Xsize1 = 512; tex1Xsize2 = 1; ! while( tex1Xsize2 < xsize - tex1Xsize1 ) tex1Xsize2 *= 2; } else { tex1Xsize1 = 1; ! while( tex1Xsize1 < xsize ) tex1Xsize1 *= 2; } tex1Ysize = 1; ! while( tex1Ysize < ysize ) tex1Ysize *= 2; ! image = (unsigned char *)malloc( xsize*tex1Ysize*AR_PIX_SIZE ); ! if( image == NULL ) {printf("malloc error!!\n"); exit(0);} /* ! image = (unsigned char *)malloc( xsize*ysize*AR_PIX_SIZE ); ! if( image == NULL ) {printf("malloc error!!\n"); exit(0);} */ } --- 189,209 ---- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL ); ! if( gXsize > 512 ) { tex1Xsize1 = 512; tex1Xsize2 = 1; ! while( tex1Xsize2 < gXsize - tex1Xsize1 ) tex1Xsize2 *= 2; } else { tex1Xsize1 = 1; ! while( tex1Xsize1 < gXsize ) tex1Xsize1 *= 2; } tex1Ysize = 1; ! while( tex1Ysize < gYsize ) tex1Ysize *= 2; ! gImage = (unsigned char *)malloc( gXsize*tex1Ysize*AR_PIX_SIZE ); ! if( gImage == NULL ) {printf("malloc error!!\n"); exit(0);} /* ! gImage = (unsigned char *)malloc( gXsize*gYsize*AR_PIX_SIZE ); ! if( gImage == NULL ) {printf("malloc error!!\n"); exit(0);} */ } *************** *** 225,233 **** if( line_mode[line_no] == L_HORIZONTAL ) { theta = 90; ! radius = ysize/2; } else { theta = 0; ! radius = xsize/2; } } --- 225,233 ---- if( line_mode[line_no] == L_HORIZONTAL ) { theta = 90; ! radius = gYsize/2; } else { theta = 0; ! radius = gXsize/2; } } *************** *** 263,267 **** else { theta = 90; ! radius = ysize/2; } } --- 263,267 ---- else { theta = 90; ! radius = gYsize/2; } } *************** *** 272,276 **** else { theta = 0; ! radius = xsize/2; } } --- 272,276 ---- else { theta = 0; ! radius = gXsize/2; } } *************** *** 382,392 **** } p1 = dataPtr; ! p2 = image; ! for( i = 0; i < xsize*ysize*AR_PIX_SIZE; i++ ) *(p2++) = *(p1++); arVideoCapNext(); glClearColor( 0.0, 0.0, 0.0, 0.0 ); glClear(GL_COLOR_BUFFER_BIT); ! dispImage2( image ); glutSwapBuffers(); } --- 382,392 ---- } p1 = dataPtr; ! p2 = gImage; ! for( i = 0; i < gXsize*gYsize*AR_PIX_SIZE; i++ ) *(p2++) = *(p1++); arVideoCapNext(); glClearColor( 0.0, 0.0, 0.0, 0.0 ); glClear(GL_COLOR_BUFFER_BIT); ! dispImage2( gImage ); glutSwapBuffers(); } *************** *** 400,404 **** glClearColor( 0.0, 0.0, 0.0, 0.0 ); glClear(GL_COLOR_BUFFER_BIT); ! dispImage2( image ); drawPrevLine(); drawNextLine(); --- 400,404 ---- glClearColor( 0.0, 0.0, 0.0, 0.0 ); glClear(GL_COLOR_BUFFER_BIT); ! dispImage2( gImage ); drawPrevLine(); drawNextLine(); *************** *** 430,434 **** if( cos_theta != 0 ) { x1 = radius / cos_theta; ! x2 = (radius - (ysize-1)*sin_theta) / cos_theta; } else { --- 430,434 ---- if( cos_theta != 0 ) { x1 = radius / cos_theta; ! x2 = (radius - (gYsize-1)*sin_theta) / cos_theta; } else { *************** *** 438,442 **** if( sin_theta != 0 ) { y1 = radius / sin_theta; ! y2 = (radius - (xsize-1)*cos_theta) / sin_theta; } else { --- 438,442 ---- if( sin_theta != 0 ) { y1 = radius / sin_theta; ! y2 = (radius - (gXsize-1)*cos_theta) / sin_theta; } else { *************** *** 445,483 **** ey = -1; ! if( x1 >= 0 && x1 <= xsize-1 ) { sx = x1; sy = 0; ! if( x2 >= 0 && x2 <= xsize-1 ) { ex = x2; ! ey = ysize-1; } ! else if( y1 >= 0 && y1 <= ysize-1 ) { ex = 0; ey = y1; } ! else if( y2 >= 0 && y2 <= ysize-1 ) { ! ex = xsize-1; ey = y2; } else printf("???\n"); } ! else if( y1 >= 0 && y1 <= ysize-1 ) { sx = 0; sy = y1; ! if( x2 >= 0 && x2 <= xsize-1 ) { ex = x2; ! ey = ysize-1; } ! else if( y2 >= 0 && y2 <= ysize-1 ) { ! ex = xsize-1; ey = y2; } else printf("???\n"); } ! else if( x2 >= 0 && x2 <= xsize-1 ) { sx = x2; ! sy = ysize-1; ! if( y2 >= 0 && y2 <= ysize-1 ) { ! ex = xsize-1; ey = y2; } --- 445,483 ---- ey = -1; ! if( x1 >= 0 && x1 <= gXsize-1 ) { sx = x1; sy = 0; ! if( x2 >= 0 && x2 <= gXsize-1 ) { ex = x2; ! ey = gYsize-1; } ! else if( y1 >= 0 && y1 <= gYsize-1 ) { ex = 0; ey = y1; } ! else if( y2 >= 0 && y2 <= gYsize-1 ) { ! ex = gXsize-1; ey = y2; } else printf("???\n"); } ! else if( y1 >= 0 && y1 <= gYsize-1 ) { sx = 0; sy = y1; ! if( x2 >= 0 && x2 <= gXsize-1 ) { ex = x2; ! ey = gYsize-1; } ! else if( y2 >= 0 && y2 <= gYsize-1 ) { ! ex = gXsize-1; ey = y2; } else printf("???\n"); } ! else if( x2 >= 0 && x2 <= gXsize-1 ) { sx = x2; ! sy = gYsize-1; ! if( y2 >= 0 && y2 <= gYsize-1 ) { ! ex = gXsize-1; ey = y2; } *************** *** 505,523 **** glBegin(GL_LINE_STRIP); if( a*a >= b*b ) { ! for( i = -20; i <= ysize+20; i+=10 ) { x = -(b*i + c)/a; y = i; arParamIdeal2Observ( dist_factor, x, y, &x1, &y1 ); ! glVertex2f( x1, ysize-1-y1 ); } } else { ! for( i = -20; i <= xsize+20; i+=10 ) { x = i; y = -(a*i + c)/b; arParamIdeal2Observ( dist_factor, x, y, &x1, &y1 ); ! glVertex2f( x1, ysize-1-y1 ); } } --- 505,523 ---- glBegin(GL_LINE_STRIP); if( a*a >= b*b ) { ! for( i = -20; i <= gYsize+20; i+=10 ) { x = -(b*i + c)/a; y = i; arParamIdeal2Observ( dist_factor, x, y, &x1, &y1 ); ! glVertex2f( x1, gYsize-1-y1 ); } } else { ! for( i = -20; i <= gXsize+20; i+=10 ) { x = i; y = -(a*i + c)/b; arParamIdeal2Observ( dist_factor, x, y, &x1, &y1 ); ! glVertex2f( x1, gYsize-1-y1 ); } } *************** *** 599,622 **** sx = 0; ! sy = ysize - 0.5; glPixelZoom( 1.0, -1.0); glRasterPos3i( sx, sy, 0 ); #if defined(AR_PIX_FORMAT_ARGB) ! glDrawPixels( xsize, ysize, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, pimage ); #elif defined(AR_PIX_FORMAT_ABGR) ! glDrawPixels( xsize, ysize, GL_ABGR, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_BGRA) ! glDrawPixels( xsize, ysize, GL_BGRA, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_BGR) ! glDrawPixels( xsize, ysize, GL_BGR, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_RGB) ! glDrawPixels( xsize, ysize, GL_RGB, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_RGBA) ! glDrawPixels( xsize, ysize, GL_RGBA, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_2vuy) ! glDrawPixels( xsize, ysize, GL_YCBCR_422_APPLE, GL_UNSIGNED_SHORT_8_8_REV_APPLE, pimage ); #elif defined(AR_PIX_FORMAT_yuvs) ! glDrawPixels( xsize, ysize, GL_YCBCR_422_APPLE, GL_UNSIGNED_SHORT_8_8_APPLE, pimage ); #else # error Unknown pixel format defined in config.h --- 599,622 ---- sx = 0; ! sy = gYsize - 0.5; glPixelZoom( 1.0, -1.0); glRasterPos3i( sx, sy, 0 ); #if defined(AR_PIX_FORMAT_ARGB) ! glDrawPixels( gXsize, gYsize, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, pimage ); #elif defined(AR_PIX_FORMAT_ABGR) ! glDrawPixels( gXsize, gYsize, GL_ABGR, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_BGRA) ! glDrawPixels( gXsize, gYsize, GL_BGRA, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_BGR) ! glDrawPixels( gXsize, gYsize, GL_BGR, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_RGB) ! glDrawPixels( gXsize, gYsize, GL_RGB, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_RGBA) ! glDrawPixels( gXsize, gYsize, GL_RGBA, GL_UNSIGNED_BYTE, pimage ); #elif defined(AR_PIX_FORMAT_2vuy) ! glDrawPixels( gXsize, gYsize, GL_YCBCR_422_APPLE, GL_UNSIGNED_SHORT_8_8_REV_APPLE, pimage ); #elif defined(AR_PIX_FORMAT_yuvs) ! glDrawPixels( gXsize, gYsize, GL_YCBCR_422_APPLE, GL_UNSIGNED_SHORT_8_8_APPLE, pimage ); #else # error Unknown pixel format defined in config.h *************** *** 625,629 **** else { glDisable( GL_DEPTH_TEST ); ! if( xsize > tex1Xsize1 ) dispImageTex1( pimage ); else dispImageTex2( pimage ); } --- 625,629 ---- else { glDisable( GL_DEPTH_TEST ); ! if( gXsize > tex1Xsize1 ) dispImageTex1( pimage ); else dispImageTex2( pimage ); } *************** *** 640,644 **** glMatrixMode(GL_MODELVIEW); ! glPixelStorei( GL_UNPACK_ROW_LENGTH, xsize ); glBindTexture( GL_TEXTURE_2D, glid[0] ); --- 640,644 ---- glMatrixMode(GL_MODELVIEW); ! glPixelStorei( GL_UNPACK_ROW_LENGTH, gXsize ); glBindTexture( GL_TEXTURE_2D, glid[0] ); *************** *** 663,671 **** #endif tx = 1.0; ! ty = (double)ysize / (double)tex1Ysize; sx = 0; ! sy = ysize; ex = sx + tex1Xsize1; ! ey = sy - ysize; z = 1.0; glBegin(GL_QUADS ); --- 663,671 ---- #endif tx = 1.0; ! ty = (double)gYsize / (double)tex1Ysize; sx = 0; ! sy = gYsize; ex = sx + tex1Xsize1; ! ey = sy - gYsize; z = 1.0; glBegin(GL_QUADS ); *************** *** 696,705 **** # error Unknown pixel format defined in config.h #endif ! tx = (double)(xsize-tex1Xsize1) / (double)tex1Xsize2; ! ty = (double)ysize / (double)tex1Ysize; sx = tex1Xsize1; ! sy = ysize; ex = sx + tex1Xsize2; ! ey = sy - ysize; z = 1.0; glBegin(GL_QUADS ); --- 696,705 ---- # error Unknown pixel format defined in config.h #endif ! tx = (double)(gXsize-tex1Xsize1) / (double)tex1Xsize2; ! ty = (double)gYsize / (double)tex1Ysize; sx = tex1Xsize1; ! sy = gYsize; ex = sx + tex1Xsize2; ! ey = sy - gYsize; z = 1.0; glBegin(GL_QUADS ); *************** *** 725,729 **** glMatrixMode(GL_MODELVIEW); ! glPixelStorei( GL_UNPACK_ROW_LENGTH, xsize ); glBindTexture( GL_TEXTURE_2D, glid[0] ); --- 725,729 ---- glMatrixMode(GL_MODELVIEW); ! glPixelStorei( GL_UNPACK_ROW_LENGTH, gXsize ); glBindTexture( GL_TEXTURE_2D, glid[0] ); *************** *** 747,756 **** # error Unknown pixel format defined in config.h #endif ! tx = (double)xsize / (double)tex1Xsize1; ! ty = (double)ysize / (double)tex1Ysize; sx = 0; ! sy = ysize; ! ex = sx + xsize; ! ey = sy - ysize; z = 1.0; glBegin(GL_QUADS ); --- 747,756 ---- # error Unknown pixel format defined in config.h #endif ! tx = (double)gXsize / (double)tex1Xsize1; ! ty = (double)gYsize / (double)tex1Ysize; sx = 0; ! sy = gYsize; ! ex = sx + gXsize; ! ey = sy - gYsize; z = 1.0; glBegin(GL_QUADS ); |