lmrcImageSymmetryFind(API)

提供: Eospedia
移動: 案内検索

DataManip/mrcImage/src/lmrcImageSymmetryFindは画像の対称性による解析のためのAPI です。mrcImageSymmetryFindmrcImageSymmetryCentreFindなどで使用しています。

定数

lmrcImageSymmetryFindInfoのメンバー: centreModeで使用する値です。

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

lmrcImageSymmetryFindInfoのメンバー: centreInfoで使用する値です。

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

lmrcImageSymmetryFindInfoのメンバー: subtractionModeで使用する値です。

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

構造体

この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

中心座標の移動

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

対称性の解析

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

以下のモード(mode)によった手法で対称性を解析します。(複数選択可)

モード 手法 使用関数
+1 加算 lmrcImageSymmetryFindCheckByAdd
+2 相関 lmrcImageSymmetryFindCheckByCorrelation
+4 フーリエ変換 lmrcImageSymmetryFindCheckByFourier
+8 t-Test lmrcImageSymmetryFindCheckByTTest
+16 SRP lmrcImageSymmetryFindCheckBySRP


加算

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

相関

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

フーリエ変換

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

t-Test

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

SRP

未実装

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

前処理

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

info->subtractionModeによった減算を行います。

モード 処理
lmrcImageSymmetryFindCheckTypeNoSubtraction 減算しない
lmrcImageSymmetryFindCheckTypeMeanSubtraction 平均値で減算
lmrcImageSymmetryFindCheckTypeMinSubtraction 最小値で減算


結果出力

対称性の解析結果をASCIIで出力します。

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

入力画像との平均画像を出力します。

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

API情報の出力

extern void 
lmrcImageSymmetryFindModePrint(FILE* fpt);