lmrc3Dto2D(API)

提供: Eospedia
2014年5月22日 (木) 04:44時点におけるKinoshita (トーク | 投稿記録)による版

移動: 案内検索

DataManip/transform/src/lmrc3Dto2Dは3Dから2Dへの投影像を作成するためのAPI です。主にmrc3Dto2Dで使用されています。

定数

lmrc3Dto2DInfoのメンバーAreaModeの値として使用します。

typedef enum lmrc3Dto2DObjectAreaMode {
	lmrc3D2DObjectAreaModeCubic=0,
	lmrc3D2DObjectAreaModeGlobular=1
} lmrc3Dto2DObjectAreaMode;

構造体

このAPIの設定データとして使用します。

typedef struct lmrc3Dto2DInfo {
	/* Rot1 */
	double Rot1Start;
	double Rot1End;
	double Rot1Delta;
	int    nRot1;

	/* Rot2 */
	double Rot2Start;
	double Rot2End;
	double Rot2Delta;
	int    nRot2;

	/* Rot3 */
	double Rot3Start;
	double Rot3End;
	double Rot3Delta;
	int    nRot3;

	/* EulerAngleMode*/
	char   EulerAngleMode[5];

	/* InterpolationMode */
	int InterpolationMode;

	/* */
	lmrc3Dto2DObjectAreaMode AreaMode; 

	/* PVM */
	int flagPVM;	

	/* fileListInformation */
	int flagFileList;
	char* filenamePrefix;
	char* filenameSuffix;
	char* filenameNumberFormat; 
} lmrc3Dto2DInfo;

lmrcImage3Dto2DSingleの1軸回転に関する設定データとして使用します。

typedef struct lmrc3Dto2DSingleInfo {
	/* Section */
	int section;
	/* Init */
	int flagInit;
} lmrc3Dto2DSingleInfo;

API

3D -> 2D投影

3D画像inを2Dスタック画像outへ投影します。eosPThread(API)を使ったマルチスレッドにも対応しています。

extern void lmrcImage3Dto2D(mrcImage* out, mrcImage* in, lmrc3Dto2DInfo* linfo, int mode);

lmrc3Dto2DInfoの設定により、投影方法を選択することができます。

メンバー 設定内容
Rot...
EulerAngleMode
投影時のオイラー角
InterpolationMode 投影時の補間方法
AreaMode 投影図法
PVM PVM使用の有無


1軸回転での投影

extern void lmrcImage3Dto2DSingle(mrcImage* out, mrcImage* in, 
	char Mat[4], 
	double Rot1, 
	double Rot2,
	double Rot3, 
	lmrc3Dto2DInfo* linfo, 
	lmrc3Dto2DSingleInfo* llinfo, 
	int mode);

参照ファイルの角度情報を使用

参照投影像refのトレイラと同じ角度情報で2D投影を行います。

extern void lmrcImage3Dto2DFollowingTailer(mrcImage* out, mrcImage* in, mrcImage* ref, lmrc3Dto2DInfo* linfo, int mode);

繰り返し(SIRT)で3次元再構成を行うときなどに使用します。