「lmrcImageSymmetryFind(API)」の版間の差分

提供: Eospedia
移動: 案内検索
(ページの作成:「DataManip/mrcImage/src/'''lmrcImageSymmetryFind'''はmrcImageSymmetryFindのためのAPI です。 == 定数 == == 構造体 == typedef enum lmrcImageSymmetryFindC...」)
 
行2: 行2:
  
 
== 定数 ==
 
== 定数 ==
 
+
lmrcImageSymmetryFindInfoのメンバー: centreModeで使用する値です。
== 構造体 ==
+
 
  typedef enum lmrcImageSymmetryFindCheckType {
 
  typedef enum lmrcImageSymmetryFindCheckType {
 
  lmrcImageSymmetryFindCheckTypeCheckByAdd=1,
 
  lmrcImageSymmetryFindCheckTypeCheckByAdd=1,
行12: 行11:
 
  } lmrcImageSymmetryFindCheckType;
 
  } lmrcImageSymmetryFindCheckType;
  
 +
lmrcImageSymmetryFindInfoのメンバー: centreInfoで使用する値です。
 
  typedef enum lmrcImageSymmetryFindCentreType {
 
  typedef enum lmrcImageSymmetryFindCentreType {
 
  lmrcImageSymmetryFindCheckTypeCentreGC      = 0,
 
  lmrcImageSymmetryFindCheckTypeCentreGC      = 0,
行17: 行17:
 
  } lmrcImageSymmetryFindCentreType;
 
  } lmrcImageSymmetryFindCentreType;
  
 +
lmrcImageSymmetryFindInfoのメンバー: subtractionModeで使用する値です。
 
  typedef enum lmrcImageSymmetryFindSubtractionType {
 
  typedef enum lmrcImageSymmetryFindSubtractionType {
 
  lmrcImageSymmetryFindCheckTypeNoSubtraction  = 0,
 
  lmrcImageSymmetryFindCheckTypeNoSubtraction  = 0,
行23: 行24:
 
  } lmrcImageSymmetryFindSubtractionType;
 
  } lmrcImageSymmetryFindSubtractionType;
  
 +
== 構造体 ==
 +
このAPIで使用する設定データです。
 
  typedef struct lmrcImageSymmetryFindInfo {
 
  typedef struct lmrcImageSymmetryFindInfo {
 
  double dr;
 
  double dr;
行65: 行68:
  
 
== API ==
 
== API ==
 +
===対称性の探索===
 
  extern void  
 
  extern void  
 
  lmrcImageSymmetryFind(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);  
 
  lmrcImageSymmetryFind(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);  
 +
以下のモード(mode)によった手法で対称性を見つけます。(複数選択可)
 +
<table border="1">
 +
<tr>
 +
<th>モード</th>
 +
<th>手法</th>
 +
<th>使用関数</th>
 +
</tr>
 +
<tr>
 +
<td>+1</td>
 +
<td></td>
 +
<td>lmrcImageSymmetryFindCheckByAdd</td>
 +
</tr>
 +
<tr>
 +
<td>+2</td>
 +
<td></td>
 +
<td>lmrcImageSymmetryFindCheckByCorrelation</td>
 +
</tr>
 +
<tr>
 +
<td>+4</td>
 +
<td></td>
 +
<td>lmrcImageSymmetryFindCheckByFourier</td>
 +
</tr>
 +
<tr>
 +
<td>+8</td>
 +
<td></td>
 +
<td>lmrcImageSymmetryFindCheckByTTest</td>
 +
</tr>
 +
<tr>
 +
<td>+16</td>
 +
<td></td>
 +
<td>lmrcImageSymmetryFindCheckBySRP</td>
 +
</tr>
 +
</table>
 +
<br>
  
 
  extern void
 
  extern void
行84: 行122:
  
 
  extern void
 
  extern void
  lmrcImageSymmetryAverage(mrcImage* out, mrcImage* in, int num, DescartesCoord centre, int mode);
+
  lmrcImageSymmetryFindSubtraction(mrcImage* subout, mrcImage* in, lmrcImageSymmetryFindInfo* info, int mode);
  
 +
extern void
 +
lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode);
 +
 +
===結果出力===
 +
[[ASCII]]で出力します。
 
  extern void
 
  extern void
 
  lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInfo* linfo,  int mode);
 
  lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInfo* linfo,  int mode);
  
 +
入力画像との平均画像を出力します。
 
  extern void
 
  extern void
  lmrcImageSymmetryFindSubtraction(mrcImage* subout, mrcImage* in, lmrcImageSymmetryFindInfo* info, int mode);
+
  lmrcImageSymmetryAverage(mrcImage* out, mrcImage* in, int num, DescartesCoord centre, int mode);
  
 +
===API情報の出力===
 
  extern void  
 
  extern void  
 
  lmrcImageSymmetryFindModePrint(FILE* fpt);
 
  lmrcImageSymmetryFindModePrint(FILE* fpt);
 
extern void
 
lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode);
 

2014年5月19日 (月) 06:33時点における版

DataManip/mrcImage/src/lmrcImageSymmetryFindmrcImageSymmetryFindのためのAPI です。

定数

lmrcImageSymmetryFindInfoのメンバー: centreModeで使用する値です。

typedef enum lmrcImageSymmetryFindCheckType {
	lmrcImageSymmetryFindCheckTypeCheckByAdd=1,
	lmrcImageSymmetryFindCheckTypeCheckByCorrelation=2,
	lmrcImageSymmetryFindCheckTypeCheckByFourier=4,
	lmrcImageSymmetryFindCheckTypeCheckByTTest=8,
	lmrcImageSymmetryFindCheckTypeCheckBySRP=16
} lmrcImageSymmetryFindCheckType;

lmrcImageSymmetryFindInfoのメンバー: centreInfoで使用する値です。

typedef enum lmrcImageSymmetryFindCentreType {
	lmrcImageSymmetryFindCheckTypeCentreGC       = 0,
	lmrcImageSymmetryFindCheckTypeCentreSymmetry = 1 
} lmrcImageSymmetryFindCentreType;

lmrcImageSymmetryFindInfoのメンバー: subtractionModeで使用する値です。

typedef enum lmrcImageSymmetryFindSubtractionType {
	lmrcImageSymmetryFindCheckTypeNoSubtraction   = 0,
	lmrcImageSymmetryFindCheckTypeMeanSubtraction = 1,
	lmrcImageSymmetryFindCheckTypeMinSubtraction  = 2 
} lmrcImageSymmetryFindSubtractionType;

構造体

このAPIで使用する設定データです。

typedef struct lmrcImageSymmetryFindInfo {
	double dr;
	double dtheta;
	double threshold1;
	double threshold2;
	int    minNfold;
	int    maxNfold;

	/* Centre */
	lmrcImageSymmetryFindCentreType centreMode;
	lmrcImageDeterminationOfPolarAxisByAssumingNfoldInfo centreInfo;

	lmrcImageSymmetryFindSubtractionType subtractionMode; /* Subtraction Mode */
	int       flagImages;
	mrcImage  Image;
	mrcImage* Images;
	int       flagBacks;
	mrcImage  Back;
	mrcImage* Backs;
	
	floatVector Value;
	floatVector Point;
	int         Symmetry;

	FILE*    fptOut;

	int      flagCorrelation;
	mrcImage correlation;

	int      flagFourier;
	mrcImage  fourier;

	int      flagTmap;
	mrcImage tmap;

	int      flagAvg;
	mrcImage avg;
	char*    avgName;
	DescartesCoord centre;
} lmrcImageSymmetryFindInfo;

API

対称性の探索

extern void 
lmrcImageSymmetryFind(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode); 

以下のモード(mode)によった手法で対称性を見つけます。(複数選択可)

モード 手法 使用関数
+1 lmrcImageSymmetryFindCheckByAdd
+2 lmrcImageSymmetryFindCheckByCorrelation
+4 lmrcImageSymmetryFindCheckByFourier
+8 lmrcImageSymmetryFindCheckByTTest
+16 lmrcImageSymmetryFindCheckBySRP


extern void
lmrcImageSymmetryFindCheckByAdd(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
extern void
lmrcImageSymmetryFindCheckByCorrelation(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
extern void
lmrcImageSymmetryFindCheckByFourier(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
extern void
lmrcImageSymmetryFindCheckByTTest(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
extern void
lmrcImageSymmetryFindCheckBySRP(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
extern void
lmrcImageSymmetryFindSubtraction(mrcImage* subout, mrcImage* in, lmrcImageSymmetryFindInfo* info, int mode);
extern void
lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode);

結果出力

ASCIIで出力します。

extern void
lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInfo* linfo,  int mode);

入力画像との平均画像を出力します。

extern void
lmrcImageSymmetryAverage(mrcImage* out, mrcImage* in, int num, DescartesCoord centre, int mode);

API情報の出力

extern void 
lmrcImageSymmetryFindModePrint(FILE* fpt);