「lFETOrientationSearchByFeatureAlignment(API)」の版間の差分
提供: Eospedia
(→API) |
|||
行169: | 行169: | ||
<br> | <br> | ||
− | info-> | + | info->sphにて特徴量の設定を行います。 |
extern void lFETFeatureAlignmentSphereFeatureSet(lFETFeatureAlignmentInfo* info); | extern void lFETFeatureAlignmentSphereFeatureSet(lFETFeatureAlignmentInfo* info); | ||
<br> | <br> |
2015年3月25日 (水) 02:39時点における版
DataManip/transform/src/lFETOrientationSearchByFeatureAlignmentはFETOrientationSearchByFeatureAlignmentのためのAPI です。
定数
#define SphereDevNum 2100
構造体
typedef struct lFETOrientationSearchByFeatureAlignmentInfo{ FILE* In; FILE* In2; int flagInType; // 0:Sinogram 1:FET int flagIn2; FILE* Out; int ldn; double srl; int flagInA, flagOutA, flagOut2D, flagOutLOG; int itmax, devmax, mitmax, mdevmax; FILE* InA; FILE* OutA; FILE* Out2D; FILE* OutLOG; int mode; }lFETOrientationSearchByFeatureAlignmentInfo;
座標
typedef struct lFETFeatureAlignmentCoord{ double x, y, z; }lFETFeatureAlignmentCoord;
特徴量
typedef struct lFETFeatureAlignmentFeature{ double t, w, a, k; }lFETFeatureAlignmentFeature;
メンバ | 説明 |
---|---|
t | |
w | 幅 |
a | 歪度 |
k | 尖度 |
typedef struct lFETFeatureAlignmentSpherePointInfo{ lFETFeatureAlignmentCoord self; lFETFeatureAlignmentFeature fets; lFETFeatureAlignmentFeature nfets; int nnum; }lFETFeatureAlignmentSpherePointInfo;
typedef struct lFETFeatureAlignmentImageInfo{ char imagename[256]; lFETFeatureAlignmentFeature* fets; double lenmax; double lenmin; double lensum; int posmax; int posmin; int flagLX; double interAngle; lFETFeatureAlignmentCoord norm, base, yoys; //lFETFeatureAlignmentImageInfoClass group; lFETFeatureAlignmentSpherePointInfo* spt[2]; int next; }lFETFeatureAlignmentImageInfo;
typedef struct lFETFeatureAlignmentImageQSInfo{ lFETFeatureAlignmentFeature** corset; int** cset; int* lxseries; int* nseries; int seed; int num; }lFETFeatureAlignmentImageQSInfo;
typedef struct lFETFeatureAlignmentSphereSquareInfo{ lFETFeatureAlignmentSpherePointInfo** sq; int center; }lFETFeatureAlignmentSphereSquareInfo;
typedef struct lFETFeatureAlignmentSphereInfo{ lFETFeatureAlignmentSphereSquareInfo sq6[2][6]; int curSwitch; int mode; }lFETFeatureAlignmentSphereInfo;
typedef struct lFETFeatureAlignmentInfo{ lFETFeatureAlignmentImageInfo* images; int imagey; int imagenum; double llong; double lmiddle; double lmiddles; double lshort; int ldn; double srl; double corave; FILE* OutLOG; //int groupnum[9]; //int groups[9]; int seedImage, smallImage; lFETFeatureAlignmentSphereInfo sph; //lFETFeatureAlignmentSpherePointInfo* spt; int mode; }lFETFeatureAlignmentInfo;
typedef struct lFETFeatureAlignment_multiselectInfo{ lFETFeatureAlignmentImageInfo* images; double max; }lFETFeatureAlignment_multiselectInfo;
typedef struct lFETFeatureAlignment_i11LMLXsInitInfo{ int lmList[10]; int lxList[10]; int pos[10][10]; //int rev[10][10]; double cvalue[10]; double cor[10][10][2]; }lFETFeatureAlignment_i11LMLXsInitInfo;
typedef struct lFETFeatureAlignment_i2LMsLXsInitInfo{ int ser[2][5][10]; int num[2]; }lFETFeatureAlignment_i2LMsLXsInitInfo;
typedef struct lFETFeatureAlignment_i1LssInitInfo{ lFETFeatureAlignmentImageInfo* images[10]; int** angle[10]; int** nums[10]; int** max; }lFETFeatureAlignment_i1LssInitInfo;
typedef struct lFETFeatureAlignment_initmSelecterInfo{ int mode; FILE* InA; int itmax,devmax,mitmax,mdevmax; lFETFeatureAlignmentInfo* faInfo; lFETFeatureAlignment_multiselectInfo multi; lFETFeatureAlignment_i11LMLXsInitInfo i11LMLXs; lFETFeatureAlignment_i2LMsLXsInitInfo i2LMsLXs; lFETFeatureAlignment_i1LssInitInfo i1Lss; }lFETFeatureAlignment_initmSelecterInfo;
API
extern void lFETOrientationSearchByFeatureAlignment(lFETOrientationSearchByFeatureAlignmentInfo in, int mode);
sphの初期設定を行います。
extern void lFETFeatureAlignmentSphereInit(lFETFeatureAlignmentSphereInfo* sph, int mode);
extern void lFETFeatureAlignmentSphereDevide(lFETFeatureAlignmentSphereInfo* sph); extern void lFETFeatureAlignmentSphereDegenerate(lFETFeatureAlignmentSphereInfo* sph); extern void lFETFeatureAlignmentSphereRandDisturb(lFETFeatureAlignmentSphereInfo* sph);
info->sphにて特徴量の設定を行います。
extern void lFETFeatureAlignmentSphereFeatureSet(lFETFeatureAlignmentInfo* info);
extern int lFETFeatureAlignmentSphereRefGenerate(lFETFeatureAlignmentInfo* in, lFETFeatureAlignmentImageInfo* out); extern void lFETFeatureAlignmentInitSet_i2PCA(lFETFeatureAlignmentInfo* info); extern void lFETFeatureAlignmentInitSet_i1L(lFETFeatureAlignmentInfo* info); extern void lFETFeatureAlignmentInitSet_i1Ls(lFETFeatureAlignmentInfo* info, int target); extern void lFETFeatureAlignmentInitPreSet_i1Lss(lFETFeatureAlignmentInfo* info, lFETFeatureAlignment_i1LssInitInfo* out, int target); extern void lFETFeatureAlignmentInitSet_i1Lss(lFETFeatureAlignmentInfo* info, lFETFeatureAlignment_i1LssInitInfo* out, int mode); extern void lFETFeatureAlignmentInitPreSet_i2LMsLXs(lFETFeatureAlignmentInfo* info, lFETFeatureAlignment_i2LMsLXsInitInfo* initInfo); extern void lFETFeatureAlignmentInitSet_i2LMsLXs(lFETFeatureAlignmentInfo* info, lFETFeatureAlignment_i2LMsLXsInitInfo* initInfo, int targetM, int targetS); extern void lFETFeatureAlignmentInitSet_i2LM(lFETFeatureAlignmentInfo* info); extern void lFETFeatureAlignmentInitSet_i21LMLX(lFETFeatureAlignmentInfo* info); extern void lFETFeatureAlignmentInitSet_random(lFETFeatureAlignmentInfo* info); extern void lFETFeatureAlignmentInitSet_i2LXs(lFETFeatureAlignmentInfo* info, int target); extern void lFETFeatureAlignmentInitPreSet_i11LMLXs(lFETFeatureAlignmentInfo* info, lFETFeatureAlignment_i11LMLXsInitInfo* out); extern void lFETFeatureAlignmentInitSet_i11LMLXs(lFETFeatureAlignmentInfo* info, lFETFeatureAlignment_i11LMLXsInitInfo* initInfo, int target);
aの要素をbのメンバへコピーします。
extern void lFETFAfeaturecpy1(lFETFeatureAlignmentFeature* b, double* a);
以下の対応でコピーします。
bのメンバ | aの要素 |
---|---|
b->w | a[0] |
b->a | a[1] |
b->k | a[2] |
aのメンバをbのメンバへ加えます。(w, a, k)
extern void lFETFAfeatureAdd(lFETFeatureAlignmentFeature* b, lFETFeatureAlignmentFeature* a);
2つの座標a, b間の距離を返します。
extern double lFETFAcalcCoordDistance(lFETFeatureAlignmentCoord a, lFETFeatureAlignmentCoord b);
4つの座標a, b, c, dを合計し、正規化した座標を返します。(ベクトルの合成として使用可能)
extern lFETFeatureAlignmentCoord lFETFAcalcCoordSum(lFETFeatureAlignmentCoord a, lFETFeatureAlignmentCoord b, lFETFeatureAlignmentCoord c, lFETFeatureAlignmentCoord d);
aの座標とmodeを掛けた値をbの要素へ格納します。
extern void lFATFAcoordcpy2(lFETFeatureAlignmentCoord* a, double* b, int mode);
以下の対応で格納します。
bの要素 | 値 |
---|---|
b[0] | a->x*mode |
b[1] | a->y*mode |
b[2] | a->z*mode |
aの要素とmodeを掛けた値をbの座標へ格納します。
extern void lFETFAcoordcpy1(lFETFeatureAlignmentCoord* b, double* a, int mode);
以下の対応で格納します。
bのメンバ | 値 |
---|---|
x | a[0]*mode |
y | a[1]*mode |
z | a[2]*mode |
aとbの外積をansへ格納します。
extern void lFETFAvectorProduct1(double* a, double* b, double* ans);