「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/lmrcImageClusterAnalysismrcImageClusterAnalysisのための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);