Changeset 2093 for trunk/psLib/src/image/psImageExtraction.c
- Timestamp:
- Oct 13, 2004, 1:34:58 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/image/psImageExtraction.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/image/psImageExtraction.c
r2088 r2093 9 9 * @author Robert DeSonia, MHPCC 10 10 * 11 * @version $Revision: 1.2 4$ $Name: not supported by cvs2svn $12 * @date $Date: 2004-10-13 2 2:05:03$11 * @version $Revision: 1.25 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2004-10-13 23:34:57 $ 13 13 * 14 14 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 656 656 if (numRows != mask->numRows || numCols != mask->numCols) { 657 657 psErrorMsg(PS_ERRORNAME_DOMAIN "psImageRadialCut", 658 PS_ERR_BAD_PARAMETER_ VALUE, true,658 PS_ERR_BAD_PARAMETER_SIZE, true, 659 659 PS_ERRORTEXT_psImage_IMAGE_MASK_SIZE, 660 660 mask->numCols,mask->numRows, 661 661 numCols, numRows); 662 662 psFree(out); 663 return NULL; 663 664 } 664 665 if (mask->type.type != PS_TYPE_MASK) { … … 670 671 typeStr, PS_TYPE_MASK_NAME); 671 672 psFree(out); 673 return NULL; 672 674 } 673 675 } … … 679 681 PS_ERRORTEXT_psImage_CENTER_NOT_IN_IMAGE, 680 682 centerCol, centerRow, 681 numCols, numRows); 682 psFree(out); 683 numCols-1, numRows-1); 684 psFree(out); 685 return NULL; 683 686 } 684 687 … … 693 696 if (radii->n < 2) { 694 697 psErrorMsg(PS_ERRORNAME_DOMAIN "psImageRadialCut", 695 PS_ERR_BAD_PARAMETER_ VALUE, true,698 PS_ERR_BAD_PARAMETER_SIZE, true, 696 699 PS_ERRORTEXT_psImage_RADII_VECTOR_TOOSMALL, 697 700 radii->n); … … 713 716 psErrorMsg(PS_ERRORNAME_DOMAIN "psImageRadialCut", 714 717 PS_ERR_BAD_PARAMETER_VALUE, false, 715 PS_ERRORTEXT_psImage_BAD_STAT); 718 PS_ERRORTEXT_psImage_BAD_STAT, 719 stats->options); 716 720 psFree(out); 717 721 return NULL; … … 725 729 psF64* outData = out->data.F64; 726 730 727 // sort the radii by value728 731 psVector* rSqVec = psVectorCopy(NULL, radii, PS_TYPE_F32); 729 psVectorSort(rSqVec,rSqVec);730 732 psF32* rSq = rSqVec->data.F32; 731 733 … … 751 753 } 752 754 753 // Square the data755 // Square the radii data 754 756 for (int d = 0; d <= numOut; d++) { 755 757 rSq[d] *= rSq[d]; … … 787 789 dY = centerRow - (float)row - 0.5f; 788 790 dist = dX*dX+dY*dY; 789 for (int r = 0; r < numOut; ) {790 if (rSq[r] < dist && dist < rSq[ ++r]) {791 for (int r = 0; r < numOut; r++) { 792 if (rSq[r] < dist && dist < rSq[r+1]) { 791 793 int n = buffer[r]->n; 792 794 if (n == buffer[r]->nalloc) { // in case buffers already full, expand … … 828 830 psFree(buffer); 829 831 psFree(bufferMask); 830 832 psFree(rSqVec); 831 833 return out; 832 834 }
Note:
See TracChangeset
for help on using the changeset viewer.
