lmrcImageSymmetryFind(API)

From EosPedia
Revision as of 00:52, 4 September 2014 by Kinoshita (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

DataManip/mrcImage/src/lmrcImageSymmetryFind is API for Symmetry Analysis of image. It is used by mrcImageSymmetryFind, mrcImageSymmetryCentreFind.

constant

lmrcImageSymmetryFindInfo's member: value as centreMode

typedef enum lmrcImageSymmetryFindCheckType {
	lmrcImageSymmetryFindCheckTypeCheckByAdd=1,
	lmrcImageSymmetryFindCheckTypeCheckByCorrelation=2,
	lmrcImageSymmetryFindCheckTypeCheckByFourier=4,
	lmrcImageSymmetryFindCheckTypeCheckByTTest=8,
	lmrcImageSymmetryFindCheckTypeCheckBySRP=16
} lmrcImageSymmetryFindCheckType;

lmrcImageSymmetryFindInfo's member: value as centreInfo

typedef enum lmrcImageSymmetryFindCentreType {
	lmrcImageSymmetryFindCheckTypeCentreGC       = 0,
	lmrcImageSymmetryFindCheckTypeCentreSymmetry = 1 
} lmrcImageSymmetryFindCentreType;

lmrcImageSymmetryFindInfo's member: value as subtractionMode

typedef enum lmrcImageSymmetryFindSubtractionType {
	lmrcImageSymmetryFindCheckTypeNoSubtraction   = 0,
	lmrcImageSymmetryFindCheckTypeMeanSubtraction = 1,
	lmrcImageSymmetryFindCheckTypeMinSubtraction  = 2 
} lmrcImageSymmetryFindSubtractionType;

struct

Setting data for this API

typedef struct lmrcImageSymmetryFindInfo {
	double dr;
	double dtheta;
	double threshold1;
	double threshold2;
	int    minNfold;
	int    maxNfold;

	/* Centre */
	lmrcImageSymmetryFindCentreType centreMode;
	lmrcImageDeterminationOfPolarAxisByAssumingNfoldInfo centreInfo;

	lmrcImageSymmetryFindSubtractionType subtractionMode; /* Subtraction Mode */
	int       flagImages;
	mrcImage  Image;
	mrcImage* Images;
	int       flagBacks;
	mrcImage  Back;
	mrcImage* Backs;
	
	floatVector Value;
	floatVector Point;
	int         Symmetry;

	FILE*    fptOut;

	int      flagCorrelation;
	mrcImage correlation;

	int      flagFourier;
	mrcImage  fourier;

	int      flagTmap;
	mrcImage tmap;

	int      flagAvg;
	mrcImage avg;
	char*    avgName;
	DescartesCoord centre;
} lmrcImageSymmetryFindInfo;

API

Center coordinates

extern void
lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode);

Symmetry Analysis

extern void 
lmrcImageSymmetryFind(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode); 

Symmetry analyse as the following method. (combinable)

Value Method Used Function
+1 Addition lmrcImageSymmetryFindCheckByAdd
+2 Correlation lmrcImageSymmetryFindCheckByCorrelation
+4 Fourier Transformation lmrcImageSymmetryFindCheckByFourier
+8 t-Test lmrcImageSymmetryFindCheckByTTest
+16 SRP lmrcImageSymmetryFindCheckBySRP


Addition

extern void
lmrcImageSymmetryFindCheckByAdd(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);

Correlation

extern void
lmrcImageSymmetryFindCheckByCorrelation(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);

Fourier Transformation

extern void
lmrcImageSymmetryFindCheckByFourier(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);

t-Test

extern void
lmrcImageSymmetryFindCheckByTTest(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);

SRP

Not implemented

extern void
lmrcImageSymmetryFindCheckBySRP(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);

Preprocess

Subtraction
extern void
lmrcImageSymmetryFindSubtraction(mrcImage* subout, mrcImage* in, lmrcImageSymmetryFindInfo* info, int mode);

Subtract depending on info->subtractionMode.

Value Preprocess
lmrcImageSymmetryFindCheckTypeNoSubtraction Not subtract
lmrcImageSymmetryFindCheckTypeMeanSubtraction Subtract mean value
lmrcImageSymmetryFindCheckTypeMinSubtraction Subtract minmum value


Output result

Output result of symmetry analysis as ASCII

extern void
lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInfo* linfo,  int mode);

Output Average image with Input image.

extern void
lmrcImageSymmetryAverage(mrcImage* out, mrcImage* in, int num, DescartesCoord centre, int mode);

Output API Information

extern void 
lmrcImageSymmetryFindModePrint(FILE* fpt);