OSDN Git Service

Window Functions were added.
authorTakuo Yasunaga <yasunaga@bio.kyutech.ac.jp>
Mon, 11 Aug 2014 02:34:40 +0000 (11:34 +0900)
committerTakuo Yasunaga <yasunaga@bio.kyutech.ac.jp>
Mon, 11 Aug 2014 02:34:40 +0000 (11:34 +0900)
src/Objects/DataManip/mrcImage/src/lmrcImageWindowing.c
src/Objects/DataManip/mrcImage/src/lmrcImageWindowing.h
modified:   src/Tools/mrcImage/mrcImageWindowing/Config/OptionControlFile

24 files changed:
hostdepend/X86MAC64/bin/X86MAC64/mrcImageWindowing
hostdepend/X86MAC64/lib/X86MAC64/libEosObjects.a
hostdepend/X86MAC64/lib/X86MAC64/libmrcImage.a
hostdepend/X86MAC64/lib/X86MAC64/shared/lmrcImageWindowing.sharedo
hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/libmrcImage.a
hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/libmrcImage.debug.a
hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/lmrcImageWindowing.sharedo
hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageWindowing/src/X86MAC64/mrcImageWindowing
include/lmrcImageWindowing.h
src/Objects/DataManip/mrcImage/doc/mrcImage.html
src/Objects/DataManip/mrcImage/src/lmrcImageWindowing.c
src/Objects/DataManip/mrcImage/src/lmrcImageWindowing.h
src/Tools/Config/Define.inc
src/Tools/mrcImage/mrcImageWindowing/Config/OptionControlFile
src/Tools/mrcImage/mrcImageWindowing/Makefile [changed from file to symlink]
src/Tools/mrcImage/mrcImageWindowing/doc/Makefile
src/Tools/mrcImage/mrcImageWindowing/inc/mrcImageWindowing.h
src/Tools/mrcImage/mrcImageWindowing/src/argCheck.c
src/Tools/mrcImage/mrcImageWindowing/src/init.c
src/Tools/mrcImage/mrcImageWindowing/src/mrcImageWindowing.c
src/Tools/mrcImage/mrcImageWindowing/src/mrcImageWindowing.html
src/Tools/mrcImage/mrcImageWindowing/src/mrcImageWindowing.pane
src/Tools/mrcImage/mrcImageWindowing/src/test/Makefile
src/Tools/mrcImage/mrcImageWindowing/src/usage.c

index 89ca945..e46289d 100755 (executable)
Binary files a/hostdepend/X86MAC64/bin/X86MAC64/mrcImageWindowing and b/hostdepend/X86MAC64/bin/X86MAC64/mrcImageWindowing differ
index 44713d2..5ce98cb 100644 (file)
Binary files a/hostdepend/X86MAC64/lib/X86MAC64/libEosObjects.a and b/hostdepend/X86MAC64/lib/X86MAC64/libEosObjects.a differ
index 7987efe..0474a9a 100644 (file)
Binary files a/hostdepend/X86MAC64/lib/X86MAC64/libmrcImage.a and b/hostdepend/X86MAC64/lib/X86MAC64/libmrcImage.a differ
index 3e2aff3..1ebe5e1 100644 (file)
Binary files a/hostdepend/X86MAC64/lib/X86MAC64/shared/lmrcImageWindowing.sharedo and b/hostdepend/X86MAC64/lib/X86MAC64/shared/lmrcImageWindowing.sharedo differ
index 7987efe..0474a9a 100644 (file)
Binary files a/hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/libmrcImage.a and b/hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/libmrcImage.a differ
index db7cca3..e1ddb35 100644 (file)
Binary files a/hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/libmrcImage.debug.a and b/hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/libmrcImage.debug.a differ
index 3e2aff3..1ebe5e1 100644 (file)
Binary files a/hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/lmrcImageWindowing.sharedo and b/hostdepend/X86MAC64/src/Objects/DataManip/mrcImage/src/X86MAC64/lmrcImageWindowing.sharedo differ
index 89ca945..e46289d 100755 (executable)
Binary files a/hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageWindowing/src/X86MAC64/mrcImageWindowing and b/hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageWindowing/src/X86MAC64/mrcImageWindowing differ
index 4a2591c..b53038c 100644 (file)
 #include <math.h>
 
 /* struct begin */
+
+typedef enum lmrcImageWindowingInfoMode {
+       lmrcImageWindowingInfoModeCosWindowFixed=0,
+       lmrcImageWindowingInfoModeCosWindowYVariable=1,
+       lmrcImageWindowingInfoModeCosWindowXYVariable=2,
+       lmrcImageWindowingInfoModeRectangleWindow=3,
+       lmrcImageWindowingInfoModeHanningWindow=4,
+       lmrcImageWindowingInfoModeHammingWindow=5,
+       lmrcImageWindowingInfoModeBlackmanWindow=6,
+       lmrcImageWindowingInfoModeDolphChebyshevWindow=7,
+       lmrcImageWindowingInfoModeKaiserWindow=8,
+       lmrcImageWindowingInfoModeDownToAverage=0x10,
+} lmrcImageWindowingInfoMode;
+
+
 typedef struct lmrcImageWindowingInfo {
-       long  flagWy;
+       long flagWy;
        float Wy;
 
        long flagWx;
        float Wx;
 
-       long  flagWyMax;
+       long flagWyMax;
        float WyMax;
 
        long flagWxMax;
@@ -36,6 +51,8 @@ typedef struct lmrcImageWindowingInfo {
 /* prototype begin */
 extern void lmrcImageWindowing(mrcImage* dst, mrcImage* src, 
        lmrcImageWindowingInfo* info, long mode);
+
+extern void lmrcImageWindowingModePrint(FILE* fpt);
 /* prototype end */
 
 #endif
index 909152c..deb54fc 100755 (executable)
 <H2>Information from source codes</H2>
 </A>
 <PRE>
-../src/fftn.c:
-
-../src/lmrcFETnormalizeBySD.c:
-
-../src/lmrcFFTExpression.c:
-
-../src/lmrcFFTFGconj.c:
-
-../src/lmrcFFTFxG.c:
-
-../src/lmrcFFTInfo.c:
-
-../src/lmrcImage3DPad.c:
-
-../src/lmrcImage3DWindowing.c:
-
-../src/lmrcImageAddValue.c:
-
-../src/lmrcImageAsProbability.c:
-
-../src/lmrcImageAverage.c:
-
-../src/lmrcImageBandPassFilter.c:
-
-../src/lmrcImageBilateralFilter.c:
-
-../src/lmrcImageBinarization.c:
-
-../src/lmrcImageBottomHatTransform.c:
-
-../src/lmrcImageBoundaryInfo.c:
-
-../src/lmrcImageCTFCompensation.c:
-
-../src/lmrcImageCTFDetermination.c:
-
-../src/lmrcImageCTFObservation.c:
-
-../src/lmrcImageCTFSN.c:
-
-../src/lmrcImageCVE.c:
-
-../src/lmrcImageCalcArea.c:
-
-../src/lmrcImageCenterGet.c:
-
-../src/lmrcImageCentre.c:
-
-../src/lmrcImageClosing.c:
-
-../src/lmrcImageClusterAnalysis.c:
-
-../src/lmrcImageCommonLine.c:
-
-../src/lmrcImageConnection.c:
-
-../src/lmrcImageConnectivityNumberCalc.c:
-
-../src/lmrcImageContourSurface.c:
-
-../src/lmrcImageContraction.c:
-
-../src/lmrcImageCorrelation.c:
-     $lmrcImageEuclidDistanceCalc:  Calculate Euclid distance between two images $
-     $arg: in1:  input mrcImage1 $
-     $arg: in2:  input mrcImage2 $
-     $arg: mode: input int $
-     $mode: 0 Sum of SQR $
-     $mode: 1 Distance $
-     $return: EuclidDistance $
-
-../src/lmrcImageCorrelationPVM.c:
-
-../src/lmrcImageCorrelationWithCTFCompensation.c:
-
-../src/lmrcImageCorrelationinSpace.c:
-
-../src/lmrcImageCrystalCreate.c:
-
-../src/lmrcImageDataMaxAndMinGetByImage.c:
-
-../src/lmrcImageDataStraightCopy.c:
-
-../src/lmrcImageDeconvolution.c:
-
-../src/lmrcImageDensity.c:
-
-../src/lmrcImageDensityInverse.c:
-
-../src/lmrcImageDensityNormalizationByImage.c:
-
-../src/lmrcImageDifferential.c:
-
-../src/lmrcImageDilation.c:
-
-../src/lmrcImageDistanceConversion.c:
-
-../src/lmrcImageEdge.c:
-
-../src/lmrcImageEdgeAverage.c:
-
-../src/lmrcImageEdgeEnhancement.c:
-
-../src/lmrcImageErosion.c:
-
-../src/lmrcImageFFT.c:
-
-../src/lmrcImageFOMCalc.c:
-
-../src/lmrcImageFeatureExtraction.c:
-
-../src/lmrcImageFeatureExtractionCoOccurrence.c:
-
-../src/lmrcImageFeatureExtractionRunLength.c:
-
-../src/lmrcImageFilterCreate.c:
-
-../src/lmrcImageFirstNoiseReductionByRelaxation.c:
-
-../src/lmrcImageFloating.c:
-
-../src/lmrcImageFourierPowerSpectrum.c:
-
-../src/lmrcImageFourierShellCorrelation.c:
-
-../src/lmrcImageHighPassFilter.c:
-
-../src/lmrcImageHighlighting.c:
-
-../src/lmrcImageLabeling.c:
-
-../src/lmrcImageLogicalOperation.c:
-
-../src/lmrcImageLowPassFilter.c:
-
-../src/lmrcImageMasking.c:
-
-../src/lmrcImageMaxDataGet.c:
-
-../src/lmrcImageMirroring.c:
-     $lmrcImageMirroring: (mrcImage* out, mrcImage* in, lmrcImageMirroring mode) $
-
-../src/lmrcImageModeChange.c:
-
-../src/lmrcImageModelCreate.c:
-
-../src/lmrcImageMontageCreate.c:
-
-../src/lmrcImageMorphology.c:
-
-../src/lmrcImageMove.c:
-
-../src/lmrcImageMultiCTFCompensation.c:
-
-../src/lmrcImageMultiplying.c:
-
-../src/lmrcImageNegativeLaplacian.c:
-
-../src/lmrcImageNormalizing.c:
-
-../src/lmrcImageOneLineSimilarityCalc.c:
-
-../src/lmrcImageOpening.c:
-
-../src/lmrcImagePad.c:
-
-../src/lmrcImagePartImageSegmentation.c:
-
-../src/lmrcImagePixelSummationOfProbabilityGetByImage.c:
-
-../src/lmrcImagePosterization.c:
-
-../src/lmrcImagePrewitt.c:
-
-../src/lmrcImageProjection.c:
-
-../src/lmrcImageProportionalDensityLevelSetByImage.c:
-
-../src/lmrcImageROI2D.c:
-
-../src/lmrcImageROI3D.c:
-
-../src/lmrcImageROInotChangeHeaderLength.c:
-
-../src/lmrcImageRadialDistribution.c:
-
-../src/lmrcImageRhoFiltering.c:
-
-../src/lmrcImageRoberts.c:
-
-../src/lmrcImageRotation.c:
-
-../src/lmrcImageSSDA.c:
-
-../src/lmrcImageSamplingUnitChange.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxation.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationDijDimensionSet.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationDijValueCalculate.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationDijValueSet.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationQValueSet.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationRValueSet.c:
-
-../src/lmrcImageShapePCA.c:
-
-../src/lmrcImageShift.c:
-
-../src/lmrcImageShrink.c:
-
-../src/lmrcImageSigmaCalculate.c:
-
-../src/lmrcImageSinogram.c:
-
-../src/lmrcImageSinogramCorrelation.c:
-
-../src/lmrcImageSinogramFFT.c:
-
-../src/lmrcImageSmoothing.c:
-
-../src/lmrcImageSobel.c:
-
-../src/lmrcImageSolventFlattening.c:
-
-../src/lmrcImageSphere.c:
-
-../src/lmrcImageSplit.c:
-
-../src/lmrcImageStack.c:
-
-../src/lmrcImageStudentCalculate.c:
-
-../src/lmrcImageSubtractionCalc.c:
-
-../src/lmrcImageSummationCalculate.c:
-
-../src/lmrcImageSymmetryFind.c:
-
-../src/lmrcImageTfunction.c:
-
-../src/lmrcImageTopHatTransform.c:
-
-../src/lmrcImageTrans.c:
-
-../src/lmrcImageTransformDescartesIntoPolar.c:
-
-../src/lmrcImageTriming.c:
-
-../src/lmrcImageVolumeCalc.c:
-
-../src/lmrcImageWindowing.c:
-
-../src/lmrcImagesFTest.c:
-
-../src/lmrcImagesStatDataGet.c:
-
-../src/lmrcImagesTTest.c:
-
-../src/lmrcImagesVarianceAnalysis.c:
-
-../src/lmrcImagesVarianceMap.c:
-
-../src/lmrcSinogramFET.c:
-
-../src/lmrcSinogramFETPCA.c:
-
-../src/lmrcSinogramFETcalcWeight.c:
-
-../src/lmrcSinogramFETcorrelationMap.c:
-
-../src/lmrcSinogramFETnormalizedMap.c:
-
-../src/lmrcSinogramFETreferredCorrelation.c:
-
-../src/lmrcSinogramFETsmoothParameterMatching.c:
-
-../src/mrcImageCheckFFT.c:
-
-../src/mrcImageCheckSameSize.c:
-
-../src/mrcImageCopy.c:
-
-../src/mrcImageDataSet.c:
-
-../src/mrcImageError.c:
-
-../src/mrcImageGet.c:
-
-../src/mrcImageGetPixels.c:
-
-../src/mrcImageInfo.c:
-
-../src/mrcImageInit.c:
-
-../src/mrcImageOperation.c:
-
-../src/mrcImagePVM.c:
-
-../src/mrcImagePrint.c:
-
-../src/mrcImageRead.c:
-
-../src/mrcImageSectionGet.c:
-
-../src/mrcImageSectionSet.c:
-
-../src/mrcImageSet.c:
-
-../src/mrcImageTailer.c:
-
-../src/mrcImageToIntImage.c:
-
-../src/mrcImageUtil.c:
-
-../src/mrcImageUtilityforVariance.c:
-
-../src/mrcImageWrite.c:
-
-../src/mrcImageWrite2.c:
-
-../src/mrcImagefuncmin.c:
-
-../src/mrcRefUtil.c:
 </PRE>
 <HR>
 <A NAME="include">
index 73c3036..879191e 100755 (executable)
@@ -12,6 +12,7 @@
 
 
 static char __sccs_id[] = "%Z%lmrcImageWindowing ver%I%; Date:%D% %Z%";
+#include <stdlib.h>
 #include <math.h>
 #define DEBUG
 #include "genUtil.h"
@@ -22,6 +23,13 @@ static char __sccs_id[] = "%Z%lmrcImageWindowing ver%I%; Date:%D% %Z%";
 extern void __lmrcImageWindowingMode0(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
 extern void __lmrcImageWindowingMode1(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
 extern void __lmrcImageWindowingMode2(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingRectangleWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingHanningWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingHammingWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingHammingWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingBlackmanWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingDolphChebyshevWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
+extern void __lmrcImageWindowingKaiserWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode);
 
 void
 lmrcImageWindowing(mrcImage* dst, mrcImage* src, 
@@ -33,7 +41,7 @@ lmrcImageWindowing(mrcImage* dst, mrcImage* src,
                        info->Offset = 0;
                        break;
                }
-               case 0x10: {
+               case lmrcImageWindowingInfoModeDownToAverage: {
                        info->Offset = src->HeaderAMean;
                        break;
                }
@@ -42,20 +50,46 @@ lmrcImageWindowing(mrcImage* dst, mrcImage* src,
                 }
        }
        switch(mode&0xf) {
-               case 0: {
-                       __lmrcImageWindowingMode0(dst, src, info, mode>>16);
+               case lmrcImageWindowingInfoModeCosWindowFixed: {
+                       __lmrcImageWindowingMode0(dst, src, info, mode);
                        break;
                }
-               case 1: {
-                       __lmrcImageWindowingMode1(dst, src, info, mode>>16);
+               case lmrcImageWindowingInfoModeCosWindowYVariable: {
+                       __lmrcImageWindowingMode1(dst, src, info, mode);
                        break;
                }
-               case 2: {
-                       __lmrcImageWindowingMode2(dst, src, info, mode>>16);
+               case lmrcImageWindowingInfoModeCosWindowXYVariable: {
+                       __lmrcImageWindowingMode2(dst, src, info, mode);
                        break;
                }
+               case lmrcImageWindowingInfoModeRectangleWindow: {
+                       __lmrcImageWindowingRectangleWindow(dst, src, info, mode);
+                       break;
+               }
+               case lmrcImageWindowingInfoModeHanningWindow: {
+                       __lmrcImageWindowingHanningWindow(dst, src, info, mode);
+                       break;
+               }
+               case lmrcImageWindowingInfoModeHammingWindow: {
+                       __lmrcImageWindowingHammingWindow(dst, src, info, mode);
+                       break;
+               }
+               case lmrcImageWindowingInfoModeBlackmanWindow: {
+                       __lmrcImageWindowingBlackmanWindow(dst, src, info, mode);
+                       break;
+               }
+/*
+               case lmrcImageWindowingInfoModeDolphChebyshevWindow: {
+                       __lmrcImageWindowingDolphChebyshevWindow(dst, src, info, mode);
+                       break;
+               }
+               case lmrcImageWindowingInfoModeKaiserWindow: {
+                       __lmrcImageWindowingKaiserWindow(dst, src, info, mode);
+                       break;
+               }
+*/
                default: {
-                       fprintf(stderr, "Not supported mode : %ld\n", mode>>16);
+                       fprintf(stderr, "Not supported mode : %ld\n", mode);
                        break;
                }
        }
@@ -64,17 +98,30 @@ lmrcImageWindowing(mrcImage* dst, mrcImage* src,
 void
 lmrcImageWindowingModePrint(FILE* fpt)
 {
-       fprintf(stderr, "0: 90% windowing:         fixed.   \n");
-       fprintf(stderr, "1: Wy: Settings:          variable.\n");
-       fprintf(stderr, "2: WxMax and Wx                    \n");
-       fprintf(stderr, "   WyMax and Wy Settings: variables\n");
-       fprintf(stderr, "           x/Nx < WxMax   or    1-WxMax < x/Nx           : 0 \n");
-       fprintf(stderr, "   WxMax < x/Nx < Wx      or    1-Wx    < x/Nx < 1-WxMax : cos window  \n");
-       fprintf(stderr, "                  Wx   < x/Nx < 1-Wx                     : 1\n");
-       fprintf(stderr, "   Wy and WyMax are also used for windowing in the similar manner.\n");
-       fprintf(stderr, "+0 : To Zero.  \n");
-       fprintf(stderr, "+16: Contrast down around mean. \n");
+       fprintf(fpt, "%d: Cos Window (Fixed)\n", lmrcImageWindowingInfoModeCosWindowFixed);
+       fprintf(fpt, "   90%% windowing:         fixed.   \n");
+       fprintf(fpt, "%d: Cos Window (Y-variable)\n", lmrcImageWindowingInfoModeCosWindowYVariable);
+       fprintf(fpt, "   Wy: Settings:          variable.\n");
+       fprintf(fpt, "%d: Cos Window XY-variable\n", lmrcImageWindowingInfoModeCosWindowXYVariable);
+       fprintf(fpt, "   WxMax and Wx                    \n");
+       fprintf(fpt, "   WyMax and Wy Settings: variables\n");
+       fprintf(fpt, "           x/Nx < WxMax   or    1-WxMax < x/Nx           : 0 \n");
+       fprintf(fpt, "   WxMax < x/Nx < Wx      or    1-Wx    < x/Nx < 1-WxMax : cos window  \n");
+       fprintf(fpt, "                  Wx   < x/Nx < 1-Wx                     : 1\n");
+       fprintf(fpt, "   Wy and WyMax are also used for windowing in the similar manner.\n");
+       fprintf(fpt, "+0 : To Zero.  \n");
+       fprintf(fpt, "%d: Rectangle Window\n", lmrcImageWindowingInfoModeRectangleWindow);
+       fprintf(fpt, "%d: Hanning Window\n", lmrcImageWindowingInfoModeHanningWindow);
+       fprintf(fpt, "%d: Hamming Window\n", lmrcImageWindowingInfoModeHammingWindow);
+       fprintf(fpt, "%d: Blackman Window\n", lmrcImageWindowingInfoModeBlackmanWindow);
+/*
+       fprintf(fpt, "%d: Dolph-Chebyshev Window\n", lmrcImageWindowingInfoModeDolphChebyshevWindow);
+       fprintf(fpt, "%d: Kaiser Window\n", lmrcImageWindowingInfoModeKaiserWindow);
+*/
+       fprintf(fpt, "+0 : To Zero.  \n");
+       fprintf(fpt, "+%d: Contrast down around mean.\n", lmrcImageWindowingInfoModeDownToAverage);
 }
+
 void 
 __lmrcImageWindowingMode0(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
 {
@@ -85,11 +132,11 @@ __lmrcImageWindowingMode0(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo*
        double weighty;
 
        if(src->HeaderN.z!=1) {
-               fprintf(stderr, "Not supported N.z : %ld\n", src->HeaderN.z);
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
                return;
        }
-       for(x=0; x<src->HeaderN.x; x++) {
-               for(y=0; y<src->HeaderN.y; y++) {
+       for(y=0; y<src->HeaderN.y; y++) {
+               for(x=0; x<src->HeaderN.x; x++) {
                        mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
        
                        if(0.1*src->HeaderN.x < x && x < 0.9*src->HeaderN.x) {
@@ -119,16 +166,16 @@ __lmrcImageWindowingMode1(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo*
        double data;
 
        if(src->HeaderN.z!=1) {
-               fprintf(stderr, "Not supported N.z : %ld\n", src->HeaderN.z);
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
                return;
        }
-       for(x=0; x<src->HeaderN.x; x++) {
-               for(y=0; y<src->HeaderN.y; y++) {
+       for(y=0; y<src->HeaderN.y; y++) {
+               for(x=0; x<src->HeaderN.x; x++) {
                        mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
                        
                        if(info->flagWy) {
                                if(src->HeaderN.y/info->Wy < y) {
-                                       data = src->HeaderAMean;
+                                       data = info->Offset;
                                }
                        }
 
@@ -146,7 +193,7 @@ __lmrcImageWindowingMode2(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo*
        double Wx, Wy, WxMax, WyMax;
 
        if(src->HeaderN.z!=1) {
-               fprintf(stderr, "Not supported N.z : %ld\n", src->HeaderN.z);
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
                return;
        }
 
@@ -176,8 +223,8 @@ __lmrcImageWindowingMode2(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo*
        }
        Wy *= src->HeaderN.y;
        DEBUGPRINT4("Wx %f %f  Wy %f %f\n",Wx, WxMax, Wy, WyMax );
-       for(x=0; x<src->HeaderN.x; x++) {
-               for(y=0; y<src->HeaderN.y; y++) {
+       for(y=0; y<src->HeaderN.y; y++) {
+               for(x=0; x<src->HeaderN.x; x++) {
                        mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
        
                        if(x < WxMax || src->HeaderN.x-WxMax < x) {
@@ -204,3 +251,258 @@ __lmrcImageWindowingMode2(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo*
        }
 }
 
+
+void 
+__lmrcImageWindowingRectangleWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
+{
+       mrcImageParaTypeReal x, y, z;
+       double data;
+       double weightx, weighty;
+       double WxMin, WxMax;
+       double WyMin, WyMax;
+
+       if(src->HeaderN.z!=1) {
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
+               return;
+       }
+       
+       WxMin = src->HeaderN.x*info->Wx;
+       WxMax = src->HeaderN.x*(1-info->Wx);
+       WyMin = src->HeaderN.y*info->Wy;
+       WyMax = src->HeaderN.y*(1-info->Wy);
+       
+       for(x=0; x<src->HeaderN.x; x++) {
+       for(y=0; y<src->HeaderN.y; y++) {
+               if(x<WxMin || WxMax <x
+                ||y<WyMin || WyMax <y) {
+                       data = info->Offset;
+               } else {        
+                       mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
+               }
+               mrcPixelDataSet(dst, x, y, 0.0, data, mrcPixelMag);
+       }
+       }
+}
+
+
+void 
+__lmrcImageWindowingHanningWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
+{
+       mrcImageParaTypeReal x, y, z;
+       mrcImageParaTypeReal rx, ry, rz;
+       double data;
+       double weightx, weighty;
+       double WxMin, WxMax, Wx;
+       double WyMin, WyMax, Wy;
+
+       if(src->HeaderN.z!=1) {
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
+               return;
+       }
+
+       Wx    = 1.0 - 2*info->Wx;
+       WxMin = src->HeaderN.x*info->Wx;
+       WxMax = src->HeaderN.x*(1-info->Wx);
+
+       Wy    = 1.0 - 2*info->Wy;
+       WyMin = src->HeaderN.y*info->Wy;
+       WyMax = src->HeaderN.y*(1-info->Wy);
+       
+       for(x=0; x<src->HeaderN.x; x++) {
+               rx = (x-(src->HeaderN.x-1)/2)/(src->HeaderN.x*Wx);
+       for(y=0; y<src->HeaderN.y; y++) {
+               ry = (y-(src->HeaderN.y-1)/2)/(src->HeaderN.y*Wy);
+
+               if(x<WxMin || WxMax <x
+                ||y<WyMin || WyMax <y) {
+                       data = info->Offset;
+               } else {        
+                       weightx = 0.5+0.5*cos(2*M_PI*(rx));     
+                       weighty = 0.5+0.5*cos(2*M_PI*(ry));     
+                       mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
+                       data = weightx*weighty*(data - info->Offset) + info->Offset; 
+               }
+               mrcPixelDataSet(dst, x, y, 0.0, data, mrcPixelMag);
+       }
+       }
+}
+
+void 
+__lmrcImageWindowingHammingWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
+{
+       mrcImageParaTypeReal x, y, z;
+       mrcImageParaTypeReal rx, ry, rz;
+       double data;
+       double weightx, weighty;
+       double WxMin, WxMax, Wx;
+       double WyMin, WyMax, Wy;
+
+       if(src->HeaderN.z!=1) {
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
+               return;
+       }
+
+       Wx    = 1.0 - 2*info->Wx;
+       WxMin = src->HeaderN.x*info->Wx;
+       WxMax = src->HeaderN.x*(1-info->Wx);
+
+       Wy    = 1.0 - 2*info->Wy;
+       WyMin = src->HeaderN.y*info->Wy;
+       WyMax = src->HeaderN.y*(1-info->Wy);
+       
+       for(x=0; x<src->HeaderN.x; x++) {
+               rx = (x-(src->HeaderN.x-1)/2)/(src->HeaderN.x*Wx);
+       for(y=0; y<src->HeaderN.y; y++) {
+               ry = (y-(src->HeaderN.y-1)/2)/(src->HeaderN.y*Wy);
+
+               if(x<WxMin || WxMax <x
+                ||y<WyMin || WyMax <y) {
+                       data = info->Offset;
+               } else {        
+                       weightx = 0.54+0.46*cos(2*M_PI*(rx));   
+                       weighty = 0.54+0.46*cos(2*M_PI*(ry));   
+                       mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
+                       data = weightx*weighty*(data - info->Offset) + info->Offset; 
+               }
+               mrcPixelDataSet(dst, x, y, 0.0, data, mrcPixelMag);
+       }
+       }
+}
+
+
+void 
+__lmrcImageWindowingBlackmanWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
+{
+       mrcImageParaTypeReal x, y, z;
+       mrcImageParaTypeReal rx, ry, rz;
+       double data;
+       double weightx, weighty;
+       double WxMin, WxMax, Wx;
+       double WyMin, WyMax, Wy;
+
+       if(src->HeaderN.z!=1) {
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
+               return;
+       }
+
+       Wx    = 1.0 - 2*info->Wx;
+       WxMin = src->HeaderN.x*info->Wx;
+       WxMax = src->HeaderN.x*(1-info->Wx);
+
+       Wy    = 1.0 - 2*info->Wy;
+       WyMin = src->HeaderN.y*info->Wy;
+       WyMax = src->HeaderN.y*(1-info->Wy);
+       
+       for(x=0; x<src->HeaderN.x; x++) {
+               rx = (x-(src->HeaderN.x-1)/2)/(src->HeaderN.x*Wx);
+       for(y=0; y<src->HeaderN.y; y++) {
+               ry = (y-(src->HeaderN.y-1)/2)/(src->HeaderN.y*Wy);
+
+               if(x<WxMin || WxMax <x
+                ||y<WyMin || WyMax <y) {
+                       data = info->Offset;
+               } else {        
+                       weightx = 0.42+0.5*cos(2*M_PI*(rx))+0.08*cos(4*M_PI*(rx));      
+                       weighty = 0.42+0.5*cos(2*M_PI*(ry))+0.08*cos(4*M_PI*(ry));      
+                       mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
+                       data = weightx*weighty*(data - info->Offset) + info->Offset; 
+               }
+               mrcPixelDataSet(dst, x, y, 0.0, data, mrcPixelMag);
+       }
+       }
+}
+
+
+void 
+__lmrcImageWindowingDolphChebychevWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
+{
+       mrcImageParaTypeReal x, y, z;
+       mrcImageParaTypeReal rx, ry, rz;
+       double data;
+       double weightx, weighty;
+       double WxMin, WxMax, Wx;
+       double WyMin, WyMax, Wy;
+
+       fprintf(stderr, "Not supported yet\n");
+       exit(EXIT_FAILURE);
+
+       if(src->HeaderN.z!=1) {
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
+               return;
+       }
+
+       Wx    = 1.0 - 2*info->Wx;
+       WxMin = src->HeaderN.x*info->Wx;
+       WxMax = src->HeaderN.x*(1-info->Wx);
+
+       Wy    = 1.0 - 2*info->Wy;
+       WyMin = src->HeaderN.y*info->Wy;
+       WyMax = src->HeaderN.y*(1-info->Wy);
+       
+       for(x=0; x<src->HeaderN.x; x++) {
+               rx = (x-(src->HeaderN.x-1)/2)/(src->HeaderN.x*Wx);
+       for(y=0; y<src->HeaderN.y; y++) {
+               ry = (y-(src->HeaderN.y-1)/2)/(src->HeaderN.y*Wy);
+
+               if(x<WxMin || WxMax <x
+                ||y<WyMin || WyMax <y) {
+                       data = info->Offset;
+               } else {        
+                       weightx = 1;
+                       weighty = 1;
+                       mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
+                       data = weightx*weighty*(data - info->Offset) + info->Offset; 
+               }
+               mrcPixelDataSet(dst, x, y, 0.0, data, mrcPixelMag);
+       }
+       }
+}
+
+
+void 
+__lmrcImageWindowingKaiserWindow(mrcImage* dst, mrcImage* src, lmrcImageWindowingInfo* info, long mode)
+{
+       mrcImageParaTypeReal x, y, z;
+       mrcImageParaTypeReal rx, ry, rz;
+       double data;
+       double weightx, weighty;
+       double WxMin, WxMax, Wx;
+       double WyMin, WyMax, Wy;
+
+
+       fprintf(stderr, "Not supported yet\n");
+       exit(EXIT_FAILURE);
+
+       if(src->HeaderN.z!=1) {
+               fprintf(stderr, "Not supported N.z : %d\n", src->HeaderN.z);
+               return;
+       }
+
+       Wx    = 1.0 - 2*info->Wx;
+       WxMin = src->HeaderN.x*info->Wx;
+       WxMax = src->HeaderN.x*(1-info->Wx);
+
+       Wy    = 1.0 - 2*info->Wy;
+       WyMin = src->HeaderN.y*info->Wy;
+       WyMax = src->HeaderN.y*(1-info->Wy);
+       
+       for(x=0; x<src->HeaderN.x; x++) {
+               rx = (x-(src->HeaderN.x-1)/2)/(src->HeaderN.x*Wx);
+       for(y=0; y<src->HeaderN.y; y++) {
+               ry = (y-(src->HeaderN.y-1)/2)/(src->HeaderN.y*Wy);
+
+               if(x<WxMin || WxMax <x
+                ||y<WyMin || WyMax <y) {
+                       data = info->Offset;
+               } else {        
+                       weightx = 1;
+                       weighty = 1;
+                       mrcPixelDataGet(src, x, y, 0.0, &data, mrcPixelMag, mrcPixelHowNearest);
+                       data = weightx*weighty*(data - info->Offset) + info->Offset; 
+               }
+               mrcPixelDataSet(dst, x, y, 0.0, data, mrcPixelMag);
+       }
+       }
+}
+
+
index 4a2591c..b53038c 100755 (executable)
 #include <math.h>
 
 /* struct begin */
+
+typedef enum lmrcImageWindowingInfoMode {
+       lmrcImageWindowingInfoModeCosWindowFixed=0,
+       lmrcImageWindowingInfoModeCosWindowYVariable=1,
+       lmrcImageWindowingInfoModeCosWindowXYVariable=2,
+       lmrcImageWindowingInfoModeRectangleWindow=3,
+       lmrcImageWindowingInfoModeHanningWindow=4,
+       lmrcImageWindowingInfoModeHammingWindow=5,
+       lmrcImageWindowingInfoModeBlackmanWindow=6,
+       lmrcImageWindowingInfoModeDolphChebyshevWindow=7,
+       lmrcImageWindowingInfoModeKaiserWindow=8,
+       lmrcImageWindowingInfoModeDownToAverage=0x10,
+} lmrcImageWindowingInfoMode;
+
+
 typedef struct lmrcImageWindowingInfo {
-       long  flagWy;
+       long flagWy;
        float Wy;
 
        long flagWx;
        float Wx;
 
-       long  flagWyMax;
+       long flagWyMax;
        float WyMax;
 
        long flagWxMax;
@@ -36,6 +51,8 @@ typedef struct lmrcImageWindowingInfo {
 /* prototype begin */
 extern void lmrcImageWindowing(mrcImage* dst, mrcImage* src, 
        lmrcImageWindowingInfo* info, long mode);
+
+extern void lmrcImageWindowingModePrint(FILE* fpt);
 /* prototype end */
 
 #endif
index c29d9c7..2e108f9 100755 (executable)
@@ -154,3 +154,4 @@ WORLDNAME=Tools
 WORLDNAME=Tools
 WORLDNAME=Tools
 WORLDNAME=Tools
+WORLDNAME=Tools
index b7cd4fb..1b0e46e 100755 (executable)
@@ -3,5 +3,7 @@
 "-i","-i[nput]","InputDataFile","Essential","1","1","In","inFile","NULL"
 "-o","-o[utput]","OutputDataFile","Essential","1","1","Out","outFile","NULL"
 "-W","-W[indowing]","Windowsing Size:","Optional","4","1","Wx","Real","0.1","2","WxMax","Real","0.0","3","Wy","Real","0.1","1","WyMax","Real","0.0"
+"-Wx","-W[indowing]x","Windowsing Size:","Optional","1","1","WX","Real","0.1"
+"-Wy","-W[indowing]y","Windowsing Size:","Optional","1","1","WY","Real","0.1"
 "-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
 "-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0"
deleted file mode 100755 (executable)
index 4dbb018acae5475bce203b3db2365124accfa24b..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,104 +0,0 @@
-include ../../../Config/Define.inc
-include ../../Config/Define.inc
-include ../Config/Define.inc
-include Config/Define.inc
-
-all:
-       cd src; make all; cd ..
-
-install:
-       cd src; make install; cd ..
-
-
-putSF:
-       if [ -f private ] ; \
-       then \
-               echo "$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME) is private"; \
-       else \
-               cvs -z4 -d:ext:$$USER@$$EOS_SOURCEFORGE commit || cvs -z4 -d:ext:$$USER@$$EOS_SOURCEFORGE import src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME); \
-       fi
-
-put:
-       cd src; make put; cd ..
-
-clean:
-       cd src; make clean; cd ..
-
-depend:
-       cd src; make depend; cd ..
-
-check:
-       @if [ ! -d $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) ] ; then \
-               echo making directory; \
-               mkdir -p $(EOS_HOME)/hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE); \
-       fi
-       ln -sf ../../../../../hostdepend/$(OSTYPE)/src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE) src/$(OSTYPE); 
-       @$(RM) src/Makefile
-       @echo "New src/Makefile" 
-       @$(CP) ../../../Config/Template/$(WORLDNAME)Template.Dir/src/Makefile src/Makefile
-       @cd src; touch $(OSTYPE)/.Depend; make depend
-
-cvsupdate::
-       cvs -d $(EOS_CVSROOT) update -d 
-
-cvscommit::
-       cvs -d $(EOS_CVSROOT) commit
-
-backup:
-       @cd ../../../..;     \
-       echo $(OBJECTNAME) ; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config       ; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
-       tar uvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile
-
-backup-all:
-       @cd ../../../..;     \
-       echo $(OBJECTNAME) ; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config       ; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
-       tar rvf ${EOS_HOME}/backup/EosBase.tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile
-       
-distribute:
-       cd ../../../..;     \
-       echo $(OBJECTNAME) ; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config     ; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile ; \
-       tar uvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE)
-       
-distribute-all:
-       @cd ../../../..;     \
-       echo $(OBJECTNAME) ; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Config     ; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/Makefile ;\
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/.[A-z]* ; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/inc ; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/doc; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/wish; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/[A-z]*.[A-z]*; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/.[A-z]*; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/Makefile ; \
-       tar rvf ${EOS_HOME}/distribute/src.$(OSTYPE).tar src/$(WORLDNAME)/$(CLASSNAME)/$(OBJECTNAME)/src/$(OSTYPE)
-
-eosintroduce:
-       ${EOS_HOME}/sbin/eosintroduce ${WORLDNAME} ${CLASSNAME} ${OBJECTNAME} ./ 
-
-include Config/Target.inc
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..ef1f6300ba0b84da4931ed574ccec31fc5b88177
--- /dev/null
@@ -0,0 +1 @@
+/Users/tacyas/Eos/src/Config/Template/ToolsTemplate.Dir/Makefile
\ No newline at end of file
index e35804f..d75d753 120000 (symlink)
@@ -1 +1 @@
-/home/people/tacyas/Eos/src/Config/Template/ToolsTemplate.Dir/doc/Makefile
\ No newline at end of file
+/Users/tacyas/Eos/src/Config/Template/ToolsTemplate.Dir/doc/Makefile
\ No newline at end of file
index 0eb17c2..6246161 100755 (executable)
@@ -33,6 +33,12 @@ typedef struct mrcImageWindowingInfo {
     long flagWyMax;
     float WyMax;
     
+    long flagWX;
+    float WX;
+    
+    long flagWY;
+    float WY;
+    
     long flagconfigFile;
     char* configFile;
     FILE* fptconfigFile;
index 6569134..fb48cf4 100755 (executable)
@@ -12,7 +12,7 @@
 void
 argCheck(mrcImageWindowingInfo* info, int argc, char* argv[])
 {
-    long i, j, nv;
+    long i;
     char s[1024];
     FILE* fpt;
     
@@ -70,6 +70,28 @@ argCheck(mrcImageWindowingInfo* info, int argc, char* argv[])
                     }
                     SBREAK;
                 }
+                SCASE("Wx") {
+                    if(i+1<argc) {
+                        info->WX = stringGetNthRealData(argv[i+1], 1, " ,");
+                        i++;
+                        info->flagWX++;
+                    } else {
+                        usage(argv[0]);
+                        exit(EXIT_FAILURE);
+                    }
+                    SBREAK;
+                }
+                SCASE("Wy") {
+                    if(i+1<argc) {
+                        info->WY = stringGetNthRealData(argv[i+1], 1, " ,");
+                        i++;
+                        info->flagWY++;
+                    } else {
+                        usage(argv[0]);
+                        exit(EXIT_FAILURE);
+                    }
+                    SBREAK;
+                }
                 SCASE("c") {
                     if(i+1<argc) {
                         info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
index e93a279..f27e7c0 100755 (executable)
@@ -15,9 +15,11 @@ init0(mrcImageWindowingInfo* info)
     info->fptIn = NULL;    info->flagIn = 0;
     info->fptOut = NULL;    info->flagOut = 0;
     info->Wx = 0.1;    info->flagWx = 0;
-    info->WxMax = 0.0;    info->flagWxMax = 0;
-    info->Wy = 0.1;    info->flagWy = 0;
-    info->WyMax = 0.0;    info->flagWyMax = 0;
+    info->Wx = 0.1;    info->flagWx = 0;
+    info->Wx = 0.1;    info->flagWx = 0;
+    info->Wx = 0.1;    info->flagWx = 0;
+    info->WX = 0.1;    info->flagWX = 0;
+    info->WY = 0.1;    info->flagWY = 0;
     info->fptconfigFile = NULL;    info->flagconfigFile = 0;
     info->mode = 0;    info->flagmode = 0;
 }
@@ -29,7 +31,7 @@ init1(mrcImageWindowingInfo* info)
     int i;
     if(!info->flagIn) {
         stringGetFromFile(s, "In", stdin, stdout, 0);
-        info->In = stringGetNthWord(s, 1, " ,");
+        info->In = stringGetNthWord(s, 1, " ,\t");
         info->flagIn++;
     }
     if(info->flagIn) {
@@ -38,7 +40,7 @@ init1(mrcImageWindowingInfo* info)
     
     if(!info->flagOut) {
         stringGetFromFile(s, "Out", stdin, stdout, 0);
-        info->Out = stringGetNthWord(s, 1, " ,");
+        info->Out = stringGetNthWord(s, 1, " ,\t");
         info->flagOut++;
     }
     if(info->flagOut) {
@@ -57,6 +59,12 @@ init1(mrcImageWindowingInfo* info)
     if(info->flagWyMax) {
     }
     
+    if(info->flagWX) {
+    }
+    
+    if(info->flagWY) {
+    }
+    
     if(info->flagconfigFile) {
         info->fptconfigFile = fileOpen(info->configFile, "r");
     }
index 31bdb6d..1b81ade 100755 (executable)
@@ -20,6 +20,7 @@ main(int argc, char* argv[])
        init0(&info);
     argCheck(&info, argc, argv);
     init1(&info);
+
        if(info.flagWx) {
                linfo.flagWx = info.flagWx;
                linfo.Wx = info.Wx;
@@ -29,8 +30,19 @@ main(int argc, char* argv[])
                linfo.Wy = info.Wy;
                linfo.flagWyMax = info.flagWyMax;
                linfo.WyMax = info.WyMax;
+       } else {
+               linfo.Wx = info.WX;
+               linfo.Wy = info.WY;
+       }
+       if(info.flagWX) {
+               linfo.flagWx = info.flagWX;
+               linfo.Wx = info.WX;
        }
-       
+       if(info.flagWY) {
+               linfo.flagWy = info.flagWY;
+               linfo.Wy = info.WY;
+       }
+
        mrcFileRead(&src, info.In, "in main", 0);
        dst.Header = src.Header;
        mrcInit(&dst, NULL);
index dd88dc7..a1afdf4 100755 (executable)
@@ -8,23 +8,36 @@
 <PRE>
 Usage: mrcImageWindowing
 Options:
-    [-i[nput]            In                  (NULL      )] :Essential :InputDataFile
-    [-o[utput]           Out                 (NULL      )] :Essential :OutputDataFile
-    [-W[indowing]        Wx                  (0.1       )WxMax               (0.0       )Wy                  (0.1       )WyMax               (0.0       )] :Optional  :Windowsing Size:
-    [-c[onfig]           configFile          (NULL      )] :Optional  :ConfigurationFile
-    [-m[ode]             mode                (0         )] :Optional  :Mode
+    [-i[nput]            In                  (NULL      ).as(inFile              ) ] :Essential :InputDataFile
+    [-o[utput]           Out                 (NULL      ).as(outFile             ) ] :Essential :OutputDataFile
+    [-W[indowing]        Wx                  (0.1       ).as(Real                ) 
+                         WxMax               (0.0       ).as(Real                ) 
+                         Wy                  (0.1       ).as(Real                ) 
+                         WyMax               (0.0       ).as(Real                ) ] :Optional  :Windowsing Size:
+    [-W[indowing]x       WX                  (0.1       ).as(Real                ) ] :Optional  :Windowsing Size:
+    [-W[indowing]y       WY                  (0.1       ).as(Real                ) ] :Optional  :Windowsing Size:
+    [-c[onfig]           configFile          (NULL      ).as(inFile              ) ] :Optional  :ConfigurationFile
+    [-m[ode]             mode                (0         ).as(Integer             ) ] :Optional  :Mode
 >>> Mode
     0: If 0<x<0.1*nx or 0.9*nx<x<nx, then cos windowing, else original.
-0: 90% windowing:         fixed.   
-1: Wy: Settings:          variable.
-2: WxMax and Wx                    
+0: Cos Window (Fixed)
+   90% windowing:         fixed.   
+1: Cos Window (Y-variable)
+   Wy: Settings:          variable.
+2: Cos Window XY-variable
+   WxMax and Wx                    
    WyMax and Wy Settings: variables
            x/Nx < WxMax   or    1-WxMax < x/Nx           : 0 
    WxMax < x/Nx < Wx      or    1-Wx    < x/Nx < 1-WxMax : cos window  
                   Wx   < x/Nx < 1-Wx                     : 1
    Wy and WyMax are also used for windowing in the similar manner.
 +0 : To Zero.  
-+16: Contrast down around mean. 
+3: Rectangle Window
+4: Hanning Window
+5: Hamming Window
+6: Blackman Window
++0 : To Zero.  
++16: Contrast down around mean.
 </PRE>
 </BODY>
 </HTML>
index 81e8e90..1ba2d35 100755 (executable)
         -I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'InputDataFile' i
         -O 1 0 1 1 0 1 -1x1+1+3.000000 ' ' 'Out' 'OutputDataFile' o
         -I  1 0 0 1 0 1 -1x1+1+4 ' ' '0.1' 'Wx' Windowsing Size:
-        -I 1 0 1 0 0 1 -1x1+1+6.000000 ' ' 'configFile' 'ConfigurationFile' c
-        -i 1 0 1 0 0 -1x1+1+7.500000 0 0 0 0 0 'mode' 'Mode' m
+        -f 1 0 1 0 0 -1x1+1+6.000000 0 0 0.100000 0 0 0 'WX' 'Windowsing Size:' Wx
+        -f 1 0 1 0 0 -1x1+1+7.500000 0 0 0.100000 0 0 0 'WY' 'Windowsing Size:' Wy
+        -I 1 0 1 0 0 1 -1x1+1+9.000000 ' ' 'configFile' 'ConfigurationFile' c
+        -i 1 0 1 0 0 -1x1+1+10.500000 0 0 0 0 0 'mode' 'Mode' m
     -E
   -E
 -E
index 323c2db..4ab495f 100755 (executable)
@@ -11,7 +11,17 @@ help:
 
 exec:
        @echo "----- Execution Check -----"
-       ../$(OSTYPE)/$(OBJECTNAME) 
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.0.out -m 0
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.1.out -m 1 
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.2.out -m 2 
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.3.out -m 3 
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.4.out -m 4 
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.5.out -m 5 
+       time ../$(OSTYPE)/$(OBJECTNAME) -i data/test.in -o data/test.6.out -m 6 
        @echo "----- Calc check -----"          
 
 clean:
+
+init:
+       mrcImageModelCreate -o data/test.org -nx 64 -ny 64 -nz 1 -lx 2 -ly 2  -lz 1
+       mrcImageNoiseAdd -i data/test.org -o data/test.in -SD 1
index 281ad0c..24cef1c 100755 (executable)
@@ -7,11 +7,13 @@ usage(char* thisProgram)
 {
     fprintf(stderr, "Usage: %s\n", thisProgram);
     fprintf(stderr, "Options:\n");
-    fprintf(stderr, "    [-i[nput]            In                  (NULL      )] :Essential :InputDataFile\n");
-    fprintf(stderr, "    [-o[utput]           Out                 (NULL      )] :Essential :OutputDataFile\n");
-    fprintf(stderr, "    [-W[indowing]        Wx                  (0.1       )WxMax               (0.0       )Wy                  (0.1       )WyMax               (0.0       )] :Optional  :Windowsing Size:\n");
-    fprintf(stderr, "    [-c[onfig]           configFile          (NULL      )] :Optional  :ConfigurationFile\n");
-    fprintf(stderr, "    [-m[ode]             mode                (0         )] :Optional  :Mode\n");
+    fprintf(stderr, "    [-i[nput]            In                  (NULL      ).as(inFile              ) ] :Essential :InputDataFile\n");
+    fprintf(stderr, "    [-o[utput]           Out                 (NULL      ).as(outFile             ) ] :Essential :OutputDataFile\n");
+    fprintf(stderr, "    [-W[indowing]        Wx                  (0.1       ).as(Real                ) \n                         WxMax               (0.0       ).as(Real                ) \n                         Wy                  (0.1       ).as(Real                ) \n                         WyMax               (0.0       ).as(Real                ) ] :Optional  :Windowsing Size:\n");
+    fprintf(stderr, "    [-W[indowing]x       WX                  (0.1       ).as(Real                ) ] :Optional  :Windowsing Size:\n");
+    fprintf(stderr, "    [-W[indowing]y       WY                  (0.1       ).as(Real                ) ] :Optional  :Windowsing Size:\n");
+    fprintf(stderr, "    [-c[onfig]           configFile          (NULL      ).as(inFile              ) ] :Optional  :ConfigurationFile\n");
+    fprintf(stderr, "    [-m[ode]             mode                (0         ).as(Integer             ) ] :Optional  :Mode\n");
     additionalUsage();
 }