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

提供: Eospedia
移動: 案内検索
(繰り返し(SIRT))
 
(同じ利用者による、間の3版が非表示)
行48: 行48:
 
2Dスタック画像(in)から3D画像へ逆投影を行います。
 
2Dスタック画像(in)から3D画像へ逆投影を行います。
 
  extern void lmrc2Dto3D(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, long mode);
 
  extern void lmrc2Dto3D(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, long mode);
マルチスレッド([[eosPThread(API)]])での動作も可能です。
+
マルチスレッド([[eosPThread(API)]])での動作も可能です。<br>
 +
linfo->modeを設定して逆投影の方法を選択できます。
 +
<table border="1">
 +
<tr>
 +
<th>mode</th>
 +
<th>値</th>
 +
<th>使用関数</th>
 +
</tr>
 +
<tr>
 +
<td>mrc2Dto3DModeSimpleBackProjection</td>
 +
<td>0</td>
 +
<td>lmrc2Dto3DSimpleBackProjectionForEach</td>
 +
</tr>
 +
<tr>
 +
<td>mrc2Dto3DModeFilteredBackProjection</td>
 +
<td>1</td>
 +
<td>lmrc2Dto3DFilteredBackProjectionForEach</td>
 +
</tr>
 +
<tr>
 +
<td>mrc2Dto3DModeWeightedBackProjection</td>
 +
<td>2</td>
 +
<td></td>
 +
</tr>
 +
</table>
 +
<br>
  
 +
====単純逆投影====
 
  extern void lmrc2Dto3DSimpleBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
 
  extern void lmrc2Dto3DSimpleBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
 +
 +
====フィルタ逆投影====
 
  extern void lmrc2Dto3DFilteredBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
 
  extern void lmrc2Dto3DFilteredBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
  
 
===繰り返し([[SIRT]])===
 
===繰り返し([[SIRT]])===
 
  extern void lmrc2Dto3DSIRT(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, lmrc2Dto3DSIRTInfo* llinfo, long mode);
 
  extern void lmrc2Dto3DSIRT(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, lmrc2Dto3DSIRTInfo* llinfo, long mode);
[[lmrc2Dto3D(API)#2Dスタックから3Dへの逆投影|lmrc2Dto3D]]や[[lmrc3Dto2D(API)#参照ファイルの角度情報を使用|lmrcImage3Dto2DFollowingTailer]]を繰り返して、3次元再構成を行います。
+
[[lmrc2Dto3D(API)#2Dスタックから3Dへの逆投影|lmrc2Dto3D]]や[[lmrc3Dto2D(API)#参照ファイルの角度情報を使用|lmrcImage3Dto2DFollowingTailer]]を繰り返して、3次元再構成を行います。<br>
 +
linfoのメンバーによりSIRTの回数や条件などを設定できます。
 +
<table border="1">
 +
<tr>
 +
<th>メンバー</th>
 +
<th>説明</th>
 +
</tr>
 +
<tr>
 +
<td>ctfinfo</td>
 +
<td>CTF情報</td>
 +
</tr>
 +
<tr>
 +
<td>maxIter</td>
 +
<td>繰り返し回数</td>
 +
</tr>
 +
<tr>
 +
<td>rms</td>
 +
<td>(inとの差) < rms で終了</td>
 +
</tr>
 +
</table>
 +
<br>

2014年9月5日 (金) 02:01時点における最新版

DataManip/transform/src/lmrc2Dto3Dは2D画像から3D画像への逆投影のためのAPI です。mrc2Dto3Dなどで使用しています。

定数

構造体

逆投影方法の設定です。lmrc2Dto3DInfoのメンバーmodeの値として使用しています。

typedef enum lmrc2Dto3DMode {
	mrc2Dto3DModeSimpleBackProjection = 0,
	mrc2Dto3DModeFilteredBackProjection = 1,
	mrc2Dto3DModeWeightedBackProjection = 2
} lmrc2Dto3DMode;

このAPIの設定で使用します。

typedef struct lmrc2Dto3DInfo {
	// for Many Files 
	int    inFileNum; 
	char** inFileList;
	mrcImageTailer* Tailer;

	// For Control  
	long flagDouble;
	long singleTiltMode;
	long mode;
	int  InterpolationMode;
	long flagPlusXrot;
	mrcImage* CounterForWeight;
	lmrcImageRhoFilteringInfo rhoInfo;

	// Size
	int flagOutputSize;
	int Nx;
	int Ny;
	int Nz;
} lmrc2Dto3DInfo;

lmrc2Dto3DSIRTの設定で使用します。

typedef struct lmrc2Dto3DSIRTInfo {
	lmrc3Dto2DInfo l3Dto2DInfo;

	ctfInfo ctfInfo;
	int maxIter;
	double rms;
	double lambda;
} lmrc2Dto3DSIRTInfo;

API

2Dスタックから3Dへの逆投影

2Dスタック画像(in)から3D画像へ逆投影を行います。

extern void lmrc2Dto3D(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, long mode);

マルチスレッド(eosPThread(API))での動作も可能です。
linfo->modeを設定して逆投影の方法を選択できます。

mode 使用関数
mrc2Dto3DModeSimpleBackProjection 0 lmrc2Dto3DSimpleBackProjectionForEach
mrc2Dto3DModeFilteredBackProjection 1 lmrc2Dto3DFilteredBackProjectionForEach
mrc2Dto3DModeWeightedBackProjection 2


単純逆投影

extern void lmrc2Dto3DSimpleBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);

フィルタ逆投影

extern void lmrc2Dto3DFilteredBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);

繰り返し(SIRT)

extern void lmrc2Dto3DSIRT(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, lmrc2Dto3DSIRTInfo* llinfo, long mode);

lmrc2Dto3DlmrcImage3Dto2DFollowingTailerを繰り返して、3次元再構成を行います。
linfoのメンバーによりSIRTの回数や条件などを設定できます。

メンバー 説明
ctfinfo CTF情報
maxIter 繰り返し回数
rms (inとの差) < rms で終了