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

提供: Eospedia
移動: 案内検索
(ページの作成:「DataManip/transform/src/'''lmrc2Dto3D'''はmrc2Dto3DのためのAPI です。 == 定数 == == 構造体 == typedef enum lmrc2Dto3DMode { mrc2Dto3DModeSimpleBackP...」)
 
(繰り返し(SIRT))
 
(同じ利用者による、間の8版が非表示)
行1: 行1:
DataManip/transform/src/'''lmrc2Dto3D'''[[mrc2Dto3D]]のためのAPI です。
+
DataManip/transform/src/'''lmrc2Dto3D'''は2D画像から3D画像への逆投影のためのAPI です。[[mrc2Dto3D]]などで使用しています。
  
 
== 定数 ==
 
== 定数 ==
  
 
== 構造体 ==
 
== 構造体 ==
 +
逆投影方法の設定です。lmrc2Dto3DInfoのメンバーmodeの値として使用しています。
 
  typedef enum lmrc2Dto3DMode {
 
  typedef enum lmrc2Dto3DMode {
 
  mrc2Dto3DModeSimpleBackProjection = 0,
 
  mrc2Dto3DModeSimpleBackProjection = 0,
行10: 行11:
 
  } lmrc2Dto3DMode;
 
  } lmrc2Dto3DMode;
  
 +
このAPIの設定で使用します。
 
  typedef struct lmrc2Dto3DInfo {
 
  typedef struct lmrc2Dto3DInfo {
 
  // for Many Files  
 
  // for Many Files  
行32: 行34:
 
  } lmrc2Dto3DInfo;
 
  } lmrc2Dto3DInfo;
  
 +
lmrc2Dto3DSIRTの設定で使用します。
 
  typedef struct lmrc2Dto3DSIRTInfo {
 
  typedef struct lmrc2Dto3DSIRTInfo {
 
  lmrc3Dto2DInfo l3Dto2DInfo;
 
  lmrc3Dto2DInfo l3Dto2DInfo;
行42: 行45:
  
 
== API ==
 
== API ==
 +
===2Dスタックから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)]])での動作も可能です。<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]])===
 
  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次元再構成を行います。<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 で終了