Changeset 26339
- Timestamp:
- Dec 5, 2009, 5:01:26 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtractionMatch.c
r26332 r26339 28 28 static bool useFFT = true; // Do convolutions using FFT 29 29 30 # define SEPARATE 0 31 # if (SEPARATE) 32 # define SUBMODE PM_SUBTRACTION_EQUATION_NORM 33 # else 34 # define SUBMODE PM_SUBTRACTION_EQUATION_ALL 35 # endif 30 36 31 37 //#define TESTING … … 562 568 // XXX step 1: calculate normalization 563 569 psTrace("psModules.imcombine", 3, "Calculating equation for normalization...\n"); 564 // if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_NORM)) { 565 if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_ALL)) { 570 if (!pmSubtractionCalculateEquation(stamps, kernels, SUBMODE)) { 566 571 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 567 572 goto MATCH_ERROR; … … 569 574 570 575 psTrace("psModules.imcombine", 3, "Solving equation for normalization...\n"); 571 // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_NORM)) { 572 if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) { 576 if (!pmSubtractionSolveEquation(kernels, stamps, SUBMODE)) { 573 577 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 574 578 goto MATCH_ERROR; … … 576 580 memCheck(" solve equation"); 577 581 578 # if (0) 582 # if (SEPARATE) 583 // set USED -> CALCULATE 584 pmSubtractionStampsResetStatus (stamps); 585 579 586 // XXX step 2: calculate kernel parameters 580 587 psTrace("psModules.imcombine", 3, "Calculating equation for kernels...\n"); … … 592 599 memCheck(" solve equation"); 593 600 # endif 594 595 601 psVector *deviations = pmSubtractionCalculateDeviations(stamps, kernels); // Stamp deviations 596 602 if (!deviations) { … … 615 621 // if we hit the max number of iterations and we have rejected stamps, re-solve 616 622 if (numRejected > 0) { 617 // calculate kernel parameters 623 // XXX step 1: calculate normalization 624 psTrace("psModules.imcombine", 3, "Calculating equation for normalization...\n"); 625 if (!pmSubtractionCalculateEquation(stamps, kernels, SUBMODE)) { 626 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 627 goto MATCH_ERROR; 628 } 629 630 // solve normalization 618 631 psTrace("psModules.imcombine", 3, "Solving equation for kernels...\n"); 619 // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) { 620 if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) { 632 if (!pmSubtractionSolveEquation(kernels, stamps, SUBMODE)) { 621 633 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 622 634 goto MATCH_ERROR; 623 635 } 636 637 # if (SEPARATE) 638 // set USED -> CALCULATE 639 pmSubtractionStampsResetStatus (stamps); 640 641 // XXX step 2: calculate kernel parameters 642 psTrace("psModules.imcombine", 3, "Calculating equation for normalization...\n"); 643 if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_KERNELS)) { 644 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 645 goto MATCH_ERROR; 646 } 647 648 // solve kernel parameters 649 psTrace("psModules.imcombine", 3, "Solving equation for kernels...\n"); 650 if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) { 651 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 652 goto MATCH_ERROR; 653 } 624 654 memCheck(" solve equation"); 625 655 # endif 626 656 psVector *deviations = pmSubtractionCalculateDeviations(stamps, kernels); // Stamp deviations 627 657 if (!deviations) { … … 929 959 930 960 psTrace("psModules.imcombine", 3, "Calculating %s normalization equation...\n", description); 931 // if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_NORM)) { 932 if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_ALL)) { 961 if (!pmSubtractionCalculateEquation(stamps, kernels, SUBMODE)) { 933 962 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 934 963 return false; … … 936 965 937 966 psTrace("psModules.imcombine", 3, "Solving %s normalization equation...\n", description); 938 // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_NORM)) { 939 if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) { 967 if (!pmSubtractionSolveEquation(kernels, stamps, SUBMODE)) { 940 968 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 941 969 return false; 942 970 } 943 971 944 # if (0) 972 # if (SEPARATE) 973 // set USED -> CALCULATE 974 pmSubtractionStampsResetStatus (stamps); 975 945 976 psTrace("psModules.imcombine", 3, "Calculating %s kernel coeffs equation...\n", description); 946 977 if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_KERNELS)) { … … 954 985 return false; 955 986 } 956 # endif 987 # endif 957 988 958 989 psTrace("psModules.imcombine", 3, "Calculate %s deviations...\n", description); … … 974 1005 if (numRejected > 0) { 975 1006 // Allow re-fit with reduced stamps set 1007 psTrace("psModules.imcombine", 3, "Calculating %s normalization equation...\n", description); 1008 if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_ALL)) { 1009 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 1010 return false; 1011 } 1012 976 1013 psTrace("psModules.imcombine", 3, "Resolving %s equation...\n", description); 977 // if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) {978 1014 if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_ALL)) { 979 1015 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); … … 981 1017 } 982 1018 psTrace("psModules.imcombine", 3, "Recalculate %s deviations...\n", description); 1019 1020 # if (SEPARATE) 1021 // set USED -> CALCULATE 1022 pmSubtractionStampsResetStatus (stamps); 1023 1024 psTrace("psModules.imcombine", 3, "Calculating %s normalization equation...\n", description); 1025 if (!pmSubtractionCalculateEquation(stamps, kernels, PM_SUBTRACTION_EQUATION_KERNELS)) { 1026 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 1027 return false; 1028 } 1029 1030 psTrace("psModules.imcombine", 3, "Resolving %s equation...\n", description); 1031 if (!pmSubtractionSolveEquation(kernels, stamps, PM_SUBTRACTION_EQUATION_KERNELS)) { 1032 psError(PS_ERR_UNKNOWN, false, "Unable to calculate least-squares equation."); 1033 return false; 1034 } 1035 psTrace("psModules.imcombine", 3, "Recalculate %s deviations...\n", description); 1036 # endif 983 1037 984 1038 psVector *deviations = pmSubtractionCalculateDeviations(stamps, kernels); // Stamp deviations
Note:
See TracChangeset
for help on using the changeset viewer.
