Thread: [artoolkit-commits] artoolkit/lib/SRC/AR arLabeling.c,1.5,1.6
Optical marker tracking and overlay for augmented reality.
Brought to you by:
philip_lamb
From: Philip L. <phi...@us...> - 2006-11-17 03:35:02
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/AR In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv7134 Modified Files: arLabeling.c Log Message: arDebug fixes. Index: arLabeling.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/AR/arLabeling.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** arLabeling.c 3 Oct 2006 21:36:05 -0000 1.5 --- arLabeling.c 17 Nov 2006 03:35:00 -0000 1.6 *************** *** 225,248 **** for(i = 1; i < lxsize-1; i++, pnt+=poff, pnt2++) { #if (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ARGB) ! if( *(pnt+1) + *(pnt+2) + *(pnt+3) <= thresht3 ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ABGR) ! if( *(pnt+1) + *(pnt+2) + *(pnt+3) <= thresht3 ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGRA) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGR) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGBA) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGB) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_MONO) ! if( *(pnt) <= thresh ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) ! if( *(pnt+1) <= thresh ) { #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs) ! if( *(pnt+0) <= thresh ) { #else # error Unknown default pixel format defined in config.h #endif pnt1 = &(pnt2[-lxsize]); if( *pnt1 > 0 ) { --- 225,249 ---- for(i = 1; i < lxsize-1; i++, pnt+=poff, pnt2++) { #if (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ARGB) ! if( *(pnt+1) + *(pnt+2) + *(pnt+3) <= thresht3 ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ABGR) ! if( *(pnt+1) + *(pnt+2) + *(pnt+3) <= thresht3 ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGRA) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGR) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGBA) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGB) ! if( *(pnt+0) + *(pnt+1) + *(pnt+2) <= thresht3 ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_MONO) ! if( *(pnt) <= thresh ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) ! if( *(pnt+1) <= thresh ) #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs) ! if( *(pnt+0) <= thresh ) #else # error Unknown default pixel format defined in config.h #endif + { pnt1 = &(pnt2[-lxsize]); if( *pnt1 > 0 ) { *************** *** 482,485 **** --- 483,498 ---- double *wpos; int thresht3 = thresh * 3; + static int imageProcModePrev = -1; + static int imXsizePrev = -1; + static int imYsizePrev = -1; + + // Ensure that the debug image is correct size. + // If size has changed, debug image will need to be re-allocated. + if (imageProcModePrev != arImageProcMode || imXsizePrev != arImXsize || imYsizePrev != arImYsize) { + arLabelingCleanup(); + imageProcModePrev = arImageProcMode; + imXsizePrev = arImXsize; + imYsizePrev = arImYsize; + } if( arImageProcMode == AR_IMAGE_PROC_IN_HALF ) { *************** *** 589,596 **** #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) if( *(pnt+1) <= thresh ) { ! *(dpnt+1) = 255; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs) if( *(pnt+0) <= thresh ) { ! *(dpnt+0) = 255; #else # error Unknown default pixel format defined in config.h --- 602,609 ---- #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) if( *(pnt+1) <= thresh ) { ! *(dpnt+0) = 128; *(dpnt+1) = 235; // *(dpnt+0) is chroma, set to 128 to maintain black & white debug image. #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs) if( *(pnt+0) <= thresh ) { ! *(dpnt+0) = 235; *(dpnt+1) = 128; // *(dpnt+1) is chroma, set to 128 to maintain black & white debug image. #else # error Unknown default pixel format defined in config.h *************** *** 696,720 **** *pnt2 = 0; #if (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ARGB) ! *(dpnt+1) = *(dpnt+2) = *(dpnt+3) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ABGR) ! *(dpnt+1) = *(dpnt+2) = *(dpnt+3) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGRA) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGR) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGBA) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGB) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_MONO) ! *(dpnt) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) ! *(dpnt+1) = 0; #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs) ! *(dpnt+0) = 0; #else # error Unknown default pixel format defined in config.h #endif - } } if (arImageProcMode == AR_IMAGE_PROC_IN_HALF) pnt += arImXsize*AR_PIX_SIZE_DEFAULT; --- 709,732 ---- *pnt2 = 0; #if (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ARGB) ! *(dpnt+1) = *(dpnt+2) = *(dpnt+3) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ABGR) ! *(dpnt+1) = *(dpnt+2) = *(dpnt+3) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGRA) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGR) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGBA) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGB) ! *(dpnt+0) = *(dpnt+1) = *(dpnt+2) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_MONO) ! *(dpnt) = 0; } #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) ! *(dpnt+0) = 128; *(dpnt+1) = 16; } // *(dpnt+0) is chroma, set to 128 to maintain black & white debug image. #elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs) ! *(dpnt+0) = 16; *(dpnt+1) = 128; } // *(dpnt+1) is chroma, set to 128 to maintain black & white debug image. #else # error Unknown default pixel format defined in config.h #endif } if (arImageProcMode == AR_IMAGE_PROC_IN_HALF) pnt += arImXsize*AR_PIX_SIZE_DEFAULT; *************** *** 761,762 **** --- 773,787 ---- return( l_image ); } + + void arLabelingCleanup(void) + { + if (arImageL) { + free (arImageL); + arImageL = NULL; + arImage = NULL; + } + if (arImageR) { + free (arImageR); + arImageR = NULL; + } + } |