lmrcImageDeconvolution(API)

提供: Eospedia
移動: 案内検索

DataManip/mrcImage/src/lmrcImageDeconvolutionmrcImageDeconvolutionのためのAPI です。

定数

typedef enum lmrcImageDeconvolutionInfoMode {
	lmrcImageDeconvolutoinInfoModeNoConvolution  = 0,
	lmrcImageDeconvolutoinInfoModePhaseFlipping  = 1,
	lmrcImageDeconvolutoinInfoModeCTFMultiplying = 2,
	lmrcImageDeconvolutoinInfoModeInverseFilter  = 3,
	lmrcImageDeconvolutoinInfoModeWienerFilter   = 4,
	lmrcImageDeconvolutoinInfoModePhaseFlippingCTFWeighted = 5,
	lmrcImageDeconvolutoinInfoModeInverseFilterNoPhaseFlipping = 6,
	lmrcImageDeconvolutoinInfoModeWienerFilterNoPhaseFlipping  = 7,
	lmrcImageDeconvolutoinInfoModeWienerFilterRDependent       = 8,
	lmrcImageDeconvolutoinInfoModeWienerFilterRDependentNoPhaseFlipping = 9
} lmrcImageDeconvolutionInfoMode;
typedef enum lmrcImageDeconvolutionInfoKernelCentre {
	lmrcImageDeconvolutoinInfoKernelCentreBottomLeft = 0,
	lmrcImageDeconvolutoinInfoKernelCentreCentre = 1
} lmrcImageDeconvolutionInfoKernelCentre;

構造体

typedef struct lmrcImageDeconvolutionInfo {
	// Input
	double			   thresCTF;
	double			   NSRatio;
	double			   NSCoeff;
	int                Pad3DMode; 	 
	lmrcImage3DPadInfo Pad3DInfo;	
	int maxIter;
	double minRMSD;
	double lambda;
	lmrcImageDeconvolutionInfoKernelCentre KernelCentreMode;
	int norInfoMode;

	// Output 
	int Iter;
	mrcImageInformation subInfo; 
	lmrcImageDensityNormalizationByImageInfo norInfo;
	mrcImage rmsd;
} lmrcImageDeconvolutionInfo;

API

extern void lmrcImageDeconvolutionModePrint(FILE* fpt);
extern void lmrcImageDeconvolutionKernelCentrePrint(FILE* fpt);
extern void lmrcImageDeconvolution(mrcImage* out, mrcImage* convOut, mrcImage* in, mrcImage* kernel, lmrcImageDeconvolutionInfo* linfo, int mode);
extern void lmrcImageIterativeDeconvolution(mrcImage* out, mrcImage* convOut, mrcImage* in, mrcImage* kernel, lmrcImageDeconvolutionInfo* linfo, int mode);