Changeset 3977 for trunk/psLib/test/image/tst_psImageStats.c
- Timestamp:
- May 18, 2005, 7:18:20 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/test/image/tst_psImageStats.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/image/tst_psImageStats.c
r3973 r3977 113 113 tmpImage2 = psImageAlloc( IMAGE_X_SIZE*2, IMAGE_Y_SIZE*2, PS_TYPE_F32 ); 114 114 tmpMask2 = psImageAlloc( IMAGE_X_SIZE*2, IMAGE_Y_SIZE*2, PS_TYPE_U8 ); 115 tmpImage = psImageSubset(tmpImage2, (psRegion) { 116 IMAGE_X_SIZE/4, IMAGE_Y_SIZE/4, 117 IMAGE_X_SIZE/4+IMAGE_X_SIZE, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE 118 } 119 ); 120 tmpMask= psImageSubset(tmpMask2,(psRegion) { 121 IMAGE_X_SIZE/4, IMAGE_Y_SIZE/4, 122 IMAGE_X_SIZE/4+IMAGE_X_SIZE, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE 123 } 124 ); 115 tmpImage = psImageSubset(tmpImage2, psRegionSet(IMAGE_X_SIZE/4, IMAGE_X_SIZE/4+IMAGE_X_SIZE, 116 IMAGE_Y_SIZE/4, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE)); 117 tmpMask= psImageSubset(tmpMask2, psRegionSet(IMAGE_X_SIZE/4, IMAGE_X_SIZE/4+IMAGE_X_SIZE, 118 IMAGE_Y_SIZE/4, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE)); 125 119 } 126 120 … … 291 285 tmpImage2 = psImageAlloc( IMAGE_X_SIZE*2, IMAGE_Y_SIZE*2, PS_TYPE_F32 ); 292 286 tmpMask2 = psImageAlloc( IMAGE_X_SIZE*2, IMAGE_Y_SIZE*2, PS_TYPE_U8 ); 293 tmpImage = psImageSubset(tmpImage2,(psRegion) { 294 IMAGE_X_SIZE/4, IMAGE_Y_SIZE/4, 295 IMAGE_X_SIZE/4+IMAGE_X_SIZE, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE 296 } 297 ); 298 tmpMask = psImageSubset(tmpMask2,(psRegion) { 299 IMAGE_X_SIZE/4, IMAGE_Y_SIZE/4, 300 IMAGE_X_SIZE/4+IMAGE_X_SIZE, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE 301 } 302 ); 303 } 304 305 for ( i = 0;i < tmpImage->numRows;i++ ) { 306 for ( j = 0;j < tmpImage->numCols;j++ ) { 307 tmpImage->data.F32[ i ][ j ] = ( float ) ( i + j ); 308 } 309 } 310 for ( i = 0;i < tmpMask->numRows;i++ ) { 311 for ( j = 0;j < tmpMask->numCols;j++ ) { 312 if ( ( i > ( tmpMask->numRows / 2 ) ) && 313 ( j > ( tmpMask->numCols / 2 ) ) ) { 314 tmpMask->data.U8[ i ][ j ] = 1; 315 } else { 316 tmpMask->data.U8[ i ][ j ] = 0; 317 } 318 } 319 } 320 321 myStats = psStatsAlloc( PS_STAT_SAMPLE_MEAN ); 322 /*************************************************************************/ 323 /* Calculate Sample Mean with no mask */ 324 /*************************************************************************/ 325 psStats* tmpStats = myStats; 326 myStats = psImageStats( myStats, tmpImage, NULL, 0 ); 327 if ( myStats != tmpStats ) { 328 fprintf(stderr,"ERROR: input psStats not equal to return psStats\n"); 329 psAbort(__func__,"Failed input psStats equal to returned psStats"); 330 } 331 fprintf(stderr, "The sample mean was %.2f\n", myStats->sampleMean ); 332 333 /*************************************************************************/ 334 /* Calculate Sample Mean with mask */ 335 /*************************************************************************/ 336 337 myStats = psImageStats( myStats, tmpImage, tmpMask, 1 ); 338 fprintf(stderr, "The sample mean was %.2f\n", myStats->sampleMean ); 339 340 /*************************************************************************/ 341 /* Deallocate data structures */ 342 /*************************************************************************/ 343 psFree( myStats ); 344 psFree( tmpImage ); 345 psFree( tmpMask ); 346 psFree( tmpImage2 ); 347 psFree( tmpMask2 ); 348 } 349 350 /*************************************************************************/ 351 /* Test With Various Null Inputs */ 352 /*************************************************************************/ 353 354 tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32 ); 355 tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8 ); 356 myStats = psStatsAlloc( 0 ); 357 358 myStats2 = psImageStats( myStats, NULL, NULL, 0 ); 359 if ( myStats2 != NULL ) { 360 fprintf(stderr, "ERROR: myStats2 = psImageStats(myStats, NULL, NULL, 0) != NULL\n" ); 361 } 362 363 myStats2 = psImageStats( NULL, tmpImage, NULL, 0 ); 364 if ( myStats2 != NULL ) { 365 fprintf(stderr, "ERROR: myStats2 = psImageStats(NULL, tmpImage, NULL, 0) != NULL\n" ); 366 } 367 368 myStats2 = psImageStats( myStats, tmpImage, NULL, 0 ); 369 370 psFree( myStats ); 371 psFree( tmpImage ); 372 psFree( tmpMask ); 373 374 tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32); 375 tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U32); 376 myStats = psStatsAlloc( PS_STAT_SAMPLE_MEAN ); 377 myStats2 = psImageStats( myStats, tmpImage, tmpMask, 0 ); 378 if ( myStats2 != NULL ) { 379 fprintf(stderr, "ERROR: psImageStats did not return null when mask is invalid type.\n"); 380 } 381 psFree(tmpImage); 382 psFree(tmpMask); 383 psFree(myStats); 384 385 return ( !testStatus ); 287 tmpImage = psImageSubset(tmpImage2, psRegionSet(IMAGE_X_SIZE/4, IMAGE_X_SIZE/4+IMAGE_X_SIZE, 288 IMAGE_Y_SIZE/4, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE 289 } 290 ); 291 tmpMask = psImageSubset(tmpMask2, psRegionSet(IMAGE_X_SIZE/4, IMAGE_X_SIZE/4+IMAGE_X_SIZE, 292 IMAGE_Y_SIZE/4, IMAGE_Y_SIZE/4+IMAGE_Y_SIZE 293 } 294 ); 295 } 296 297 for ( i = 0;i < tmpImage->numRows;i++ ) 298 { 299 for ( j = 0;j < tmpImage->numCols;j++ ) { 300 tmpImage->data.F32[ i ][ j ] = ( float ) ( i + j ); 301 } 302 } 303 for ( i = 0;i < tmpMask->numRows;i++ ) 304 { 305 for ( j = 0;j < tmpMask->numCols;j++ ) { 306 if ( ( i > ( tmpMask->numRows / 2 ) ) && 307 ( j > ( tmpMask->numCols / 2 ) ) ) { 308 tmpMask->data.U8[ i ][ j ] = 1; 309 } else { 310 tmpMask->data.U8[ i ][ j ] = 0; 311 } 312 } 313 } 314 315 myStats = psStatsAlloc( PS_STAT_SAMPLE_MEAN ); 316 /*************************************************************************/ 317 /* Calculate Sample Mean with no mask */ 318 /*************************************************************************/ 319 psStats* tmpStats = myStats; 320 myStats = psImageStats( myStats, tmpImage, NULL, 0 ); 321 if ( myStats != tmpStats ) 322 { 323 fprintf(stderr,"ERROR: input psStats not equal to return psStats\n"); 324 psAbort(__func__,"Failed input psStats equal to returned psStats"); 325 } 326 fprintf(stderr, "The sample mean was %.2f\n", myStats->sampleMean ); 327 328 /*************************************************************************/ 329 /* Calculate Sample Mean with mask */ 330 /*************************************************************************/ 331 332 myStats = psImageStats( myStats, tmpImage, tmpMask, 1 ); 333 fprintf(stderr, "The sample mean was %.2f\n", myStats->sampleMean ); 334 335 /*************************************************************************/ 336 /* Deallocate data structures */ 337 /*************************************************************************/ 338 psFree( myStats ); 339 psFree( tmpImage ); 340 psFree( tmpMask ); 341 psFree( tmpImage2 ); 342 psFree( tmpMask2 ); 343 } 344 345 /*************************************************************************/ 346 /* Test With Various Null Inputs */ 347 /*************************************************************************/ 348 349 tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32 ); 350 tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8 ); 351 myStats = psStatsAlloc( 0 ); 352 353 myStats2 = psImageStats( myStats, NULL, NULL, 0 ); 354 if ( myStats2 != NULL ) { 355 fprintf(stderr, "ERROR: myStats2 = psImageStats(myStats, NULL, NULL, 0) != NULL\n" ) 356 ; 357 } 358 359 myStats2 = psImageStats( NULL, tmpImage, NULL, 0 ); 360 if ( myStats2 != NULL ) { 361 fprintf(stderr, "ERROR: myStats2 = psImageStats(NULL, tmpImage, NULL, 0) != NULL\n" ) 362 ; 363 } 364 365 myStats2 = psImageStats( myStats, tmpImage, NULL, 0 ); 366 367 psFree( myStats ); 368 psFree( tmpImage ); 369 psFree( tmpMask ); 370 371 tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32); 372 tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U32); 373 myStats = psStatsAlloc( PS_STAT_SAMPLE_MEAN ); 374 myStats2 = psImageStats( myStats, tmpImage, tmpMask, 0 ); 375 if ( myStats2 != NULL ) { 376 fprintf(stderr, "ERROR: psImageStats did not return null when mask is invalid type.\n") 377 ; 378 } 379 psFree(tmpImage); 380 psFree(tmpMask); 381 psFree(myStats); 382 383 return ( !testStatus ); 386 384 } 387 385
Note:
See TracChangeset
for help on using the changeset viewer.
