「lmrc3Dto2D(API)」の版間の差分
提供: Eospedia
| 行57: | 行57: | ||
== API == | == API == | ||
| + | ===3D -> 2D投影=== | ||
| + | 3D画像inを2Dスタック画像outへ投影します。[[eosPThread(API)]]を使ったマルチスレッドにも対応しています。 | ||
extern void lmrcImage3Dto2D(mrcImage* out, mrcImage* in, lmrc3Dto2DInfo* linfo, int mode); | extern void lmrcImage3Dto2D(mrcImage* out, mrcImage* in, lmrc3Dto2DInfo* linfo, int mode); | ||
| + | lmrc3Dto2DInfoの設定により、投影方法を選択することができます。 | ||
| + | <table border="1"> | ||
| + | <tr> | ||
| + | <th>メンバー</th> | ||
| + | <th>設定内容</th> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>Rot...<br> | ||
| + | EulerAngleMode</td> | ||
| + | <td>投影時の[[オイラー角]]</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>InterpolationMode</td> | ||
| + | <td>投影時の[[補間]]方法</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>AreaMode</td> | ||
| + | <td>投影図法</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>PVM</td> | ||
| + | <td>PVM使用の有無</td> | ||
| + | </tr> | ||
| + | </table> | ||
| + | <br> | ||
| − | === | + | ===1軸回転での投影=== |
extern void lmrcImage3Dto2DSingle(mrcImage* out, mrcImage* in, | extern void lmrcImage3Dto2DSingle(mrcImage* out, mrcImage* in, | ||
char Mat[4], | char Mat[4], | ||
2014年5月22日 (木) 04:33時点における版
DataManip/transform/src/lmrc3Dto2Dはmrc3Dto2DのためのAPI です。
定数
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次元再構成を行うときなどに使用します。