「lmrc2Dto3D(API)」の版間の差分
提供: Eospedia
| 行45: | 行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)]])での動作も可能です。 | ||
| + | |||
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次元再構成を行います。 | ||
2014年5月22日 (木) 06:00時点における版
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))での動作も可能です。
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次元再構成を行います。