Changeset 4920 for trunk/psLib/src/imageops/psImageConvolve.c
- Timestamp:
- Aug 30, 2005, 4:07:12 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/imageops/psImageConvolve.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImageConvolve.c
r4898 r4920 5 5 * @author Robert DeSonia, MHPCC 6 6 * 7 * @version $Revision: 1.2 4$ $Name: not supported by cvs2svn $8 * @date $Date: 2005-08-3 0 01:14:13$7 * @version $Revision: 1.25 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2005-08-31 02:07:11 $ 9 9 * 10 10 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 488 488 489 489 void psImageSmooth (psImage *image, 490 floatsigma,491 floatNsigma)490 double sigma, 491 double Nsigma) 492 492 { 493 493 494 494 int Nx, Ny, Npixel, Nrange; 495 floatfactor, g, s;495 double factor, g, s; 496 496 psVector *temp; 497 497 … … 505 505 506 506 // generate gaussian 507 psVector *gaussnorm = psVectorAlloc (Npixel, PS_TYPE_F 32);507 psVector *gaussnorm = psVectorAlloc (Npixel, PS_TYPE_F64); 508 508 for (int i = -Nrange; i < Nrange + 1; i++) { 509 gaussnorm->data.F 32[i+Nrange] = exp (factor*i*i);510 } 511 psF 32 *gauss = &gaussnorm->data.F32[Nrange];509 gaussnorm->data.F64[i+Nrange] = exp (factor*i*i); 510 } 511 psF64 *gauss = &gaussnorm->data.F64[Nrange]; 512 512 513 513 // smooth in X direction 514 temp = psVectorAlloc (Nx, PS_TYPE_F 32);514 temp = psVectorAlloc (Nx, PS_TYPE_F64); 515 515 for (int j = 0; j < Ny; j++) { 516 psF 32 *vi = image->data.F32[j];517 psF 32 *vo = temp->data.F32;516 psF64 *vi = image->data.F64[j]; 517 psF64 *vo = temp->data.F64; 518 518 for (int i = 0; i < Nx; i++) { 519 519 g = s = 0; … … 528 528 vo[i] = s / g; 529 529 } 530 memcpy (image->data.F 32[j], temp->data.F32, Nx*sizeof(psF32));530 memcpy (image->data.F64[j], temp->data.F64, Nx*sizeof(psF64)); 531 531 } 532 532 psFree (temp); 533 533 534 534 // smooth in Y direction 535 temp = psVectorAlloc (image->numRows, PS_TYPE_F 32);535 temp = psVectorAlloc (image->numRows, PS_TYPE_F64); 536 536 for (int i = 0; i < Nx; i++) { 537 psF 32 *vo = temp->data.F32;538 psF 32 **vi = image->data.F32;537 psF64 *vo = temp->data.F64; 538 psF64 **vi = image->data.F64; 539 539 for (int j = 0; j < Ny; j++) { 540 540 g = s = 0;
Note:
See TracChangeset
for help on using the changeset viewer.
