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