Changeset 5090 for trunk/psLib/src/imageops/psImageStats.c
- Timestamp:
- Sep 21, 2005, 4:47:16 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/imageops/psImageStats.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImageStats.c
r5089 r5090 9 9 * @author GLG, MHPCC 10 10 * 11 * @version $Revision: 1.7 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-09-22 02: 32:00$11 * @version $Revision: 1.79 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-09-22 02:47:16 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 224 224 chebPolys = (psPolynomial1D **) psAlloc(maxChebyPoly * sizeof(psPolynomial1D *)); 225 225 for (i = 0; i < maxChebyPoly; i++) { 226 chebPolys[i] = psPolynomial1DAlloc(i + 1, PS_POLYNOMIAL_ORD); 226 // XXX: verify this, poly nOrder/nTerms change. 227 chebPolys[i] = psPolynomial1DAlloc(i, PS_POLYNOMIAL_ORD); 227 228 } 228 229 … … 232 233 chebPolys[1]->coeff[1] = 1; 233 234 for (i = 2; i < maxChebyPoly; i++) { 234 for (j = 0; j < chebPolys[i - 1]->n; j++) {235 for (j = 0; j < (1 + chebPolys[i - 1]->COOL_1D_n); j++) { 235 236 chebPolys[i]->coeff[j + 1] = 2 * chebPolys[i - 1]->coeff[j]; 236 237 } 237 for (j = 0; j < chebPolys[i - 2]->n; j++) {238 for (j = 0; j < (1 + chebPolys[i - 2]->COOL_1D_n); j++) { 238 239 chebPolys[i]->coeff[j] -= chebPolys[i - 2]->coeff[j]; 239 240 } … … 290 291 // 29 in the ADD: sums[k][l] = SUM { 291 292 // image(x,y) * Tk(x) * Tl(y) } 292 sums = (double **)psAlloc( coeffs->nX* sizeof(double *));293 for (i = 0; i < coeffs->nX; i++) {294 sums[i] = (double *)psAlloc( coeffs->nY* sizeof(double));293 sums = (double **)psAlloc((1 + coeffs->COOL_2D_nX) * sizeof(double *)); 294 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 295 sums[i] = (double *)psAlloc((1 + coeffs->COOL_2D_nY) * sizeof(double)); 295 296 } 296 297 // We scale the pixel positions to values … … 301 302 // Determine how many Chebyshev polynomials 302 303 // are needed, then create them. 303 maxChebyPoly = coeffs->nX; 304 if (coeffs->nY > coeffs->nX) { 305 maxChebyPoly = coeffs->nY; 306 } 307 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly); 304 // XXX: recorde or verify the poly order/nterm change 305 maxChebyPoly = coeffs->COOL_2D_nX; 306 if (coeffs->COOL_2D_nY > coeffs->COOL_2D_nX) { 307 maxChebyPoly = coeffs->COOL_2D_nY; 308 } 309 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly + 1); 308 310 309 311 // Compute the sums[][] data structure. 310 for (i = 0; i < coeffs->nX; i++) {311 for (j = 0; j < coeffs->nY; j++) {312 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 313 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 312 314 sums[i][j] = 0.0; 313 315 for (x = 0; x < input->numRows; x++) { … … 330 332 } 331 333 332 for (i = 0; i < coeffs->nX; i++) {333 for (j = 0; j < coeffs->nY; j++) {334 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 335 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 334 336 coeffs->coeff[i][j] = sums[i][j]; 335 337 coeffs->coeff[i][j] /= (double)(input->numRows * input->numCols); … … 353 355 354 356 // Free some data 355 for (i = 0; i < coeffs->nX; i++) {357 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 356 358 psFree(sums[i]); 357 359 } … … 436 438 // 29 in the ADD: sums[k][l] = SUM { 437 439 // image(x,y) * Tk(x) * Tl(y) } 438 sums = (double **)psAlloc( coeffs->nX* sizeof(double *));439 for (i = 0; i < coeffs->nX; i++) {440 sums[i] = (double *)psAlloc( coeffs->nY* sizeof(double));440 sums = (double **)psAlloc((1 + coeffs->COOL_2D_nX) * sizeof(double *)); 441 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 442 sums[i] = (double *)psAlloc((1 + coeffs->COOL_2D_nY) * sizeof(double)); 441 443 } 442 444 // We scale the pixel positions to values … … 447 449 // Determine how many Chebyshev polynomials 448 450 // are needed, then create them. 449 maxChebyPoly = coeffs-> nX;450 if (coeffs-> nY > coeffs->nX) {451 maxChebyPoly = coeffs-> nY;452 } 453 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly);451 maxChebyPoly = coeffs->COOL_2D_nX; 452 if (coeffs->COOL_2D_nY > coeffs->COOL_2D_nX) { 453 maxChebyPoly = coeffs->COOL_2D_nY; 454 } 455 chebPolys = 1 + p_psCreateChebyshevPolys(maxChebyPoly); 454 456 455 457 // Compute the sums[][] data structure. 456 for (i = 0; i < coeffs->nX; i++) {457 for (j = 0; j < coeffs->nY; j++) {458 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 459 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 458 460 sums[i][j] = 0.0; 459 461 for (x = 0; x < input->numRows; x++) { … … 479 481 } 480 482 481 for (i = 0; i < coeffs->nX; i++) {482 for (j = 0; j < coeffs->nY; j++) {483 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 484 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 483 485 coeffs->coeff[i][j] = sums[i][j]; 484 486 coeffs->coeff[i][j] /= (double)(input->numRows * input->numCols); … … 502 504 503 505 // Free some data 504 for (i = 0; i < coeffs->nX; i++) {506 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 505 507 psFree(sums[i]); 506 508 } … … 538 540 // Determine how many Chebyshev polynomials 539 541 // are needed, then create them. 540 maxChebyPoly = coeffs-> nX;541 if (coeffs-> nY > coeffs->nX) {542 maxChebyPoly = coeffs-> nY;543 } 544 545 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly);542 maxChebyPoly = coeffs->COOL_2D_nX; 543 if (coeffs->COOL_2D_nY > coeffs->COOL_2D_nX) { 544 maxChebyPoly = coeffs->COOL_2D_nY; 545 } 546 547 chebPolys = 1 + p_psCreateChebyshevPolys(maxChebyPoly); 546 548 547 549 for (x = 0; x < input->numRows; x++) { 548 550 for (y = 0; y < input->numCols; y++) { 549 551 polySum = 0.0; 550 for (i = 0; i < coeffs->nX; i++) {551 for (j = 0; j < coeffs->nY; j++) {552 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 553 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 552 554 polySum += 553 555 psPolynomial1DEval(chebPolys[i], rScalingFactors[x]) *
Note:
See TracChangeset
for help on using the changeset viewer.
