lmrcImageDensity(API)

提供: Eospedia
移動: 案内検索

DataManip/mrcImage/src/lmrcImageDensitymrcImageに関する統計データ(体積の割合、重心、最大値、標準偏差など)を算出するためのAPI です。mrcImageDensityInfomrcImageDensityChangeEstimationなどで使用しています。

定数

lmrcImageDensityInfoのモードとして使用します。

typedef enum lmrcImageDensityInfoMode {
	mrcImageDensityInfoPercentageVolume  =1,
	mrcImageDensityInfoCentreOfGravity   =2,
	mrcImageDensityInfoMax               =4,
	mrcImageDensityInfoCentreOfGravitySD =8,
	mrcImageDensityInfoMaxSD             =16
} lmrcImageDensityInfoMode;

lmrcImageDensityChangeEstimationのモードとして使用します。

typedef enum lmrcImageDensityChangeEstimationMode {
	mrcImageDensityChangeEstimationCentreOfGravity   =2,
	mrcImageDensityChangeEstimationMax               =4,
	mrcImageDensityChangeEstimationCentreOfGravitySD =8,
	mrcImageDensityChangeEstimationMaxSD             =16
} lmrcImageDensityChageEstimationMode;

構造体

lmrcImageDensityInfoの設定データとして使用します。

typedef struct lmrcImageDensityInfoInfo {
	floatVector percentageVolume;
	mrcImageParaTypeRealCoord centreOfGravity;
	mrcImageParaTypeRealCoord centreOfGravitySD;
	mrcImageParaTypeRealCoord max;
	mrcImageParaTypeRealCoord maxSD;
	double                    deltaVolume; 
	mrcImage in;
} lmrcImageDensityInfoInfo;

lmrcImageDensityChangeEstimationの設定データとして使用します。

typedef struct lmrcImageDensityChangeEsitmationInfo {
	lmrcImageDensityChangeEstimationInfo0 CG;
	lmrcImageDensityChangeEstimationInfo0 Max;
	mrcImage in1;
	mrcImage in2;
} lmrcImageDensityChangeEstimationInfo;
typedef struct lmrcImageDensityChangeEsitmationInfo0 {
	mrcImageParaTypeRealCoord change;
	mrcImageParaTypeRealCoord changeSD;
	double                    delta;
	double                    deltaSD;
	double                    deltaXY;
	double                    deltaXYSD;
} lmrcImageDensityChangeEstimationInfo0;

API

mrcImageDensityInfo

統計データの出力
extern void lmrcImageDensityInfoModePrint(FILE* fpt);
extern void lmrcImageDensityInfoWrite(FILE* fpt, lmrcImageDensityInfoInfo* linfo, long mode);
統計データの算出
extern void lmrcImageDensityInfo(lmrcImageDensityInfoInfo* linfo, mrcImage* in, long mode);

modeによって算出する統計データを選択できます。(複数選択可)

モード 関数名 説明
+1 lmrcImageDensityInfoPercentageVolume 体積比率(百分率)
+2 lmrcImageDensityInfoCentreOfGravity 重心
+4 lmrcImageDensityInfoMax 最大値
+8 lmrcImageDensityInfoCentreOfGravity 重心の周りの標準偏差(重心も算出されます)
+16 lmrcImageDensityInfoSD 最大値の周りの標準偏差(最大値も算出されます)


extern floatVector lmrcImageDensityInfoPercentageVolume(mrcImage* in, double delta, long mode);
extern mrcImageParaTypeRealCoord lmrcImageDensityInfoCentreOfGravity(mrcImage* in, long mode);
extern mrcImageParaTypeRealCoord lmrcImageDensityInfoMax(mrcImage* in, long mode);
extern mrcImageParaTypeRealCoord lmrcImageDensityInfoSD(mrcImage* in, mrcImageParaTypeRealCoord centre, long mode);

mrcImageDensityChangeEstimation

統計データの出力
extern void lmrcImageDensityChangeEstimationModePrint(FILE* fpt);
extern void lmrcImageDensityChangeEstimationWrite(FILE*fpt, lmrcImageDensityChangeEstimationInfo* linfo, long mode); 
統計データの算出
extern void lmrcImageDensityChangeEstimation(lmrcImageDensityChangeEstimationInfo* linfo, mrcImage* in1, mrcImage* in2, long mode); 

modeによって算出する統計データを選択できます。(複数選択可)

モード 関数名 説明
+2 lmrcImageDensityInfoCentreOfGravity 重心
+4 lmrcImageDensityInfoMax 最大値
+8 lmrcImageDensityInfoCentreOfGravity 重心の周りの標準偏差(重心も算出されます)
+16 lmrcImageDensityInfoSD 最大値の周りの標準偏差(最大値も算出されます)


extern void lmrcImageDensityChangeEstimationCentreOfGravity(lmrcImageDensityChangeEstimationInfo0* linfo, mrcImage* in, mrcImage* in2, long mode);
extern void lmrcImageDensityChangeEstimationMax(lmrcImageDensityChangeEstimationInfo0* linfo, mrcImage* in, mrcImage* in2, long mode);
extern void lmrcImageDensityChangeEstimationSD(lmrcImageDensityChangeEstimationInfo0* linfo,
																	mrcImage* in1, mrcImage* in2, long mode);