「lFETmapOrientationSearchBySimultaneousFitting(API)」の版間の差分
提供: Eospedia
		
		
		
 (ページの作成:「DataManip/transform/src/'''lFETmapOrientationSearchBySimultaneousFitting'''はFETmapOrientationSearchBySimultaneousFittingのためのAPI です。  == 定数 ==  == ...」)  | 
				|||
| (同じ利用者による、間の5版が非表示) | |||
| 行16: | 行16: | ||
  	int mode;  |   	int mode;  | ||
  }lFETmapOrientationSearchBySimultaneousFittingInfo;  |   }lFETmapOrientationSearchBySimultaneousFittingInfo;  | ||
| + | <table border=1>  | ||
| + | 	<tr>  | ||
| + | 		<th>メンバ</th>  | ||
| + | 		<th>説明</th>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>InML</td>  | ||
| + | 		<td>マップファイルリスト</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>InNL</td>  | ||
| + | 		<td>FETファイルリスト</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>InCL</td>  | ||
| + | 		<td>コモンラインリスト</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>PM</td>  | ||
| + | 		<td>PeakDetectAreaMode(0-10)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>PN</td>  | ||
| + | 		<td>PeakNumber(1-50)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>FileN</td>  | ||
| + | 		<td>FETファイル数</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>FileM</td>  | ||
| + | 		<td>マップファイル数</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>PDT</td>  | ||
| + | 		<td>PeakDetectThreshold_ForMode0(0.02-1.00)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>ChkPtOut</td>  | ||
| + | 		<td>出力ファイル(未対応)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>Out</td>  | ||
| + | 		<td>出力ファイル(未対応)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>mode</td>  | ||
| + | 		<td>モード(特になし)</td>  | ||
| + | 	</tr>  | ||
| + | </table>  | ||
| + | <br>  | ||
  typedef struct FETmapPeakTable{  |   typedef struct FETmapPeakTable{  | ||
| 行24: | 行75: | ||
      int mode;  |       int mode;  | ||
  }FETmapPeakTable;  |   }FETmapPeakTable;  | ||
| − | + | ||
  typedef struct lFETmapPeakDetectAndTableMakeInfo{  |   typedef struct lFETmapPeakDetectAndTableMakeInfo{  | ||
  	FILE* InML;  |   	FILE* InML;  | ||
| 行71: | 行122: | ||
== API ==  | == API ==  | ||
| + | === FET ===  | ||
| + | ==== 角度探索 ====  | ||
| + | infoを入力として画像の角度探索を行います。  | ||
  extern void lFETmapOrientationSearchBySimultaneousFitting(lFETmapOrientationSearchBySimultaneousFittingInfo info, int mode);    |   extern void lFETmapOrientationSearchBySimultaneousFitting(lFETmapOrientationSearchBySimultaneousFittingInfo info, int mode);    | ||
| + | <br>  | ||
| + | |||
| + | [[マップ]]リストinfo->InMLからそれぞれピークサーチを行いテーブルinfo->tableP->tableへ格納します。  | ||
  extern void lFETmapPeakDetectAndTableMake(lFETmapPeakDetectAndTableMakeInfo* info, int mode);  |   extern void lFETmapPeakDetectAndTableMake(lFETmapPeakDetectAndTableMakeInfo* info, int mode);  | ||
| + | <br>  | ||
| + | |||
| + | ピークテーブルTableから3つの角度の組み合わせリストinfo->InCLからマッチングの頻度が最大のデータをリストとしてinfo->CListへ格納します。  | ||
  extern void lFETmapCoreTriadGenerate(FETmapPeakTable* Table, lFETmapCoreTriadGenerateInfo* info, int mode);  |   extern void lFETmapCoreTriadGenerate(FETmapPeakTable* Table, lFETmapCoreTriadGenerateInfo* info, int mode);  | ||
| − |   extern int lFETBestCoreSearch(FETmapPeakTable* , FETCoreTriad* , int , int );  | + | <br>  | 
| + | |||
| + | ピークテーブルTableから3つの角度の組み合わせcoreTからマッチングの頻度が最大のデータをcoreT->triadへ格納します。近いパターンが見つかった場合はその総数をcoreT->matchFlagに、それに対する評点をcoreT->matchingLevelにそれぞれ格納します。  | ||
| + |   extern int lFETBestCoreSearch(FETmapPeakTable* Table, FETCoreTriad* coreT, int PN, int mode);  | ||
| + | <br>  | ||
| + | |||
| + | 1点の座標pointを軸axisに対し、theta[°]だけ回転した座標をandへ格納します。  | ||
  extern void lFETpointRotation(double axis[3], double point[3], double theta, double* ans, int mode);  |   extern void lFETpointRotation(double axis[3], double point[3], double theta, double* ans, int mode);  | ||
| + | <br>  | ||
| + | |||
| + | マッチングの評点を返します。(現実装では0.3を返すのみ)  | ||
  extern double lFET4thMatching(FETmapPeakTable* , FETCoreTriad* , int , int , int , int , int );  |   extern double lFET4thMatching(FETmapPeakTable* , FETCoreTriad* , int , int , int , int , int );  | ||
| + | <br>  | ||
| + | |||
| + | === ラドン空間 ===  | ||
| + | ==== 角度探索 ====  | ||
| + | メイン  | ||
  extern void lRadonSpaceSimultaneousFitting(lRadonSpaceSimultaneousFittingInfo* info, int mode);  |   extern void lRadonSpaceSimultaneousFitting(lRadonSpaceSimultaneousFittingInfo* info, int mode);  | ||
| + | |||
| + | 未実装  | ||
  extern void lRadonSpaceSimultaneousFittingC(FETmapPeakTable* tableP,RadonSpaceSimultaneousFittingParameters* paras, int* sortN, int mode);  |   extern void lRadonSpaceSimultaneousFittingC(FETmapPeakTable* tableP,RadonSpaceSimultaneousFittingParameters* paras, int* sortN, int mode);  | ||
| + | |||
| + | 未実装  | ||
  extern int lRadonSpaceSimultaneousFittingCoreSearch(FETmapPeakTable* tableP,RadonSpaceSimultaneousFittingParameters* paras, int* rS[10], int mode);  |   extern int lRadonSpaceSimultaneousFittingCoreSearch(FETmapPeakTable* tableP,RadonSpaceSimultaneousFittingParameters* paras, int* rS[10], int mode);  | ||
2015年3月24日 (火) 05:40時点における最新版
DataManip/transform/src/lFETmapOrientationSearchBySimultaneousFittingはFETmapOrientationSearchBySimultaneousFittingのためのAPI です。
定数
構造体
typedef struct lFETmapOrientationSearchBySimultaneousFittingInfo{
	FILE* InML;
	FILE* InNL;
	FILE* InCL;
	int PM;
	int PN;
	int filesN,filesM;
	double PDT;
	FILE* ChkPtOut;
	FILE* Out;
	int mode;
}lFETmapOrientationSearchBySimultaneousFittingInfo;
| メンバ | 説明 | 
|---|---|
| InML | マップファイルリスト | 
| InNL | FETファイルリスト | 
| InCL | コモンラインリスト | 
| PM | PeakDetectAreaMode(0-10) | 
| PN | PeakNumber(1-50) | 
| FileN | FETファイル数 | 
| FileM | マップファイル数 | 
| PDT | PeakDetectThreshold_ForMode0(0.02-1.00) | 
| ChkPtOut | 出力ファイル(未対応) | 
| Out | 出力ファイル(未対応) | 
| mode | モード(特になし) | 
typedef struct FETmapPeakTable{
    int*** table;
	int filesN,filesM;
	int PN;
	int PM;
    int mode;
}FETmapPeakTable;
typedef struct lFETmapPeakDetectAndTableMakeInfo{
	FILE* InML;
	FILE* InNL;
	int PM;
	int PN;
	int filesN,filesM;
	double PDT;
	FETmapPeakTable* tableP; 
	int mode;
}lFETmapPeakDetectAndTableMakeInfo;
typedef struct FETCoreTriad{
	int triad[6];
	int matchPosi[3][2];
	double angles[3][2][3];
	double* anglesOf4th;
	double matchingLevel;
	int matchFlag;
	int filesN;
	int mode;
}FETCoreTriad;
typedef struct lFETmapCoreTriadGenerateInfo{
	FILE* InCL;
	int filesN;
	//FETmapPeakTable* tableP;
	FETCoreTriad* CList;
	int mode;
}lFETmapCoreTriadGenerateInfo;
typedef struct RadonSpaceSimultaneousFittingParameters{
	double** table;
	int mode;
}RadonSpaceSimultaneousFittingParameters;
typedef struct lRadonSpaceSimultaneousFittingInfo{
	RadonSpaceSimultaneousFittingParameters* paras;
	FETmapPeakTable* tableP;
	int cycleMaxR;
	int cycleMax;
	int cycleMaxS;
	int coreNum;
	int mode;
}lRadonSpaceSimultaneousFittingInfo;
API
FET
角度探索
infoを入力として画像の角度探索を行います。
extern void lFETmapOrientationSearchBySimultaneousFitting(lFETmapOrientationSearchBySimultaneousFittingInfo info, int mode);
マップリストinfo->InMLからそれぞれピークサーチを行いテーブルinfo->tableP->tableへ格納します。
extern void lFETmapPeakDetectAndTableMake(lFETmapPeakDetectAndTableMakeInfo* info, int mode);
ピークテーブルTableから3つの角度の組み合わせリストinfo->InCLからマッチングの頻度が最大のデータをリストとしてinfo->CListへ格納します。
extern void lFETmapCoreTriadGenerate(FETmapPeakTable* Table, lFETmapCoreTriadGenerateInfo* info, int mode);
ピークテーブルTableから3つの角度の組み合わせcoreTからマッチングの頻度が最大のデータをcoreT->triadへ格納します。近いパターンが見つかった場合はその総数をcoreT->matchFlagに、それに対する評点をcoreT->matchingLevelにそれぞれ格納します。
extern int lFETBestCoreSearch(FETmapPeakTable* Table, FETCoreTriad* coreT, int PN, int mode);
1点の座標pointを軸axisに対し、theta[°]だけ回転した座標をandへ格納します。
extern void lFETpointRotation(double axis[3], double point[3], double theta, double* ans, int mode);
マッチングの評点を返します。(現実装では0.3を返すのみ)
extern double lFET4thMatching(FETmapPeakTable* , FETCoreTriad* , int , int , int , int , int );
ラドン空間
角度探索
メイン
extern void lRadonSpaceSimultaneousFitting(lRadonSpaceSimultaneousFittingInfo* info, int mode);
未実装
extern void lRadonSpaceSimultaneousFittingC(FETmapPeakTable* tableP,RadonSpaceSimultaneousFittingParameters* paras, int* sortN, int mode);
未実装
extern int lRadonSpaceSimultaneousFittingCoreSearch(FETmapPeakTable* tableP,RadonSpaceSimultaneousFittingParameters* paras, int* rS[10], int mode);