「lmrcImageSinogram(API)」の版間の差分
提供: Eospedia
		
		
		
|  (ページの作成:「DataManip/mrcImage/src/'''lmrcImageSinogram'''はシノグラムのためのAPI です。mrcImageSinogramCreateなどで使用されています。  == 定数 ==  == ...」) |  (→微分値) | ||
| (同じ利用者による、間の3版が非表示) | |||
| 行1: | 行1: | ||
| − | DataManip/mrcImage/src/'''lmrcImageSinogram'''はシノグラムのためのAPI です。[[mrcImageSinogramCreate]]などで使用されています。 | + | DataManip/mrcImage/src/'''lmrcImageSinogram'''はシノグラムのためのAPI です。[[mrcImageSinogramCreate]]や[[mrcImageSinogramCorrelation]]などで使用されています。 | 
| == 定数 == | == 定数 == | ||
| == 構造体 == | == 構造体 == | ||
| + | このAPIで使用する設定データです。 | ||
|   typedef struct lmrcImageSinogramInfo { |   typedef struct lmrcImageSinogramInfo { | ||
|   	double dphi; |   	double dphi; | ||
| 行22: | 行23: | ||
| == API == | == API == | ||
| − | === | + | ===シノグラム変換=== | 
| 2D画像からシノグラム画像への変換 | 2D画像からシノグラム画像への変換 | ||
|   extern void lmrcImageSinogramCreate(mrcImage* out, mrcImage* in, lmrcImageSinogramInfo* linfo, int mode); |   extern void lmrcImageSinogramCreate(mrcImage* out, mrcImage* in, lmrcImageSinogramInfo* linfo, int mode); | ||
| − | === | + | ===シノグラム相関=== | 
| + | ====メイン==== | ||
|   extern void lmrcImageSinogramCorrelation(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); |   extern void lmrcImageSinogramCorrelation(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); | ||
| + | mode及びlinfo->LengthModeを設定することにより、相関方法を選択できます。 | ||
| + | |||
| + | <table border="1"> | ||
| + | 	<tr>  | ||
| + | 		<th>mode</th>  | ||
| + | 		<th>相関方法</th>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>0</td>  | ||
| + | 		<td>simple Correlation(lmrcImageSinogramCorrelation0)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>1</td>  | ||
| + | 		<td>weight Correlation(lmrcImageSinogramCorrelation1)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>2</td>  | ||
| + | 		<td>threshold Correlation(lmrcImageSinogramCorrelation2)</td>  | ||
| + | 	</tr>  | ||
| + | 	<tr>  | ||
| + | 		<td>3</td>  | ||
| + | 		<td>power weight Correlation</td>  | ||
| + | 	</tr>  | ||
| + | </table> | ||
| + | <br> | ||
| + | |||
| + | ====mode毎の相関==== | ||
|   void lmrcImageSinogramCorrelation0(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); |   void lmrcImageSinogramCorrelation0(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); | ||
|   double lmrcImageOneLineSinogramCorrelation0(mrcImage* in, mrcImage* ref, int mode); |   double lmrcImageOneLineSinogramCorrelation0(mrcImage* in, mrcImage* ref, int mode); | ||
| 行34: | 行63: | ||
|   void lmrcImageSinogramCorrelation2(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); |   void lmrcImageSinogramCorrelation2(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); | ||
| − | === | + | === 微分 === | 
| + | 入力(2D画像)inの微分値をoutへ格納します。 | ||
|   void lmrcImageDerivationCalculation(mrcImage* out, mrcImage* in, int mode); |   void lmrcImageDerivationCalculation(mrcImage* out, mrcImage* in, int mode); | ||
| + | modeにより微分方法を設定できます。 | ||
| + | <table border=1> | ||
| + | 	<tr> | ||
| + | 		<th>mode</th> | ||
| + | 		<th>微分方法</th> | ||
| + | 	</tr> | ||
| + | 	<tr> | ||
| + | 		<td>1</td> | ||
| + | 		<td>1階微分</td> | ||
| + | 	</tr> | ||
| + | 	<tr> | ||
| + | 		<td>2</td> | ||
| + | 		<td>2階微分</td> | ||
| + | 	</tr> | ||
| + | </table> | ||
| + | <br> | ||
| + | |||
| + | 入力(1D画像)inの微分値をoutへ格納します。 | ||
|   void lmrcImageOneLineDerivationCalculation(mrcImage* out, mrcImage* in, int mode); |   void lmrcImageOneLineDerivationCalculation(mrcImage* out, mrcImage* in, int mode); | ||
| + | modeにより微分方法を設定できます。 | ||
| + | <table border=1> | ||
| + | 	<tr> | ||
| + | 		<th>mode</th> | ||
| + | 		<th>微分方法</th> | ||
| + | 	</tr> | ||
| + | 	<tr> | ||
| + | 		<td>1</td> | ||
| + | 		<td>1階微分</td> | ||
| + | 	</tr> | ||
| + | 	<tr> | ||
| + | 		<td>2</td> | ||
| + | 		<td>2階微分</td> | ||
| + | 	</tr> | ||
| + | </table> | ||
| + | <br> | ||
| ===Length=== | ===Length=== | ||
|   void lmrcImageSinogramLengthCorrelation(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); |   void lmrcImageSinogramLengthCorrelation(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); | ||
2015年3月23日 (月) 06:19時点における最新版
DataManip/mrcImage/src/lmrcImageSinogramはシノグラムのためのAPI です。mrcImageSinogramCreateやmrcImageSinogramCorrelationなどで使用されています。
定数
構造体
このAPIで使用する設定データです。
typedef struct lmrcImageSinogramInfo {
	double dphi;
	double Smalldphi;
	int correlationMode;
	int LengthMode;
	int LengthCorrelationMode;
	int LengthThresholdMode;
	double weightOf0thDerivation;
	double weightOf1stDerivation;
	double weightOf2ndDerivation;
	double threshold;
	double LengthCorrelationThreshold;
	double weightOfLength;
	double LengthThresholdRatio;
} lmrcImageSinogramInfo;
API
シノグラム変換
2D画像からシノグラム画像への変換
extern void lmrcImageSinogramCreate(mrcImage* out, mrcImage* in, lmrcImageSinogramInfo* linfo, int mode);
シノグラム相関
メイン
extern void lmrcImageSinogramCorrelation(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode);
mode及びlinfo->LengthModeを設定することにより、相関方法を選択できます。
| mode | 相関方法 | 
|---|---|
| 0 | simple Correlation(lmrcImageSinogramCorrelation0) | 
| 1 | weight Correlation(lmrcImageSinogramCorrelation1) | 
| 2 | threshold Correlation(lmrcImageSinogramCorrelation2) | 
| 3 | power weight Correlation | 
mode毎の相関
void lmrcImageSinogramCorrelation0(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); double lmrcImageOneLineSinogramCorrelation0(mrcImage* in, mrcImage* ref, int mode);
void lmrcImageSinogramCorrelation1(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode); void lmrcImageSinogramCorrelation2(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode);
微分
入力(2D画像)inの微分値をoutへ格納します。
void lmrcImageDerivationCalculation(mrcImage* out, mrcImage* in, int mode);
modeにより微分方法を設定できます。
| mode | 微分方法 | 
|---|---|
| 1 | 1階微分 | 
| 2 | 2階微分 | 
入力(1D画像)inの微分値をoutへ格納します。
void lmrcImageOneLineDerivationCalculation(mrcImage* out, mrcImage* in, int mode);
modeにより微分方法を設定できます。
| mode | 微分方法 | 
|---|---|
| 1 | 1階微分 | 
| 2 | 2階微分 | 
Length
void lmrcImageSinogramLengthCorrelation(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageSinogramInfo* linfo, int mode);
