「lmrcImageDensity(API)」の版間の差分

提供: Eospedia
移動: 案内検索
 
(同じ利用者による、間の3版が非表示)
行1: 行1:
DataManip/mrcImage/src/'''lmrcImageDensity'''は[[mrcImage]]に関する密度計算やモード設定のためのAPI です。
+
DataManip/mrcImage/src/'''lmrcImageDensity'''は[[mrcImage]]に関する統計データ(体積の割合、重心、最大値、標準偏差など)を算出するためのAPI です。[[mrcImageDensityInfo]]、[[mrcImageDensityChangeEstimation]]などで使用しています。
  
 
== 定数 ==
 
== 定数 ==
lmrcImageDensityInfoのモードとして使用します。
+
lmrcImageDensityInfoのモードとして使用します。
 
  typedef enum lmrcImageDensityInfoMode {
 
  typedef enum lmrcImageDensityInfoMode {
 
  mrcImageDensityInfoPercentageVolume  =1,
 
  mrcImageDensityInfoPercentageVolume  =1,
行10: 行10:
 
  mrcImageDensityInfoMaxSD            =16
 
  mrcImageDensityInfoMaxSD            =16
 
  } lmrcImageDensityInfoMode;
 
  } lmrcImageDensityInfoMode;
 +
 +
lmrcImageDensityChangeEstimationのモードとして使用します。
 +
typedef enum lmrcImageDensityChangeEstimationMode {
 +
mrcImageDensityChangeEstimationCentreOfGravity  =2,
 +
mrcImageDensityChangeEstimationMax              =4,
 +
mrcImageDensityChangeEstimationCentreOfGravitySD =8,
 +
mrcImageDensityChangeEstimationMaxSD            =16
 +
} lmrcImageDensityChageEstimationMode;
  
 
== 構造体 ==
 
== 構造体 ==
 +
lmrcImageDensityInfoの設定データとして使用します。
 
  typedef struct lmrcImageDensityInfoInfo {
 
  typedef struct lmrcImageDensityInfoInfo {
 
  floatVector percentageVolume;
 
  floatVector percentageVolume;
行21: 行30:
 
  mrcImage in;
 
  mrcImage in;
 
  } lmrcImageDensityInfoInfo;
 
  } lmrcImageDensityInfoInfo;
 +
 +
lmrcImageDensityChangeEstimationの設定データとして使用します。
 +
typedef struct lmrcImageDensityChangeEsitmationInfo {
 +
lmrcImageDensityChangeEstimationInfo0 CG;
 +
lmrcImageDensityChangeEstimationInfo0 Max;
 +
mrcImage in1;
 +
mrcImage in2;
 +
} lmrcImageDensityChangeEstimationInfo;
  
 
  typedef struct lmrcImageDensityChangeEsitmationInfo0 {
 
  typedef struct lmrcImageDensityChangeEsitmationInfo0 {
行30: 行47:
 
  double                    deltaXYSD;
 
  double                    deltaXYSD;
 
  } lmrcImageDensityChangeEstimationInfo0;
 
  } lmrcImageDensityChangeEstimationInfo0;
 
typedef struct lmrcImageDensityChangeEsitmationInfo {
 
lmrcImageDensityChangeEstimationInfo0 CG;
 
lmrcImageDensityChangeEstimationInfo0 Max;
 
mrcImage in1;
 
mrcImage in2;
 
} lmrcImageDensityChangeEstimationInfo;
 
 
typedef enum lmrcImageDensityChangeEstimationMode {
 
mrcImageDensityChangeEstimationCentreOfGravity  =2,
 
mrcImageDensityChangeEstimationMax              =4,
 
mrcImageDensityChangeEstimationCentreOfGravitySD =8,
 
mrcImageDensityChangeEstimationMaxSD            =16
 
} lmrcImageDensityChageEstimationMode;
 
  
 
== API ==
 
== API ==
 +
====mrcImageDensityInfo====
 +
=====統計データの出力=====
 
  extern void lmrcImageDensityInfoModePrint(FILE* fpt);
 
  extern void lmrcImageDensityInfoModePrint(FILE* fpt);
 +
extern void lmrcImageDensityInfoWrite(FILE* fpt, lmrcImageDensityInfoInfo* linfo, long mode);
  
===統計データの算出===
+
=====統計データの算出=====
 
  extern void lmrcImageDensityInfo(lmrcImageDensityInfoInfo* linfo, mrcImage* in, long mode);
 
  extern void lmrcImageDensityInfo(lmrcImageDensityInfoInfo* linfo, mrcImage* in, long mode);
 
 
modeによって算出する統計データを選択できます。(複数選択可)
 
modeによって算出する統計データを選択できます。(複数選択可)
 
<table border="1">
 
<table border="1">
行61: 行66:
 
<td>+1</td>  
 
<td>+1</td>  
 
<td>lmrcImageDensityInfoPercentageVolume</td>  
 
<td>lmrcImageDensityInfoPercentageVolume</td>  
<td></td>  
+
<td>体積比率(百分率)</td>  
 
</tr>  
 
</tr>  
 
<tr>  
 
<tr>  
 
<td>+2</td>  
 
<td>+2</td>  
<td></td>  
+
<td>lmrcImageDensityInfoCentreOfGravity</td>  
<td></td>  
+
<td>重心</td>  
 
</tr>  
 
</tr>  
 
<tr>  
 
<tr>  
 
<td>+4</td>  
 
<td>+4</td>  
<td></td>  
+
<td>lmrcImageDensityInfoMax</td>  
<td></td>  
+
<td>最大値</td>  
 
</tr>  
 
</tr>  
 
<tr>  
 
<tr>  
 
<td>+8</td>  
 
<td>+8</td>  
<td></td>  
+
<td>lmrcImageDensityInfoCentreOfGravity</td>  
<td></td>  
+
<td>重心の周りの標準偏差(重心も算出されます)</td>  
 
</tr>  
 
</tr>  
 
<tr>  
 
<tr>  
 
<td>+16</td>  
 
<td>+16</td>  
<td></td>  
+
<td>lmrcImageDensityInfoSD</td>  
<td></td>  
+
<td>最大値の周りの標準偏差(最大値も算出されます)</td>  
 
</tr>  
 
</tr>  
 
</table>  
 
</table>  
 
<br>
 
<br>
 
extern void lmrcImageDensityInfoWrite(FILE* fpt, lmrcImageDensityInfoInfo* linfo, long mode);
 
  
 
  extern floatVector lmrcImageDensityInfoPercentageVolume(mrcImage* in, double delta, long mode);
 
  extern floatVector lmrcImageDensityInfoPercentageVolume(mrcImage* in, double delta, long mode);
行93: 行96:
 
  extern mrcImageParaTypeRealCoord lmrcImageDensityInfoSD(mrcImage* in, mrcImageParaTypeRealCoord centre, long mode);
 
  extern mrcImageParaTypeRealCoord lmrcImageDensityInfoSD(mrcImage* in, mrcImageParaTypeRealCoord centre, long mode);
  
 +
====mrcImageDensityChangeEstimation====
 +
=====統計データの出力=====
 
  extern void lmrcImageDensityChangeEstimationModePrint(FILE* fpt);
 
  extern void lmrcImageDensityChangeEstimationModePrint(FILE* fpt);
extern void lmrcImageDensityChangeEstimation(lmrcImageDensityChangeEstimationInfo* linfo, mrcImage* in1, mrcImage* in2, long mode);
 
 
  extern void lmrcImageDensityChangeEstimationWrite(FILE*fpt, lmrcImageDensityChangeEstimationInfo* linfo, long mode);  
 
  extern void lmrcImageDensityChangeEstimationWrite(FILE*fpt, lmrcImageDensityChangeEstimationInfo* linfo, long mode);  
 +
 +
=====統計データの算出=====
 +
extern void lmrcImageDensityChangeEstimation(lmrcImageDensityChangeEstimationInfo* linfo, mrcImage* in1, mrcImage* in2, long mode);
 +
modeによって算出する統計データを選択できます。(複数選択可)
 +
<table border="1">
 +
<tr>
 +
<th>モード</th>
 +
<th>関数名</th>
 +
<th>説明</th>
 +
</tr>
 +
<tr>
 +
<td>+2</td>
 +
<td>lmrcImageDensityInfoCentreOfGravity</td>
 +
<td>重心</td>
 +
</tr>
 +
<tr>
 +
<td>+4</td>
 +
<td>lmrcImageDensityInfoMax</td>
 +
<td>最大値</td>
 +
</tr>
 +
<tr>
 +
<td>+8</td>
 +
<td>lmrcImageDensityInfoCentreOfGravity</td>
 +
<td>重心の周りの標準偏差(重心も算出されます)</td>
 +
</tr>
 +
<tr>
 +
<td>+16</td>
 +
<td>lmrcImageDensityInfoSD</td>
 +
<td>最大値の周りの標準偏差(最大値も算出されます)</td>
 +
</tr>
 +
</table>
 +
<br>
 +
 
  extern void lmrcImageDensityChangeEstimationCentreOfGravity(lmrcImageDensityChangeEstimationInfo0* linfo, mrcImage* in, mrcImage* in2, long mode);
 
  extern void lmrcImageDensityChangeEstimationCentreOfGravity(lmrcImageDensityChangeEstimationInfo0* linfo, mrcImage* in, mrcImage* in2, long mode);
 
  extern void lmrcImageDensityChangeEstimationMax(lmrcImageDensityChangeEstimationInfo0* linfo, mrcImage* in, mrcImage* in2, long mode);
 
  extern void lmrcImageDensityChangeEstimationMax(lmrcImageDensityChangeEstimationInfo0* linfo, mrcImage* in, mrcImage* in2, long mode);
 
 
  extern void lmrcImageDensityChangeEstimationSD(lmrcImageDensityChangeEstimationInfo0* linfo,
 
  extern void lmrcImageDensityChangeEstimationSD(lmrcImageDensityChangeEstimationInfo0* linfo,
 
  mrcImage* in1, mrcImage* in2, long mode);
 
  mrcImage* in1, mrcImage* in2, long mode);

2014年5月16日 (金) 05:17時点における最新版

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);