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

提供: Eospedia
移動: 案内検索
(ページの作成:「DataManip/ctfInfo/src/'''lctfDetermination'''はctfDetermineのためのAPI です。 == 定数 == == 構造体 == typedef struct lctfDetermineInfo { ctfInfo ini...」)
 
(API)
行23: 行23:
  
 
== API ==
 
== API ==
 +
=== CTFの推定 ===
 +
==== メイン ====
 +
mode(0x000000F0でマスク)によった方法で[[CTF]]の推定を行います。<br>
 +
現在の[[ctfDetermine]]ではこの[[API]]を使用せずに他の[[API]]を直接呼ぶようになっています。
 
  extern void lctfDetermine(ctfInfo* result, ctfInfo* var, mrcImage* mrc, lctfDetermineInfo* linfo, long mode);
 
  extern void lctfDetermine(ctfInfo* result, ctfInfo* var, mrcImage* mrc, lctfDetermineInfo* linfo, long mode);
extern void lctfDtermmineUsage(FILE* fpt);
+
<table border="1">
 +
<tr>
 +
<th>mode(& 0x000000F0)</th>
 +
<th>使用関数</th>
 +
</tr>
 +
<tr>
 +
<td>0</td>
 +
<td>lctfDeterminationbyMinMaxMethods</td>
 +
</tr>
 +
<tr>
 +
<td>16</td>
 +
<td>lctfDeterminationbyFittingMethods</td>
 +
</tr>
 +
<tr>
 +
<td>32</td>
 +
<td>lctfDeterminationbyDifferentialMethods</td>
 +
</tr>
 +
<tr>
 +
<td>64</td>
 +
<td>lctfDeterminationbyCovarianceMethods</td>
 +
</tr>
 +
<tr>
 +
<td>96</td>
 +
<td>lctfDeterminationbyMixMethods</td>
 +
</tr>
 +
<tr>
 +
<td>128</td>
 +
<td>lctfDeterminationbyMinSquareMethods</td>
 +
</tr>
 +
<tr>
 +
<td>160, 161, 163(0x0000000Fのマスクでも判定)</td>
 +
<td>lctfDeterminationbyMinSquareMethods<br>
 +
EnvelopeDetermine<br>
 +
</td>
 +
</tr>
 +
<tr>
 +
<td>167(0x0000000Fのマスクでも判定)</td>
 +
<td>lctfDeterminationbyMinSquareMethodsWithAcomp</td>
 +
</tr>
 +
<tr>
 +
<td>176</td>
 +
<td>lmrcFSInfoScatteringAngularDistributionAverageSection<br>
 +
lctfDeterminationbyMinSquareMethods<br>
 +
lctfDeterminationByTangent<br>
 +
lastigmatismDetection<br>
 +
</td>
 +
</tr>
 +
</table>
 +
<br>
  
 +
==== ミニマックス法 ====
 
  extern void lctfDeterminationbyMinMaxMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long mode);
 
  extern void lctfDeterminationbyMinMaxMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long mode);
 +
 +
==== フィッティング法 ====
 
  extern void lctfDeterminationbyFittingMethods(ctfInfo* res, ctfInfo* var, mrcImage* mrc, ctfInfo* ini, long mode);
 
  extern void lctfDeterminationbyFittingMethods(ctfInfo* res, ctfInfo* var, mrcImage* mrc, ctfInfo* ini, long mode);
 
  extern void angularDistributionFunctionOfSignalAndNoise(float x, float p[], float* y, float dyda[], int na);
 
  extern void angularDistributionFunctionOfSignalAndNoise(float x, float p[], float* y, float dyda[], int na);
 +
 +
==== 差分法 ====
 
  extern void lctfDeterminationbyDifferentialMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);
 
  extern void lctfDeterminationbyDifferentialMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);
 +
 +
==== 共分散法 ====
 
  extern void lctfDeterminationbyCovarianceMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);
 
  extern void lctfDeterminationbyCovarianceMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);
 +
 +
==== 差分法+共分散法 ====
 
  extern void lctfDeterminationbyMixMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long* ThonRing,long mode);
 
  extern void lctfDeterminationbyMixMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long* ThonRing,long mode);
 +
 +
==== 最小二乗法 ====
 
  extern void lctfDeterminationbyMinSquareMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
 
  extern void lctfDeterminationbyMinSquareMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
 +
 +
 +
extern void EnvelopeDetermine(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
 
  extern void lctfDeterminationbyMinSquareMethodsWithAcomp(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
 
  extern void lctfDeterminationbyMinSquareMethodsWithAcomp(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
 
  extern double lctfDeterminationByTangent(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
 
  extern double lctfDeterminationByTangent(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
  extern void EnvelopeDetermine(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
+
 
 +
=== ヘルプ ===
 +
modeの説明を出力します。
 +
  extern void lctfDtermmineUsage(FILE* fpt);

2014年9月30日 (火) 05:35時点における版

DataManip/ctfInfo/src/lctfDeterminationctfDetermineのためのAPI です。

定数

構造体

typedef struct lctfDetermineInfo {
	ctfInfo initial;

	long    ThonRing; 	
	/* For Astigmatism */
	int     flagAstigmatism;
	int    section;

	int    degree;
	double step;
	double max;
	double min;
	float  firstRingDefocus;
	float  IntensityMin;
	float  IntensityMax;
	float* noise;
} lctfDetermineInfo;

API

CTFの推定

メイン

mode(0x000000F0でマスク)によった方法でCTFの推定を行います。
現在のctfDetermineではこのAPIを使用せずに他のAPIを直接呼ぶようになっています。

extern void lctfDetermine(ctfInfo* result, ctfInfo* var, mrcImage* mrc, lctfDetermineInfo* linfo, long mode);
mode(& 0x000000F0) 使用関数
0 lctfDeterminationbyMinMaxMethods
16 lctfDeterminationbyFittingMethods
32 lctfDeterminationbyDifferentialMethods
64 lctfDeterminationbyCovarianceMethods
96 lctfDeterminationbyMixMethods
128 lctfDeterminationbyMinSquareMethods
160, 161, 163(0x0000000Fのマスクでも判定) lctfDeterminationbyMinSquareMethods

EnvelopeDetermine

167(0x0000000Fのマスクでも判定) lctfDeterminationbyMinSquareMethodsWithAcomp
176 lmrcFSInfoScatteringAngularDistributionAverageSection

lctfDeterminationbyMinSquareMethods
lctfDeterminationByTangent
lastigmatismDetection


ミニマックス法

extern void lctfDeterminationbyMinMaxMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long mode);

フィッティング法

extern void lctfDeterminationbyFittingMethods(ctfInfo* res, ctfInfo* var, mrcImage* mrc, ctfInfo* ini, long mode);
extern void angularDistributionFunctionOfSignalAndNoise(float x, float p[], float* y, float dyda[], int na);

差分法

extern void lctfDeterminationbyDifferentialMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);

共分散法

extern void lctfDeterminationbyCovarianceMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing, long mode);

差分法+共分散法

extern void lctfDeterminationbyMixMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini, long* ThonRing,long mode);

最小二乗法

extern void lctfDeterminationbyMinSquareMethods(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);


extern void EnvelopeDetermine(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);
extern void lctfDeterminationbyMinSquareMethodsWithAcomp(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,long* ThonRing,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres ,long mode);
extern double lctfDeterminationByTangent(ctfInfo* res, mrcImage* mrc, ctfInfo* ini,lctfDetermineInfo* linfo,floatVector* defocus,floatVector* Eres, long mode);

ヘルプ

modeの説明を出力します。

extern void lctfDtermmineUsage(FILE* fpt);