「lmrcImageClusterAnalysis(API)」の版間の差分
提供: Eospedia
(ページの作成:「DataManip/mrcImage/src/'''lmrcImageClusterAnalysis'''はmrcImageClusterAnalysisのためのAPI です。 == 定数 == == 構造体 == typedef enum lmrcImageCluster...」) |
|||
行11: | 行11: | ||
lmrcImageClusterAnalysisModeLinearCorrelation = 4 | lmrcImageClusterAnalysisModeLinearCorrelation = 4 | ||
} lmrcImageClusterAnalysisMode; | } lmrcImageClusterAnalysisMode; | ||
− | + | ||
#ifdef GLOBAL_DECLARATION | #ifdef GLOBAL_DECLARATION | ||
char* lmrcImageClusterAnalysisModeMessage[] = { | char* lmrcImageClusterAnalysisModeMessage[] = { | ||
行22: | 行22: | ||
}; | }; | ||
#endif | #endif | ||
− | + | ||
typedef struct lmrcImageClusterAnalysisInfo { | typedef struct lmrcImageClusterAnalysisInfo { | ||
lmrcImageClusterAnalysisMode mode; /* ClusterAnalysisMode */ | lmrcImageClusterAnalysisMode mode; /* ClusterAnalysisMode */ | ||
行54: | 行54: | ||
float lmrcImageDistanceCalc(mrcImage* in1, mrcImage* in2, int mode); | float lmrcImageDistanceCalc(mrcImage* in1, mrcImage* in2, int mode); | ||
float lmrcImageDistanceCalcByWardMethod(mrcImage* in1, mrcImage* in2, int num1, int num2, int mode); | float lmrcImageDistanceCalcByWardMethod(mrcImage* in1, mrcImage* in2, int num1, int num2, int mode); | ||
− | + | ||
float lmrcImageDistanceCalcWithAutoRotation(mrcImage* out, mrcImage* cor, mrcImage* in1, mrcImage* in2, lmrcImageAutoRotationCorrelationInfo* linfo, int lmode, int mode); | float lmrcImageDistanceCalcWithAutoRotation(mrcImage* out, mrcImage* cor, mrcImage* in1, mrcImage* in2, lmrcImageAutoRotationCorrelationInfo* linfo, int lmode, int mode); | ||
float lmrcImageDistanceCalcByWardMethodWithAutoRotation(mrcImage* out, mrcImage* cor, mrcImage* in1, mrcImage* in2, int num1, int num2, lmrcImageAutoRotationCorrelationInfo* linfo, int lmode, int mode); | float lmrcImageDistanceCalcByWardMethodWithAutoRotation(mrcImage* out, mrcImage* cor, mrcImage* in1, mrcImage* in2, int num1, int num2, lmrcImageAutoRotationCorrelationInfo* linfo, int lmode, int mode); | ||
− | + | ||
float lmrcImageClusterAnalysisByIteration(int* group, mrcImage* in, int clusternum, int N, int mode); | float lmrcImageClusterAnalysisByIteration(int* group, mrcImage* in, int clusternum, int N, int mode); | ||
− | + | ||
void lmrcImageClusterAnalysisDistanceToLog(FILE* fpt, int n, int m, int prevM, int prevN, float distance); | void lmrcImageClusterAnalysisDistanceToLog(FILE* fpt, int n, int m, int prevM, int prevN, float distance); | ||
void lmrcImageClusterAnalysisDistanceFromLog(int* skip, float* distance, FILE* fpt); | void lmrcImageClusterAnalysisDistanceFromLog(int* skip, float* distance, FILE* fpt); |
2014年5月16日 (金) 00:08時点における版
DataManip/mrcImage/src/lmrcImageClusterAnalysisはmrcImageClusterAnalysisのためのAPI です。
定数
構造体
typedef enum lmrcImageClusterAnalysisMode { lmrcImageClusterAnalysisModeCorrelation = 0, lmrcImageClusterAnalysisModeEuclidDistance = 1, lmrcImageClusterAnalysisModeWardMethod = 2, lmrcImageClusterAnalysisModeWardMethodLinearCorrelation = 3, lmrcImageClusterAnalysisModeLinearCorrelation = 4 } lmrcImageClusterAnalysisMode;
#ifdef GLOBAL_DECLARATION char* lmrcImageClusterAnalysisModeMessage[] = { "By Correlation", "By Euclid Distance", "By Ward Method (default) : Euclid Length (no rotation) or its square (rotation)", "By Ward Method using Linear Correlation : (1 - Correlation)/(1 + Correlation)", "By Linear Correlation : (1 - Correlation)/(1 + Correlation)", NULL }; #endif
typedef struct lmrcImageClusterAnalysisInfo { lmrcImageClusterAnalysisMode mode; /* ClusterAnalysisMode */ int flagIteration; /* */ int flagAutoRotation; char** filename; /* filename */ int correlationMode; /* correlationMode */ mrcImage* averagedImage; lmrcImageAutoRotationCorrelationInfo arInitial; int flagPVM; int flagLogIn; FILE* fptLogIn; int previousFileNumber; int flagLog; FILE* fptLog; /* All Log */ int flagLog2; FILE* fptLog2; /* Cluster Node Log */ /* Output */ float** Distance; } lmrcImageClusterAnalysisInfo;
API
void lmrcImageClusterAnalysis(int* group, mrcImage* in, int finalclusternum, int N, lmrcImageClusterAnalysisInfo* linfo); void lmrcImageClusterMerge(mrcImage* in1, mrcImage* in2, int* index, int* averagednum, int m, int n, int* N); float lmrcImageDistanceCalc(mrcImage* in1, mrcImage* in2, int mode); float lmrcImageDistanceCalcByWardMethod(mrcImage* in1, mrcImage* in2, int num1, int num2, int mode);
float lmrcImageDistanceCalcWithAutoRotation(mrcImage* out, mrcImage* cor, mrcImage* in1, mrcImage* in2, lmrcImageAutoRotationCorrelationInfo* linfo, int lmode, int mode); float lmrcImageDistanceCalcByWardMethodWithAutoRotation(mrcImage* out, mrcImage* cor, mrcImage* in1, mrcImage* in2, int num1, int num2, lmrcImageAutoRotationCorrelationInfo* linfo, int lmode, int mode);
float lmrcImageClusterAnalysisByIteration(int* group, mrcImage* in, int clusternum, int N, int mode);
void lmrcImageClusterAnalysisDistanceToLog(FILE* fpt, int n, int m, int prevM, int prevN, float distance); void lmrcImageClusterAnalysisDistanceFromLog(int* skip, float* distance, FILE* fpt);