「lmrc2Dto3D(API)」の版間の差分
提供: Eospedia
(ページの作成:「DataManip/transform/src/'''lmrc2Dto3D'''はmrc2Dto3DのためのAPI です。 == 定数 == == 構造体 == typedef enum lmrc2Dto3DMode { mrc2Dto3DModeSimpleBackP...」) |
(→繰り返し(SIRT)) |
||
(同じ利用者による、間の8版が非表示) | |||
行1: | 行1: | ||
− | DataManip/transform/src/'''lmrc2Dto3D''' | + | 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);
lmrc2Dto3DやlmrcImage3Dto2DFollowingTailerを繰り返して、3次元再構成を行います。
linfoのメンバーによりSIRTの回数や条件などを設定できます。
メンバー | 説明 |
---|---|
ctfinfo | CTF情報 |
maxIter | 繰り返し回数 |
rms | (inとの差) < rms で終了 |