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

提供: Eospedia
移動: 案内検索
(ページの作成:「DataManip/mrcImage/src/'''lmrcImageEdgeEnhancement'''はエッジ強調ためのAPIです。mrcImageEdgeEnhancementで使用しています。 == 定数 == type...」)
 
(API)
 
行24: 行24:
  
 
== API ==
 
== API ==
extern void lmrcImageEdgeEnhancementPrepare(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
+
=== メイン ===
 
  extern void lmrcImageEdgeEnhancement(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancement(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
extern void lmrcImageEdgeEnhancementModePrint(FILE* fpt);
+
modeによって使用する関数を選択できます。<br>
 +
<table border=1>
 +
<tr>
 +
<th>mode</th>
 +
<th>関数</th>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModeDifferentialSQRT</td>
 +
<td>lmrcImageEdgeEnhancementDifferentialSQRT</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModeDifferentialABS</td>
 +
<td>lmrcImageEdgeEnhancementDifferentialABS</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModeRobertsCrossSQRT</td>
 +
<td>lmrcImageEdgeEnhancementRobertsCrossOperatorSQRT</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModeRobertsCrossABS</td>
 +
<td>lmrcImageEdgeEnhancementRobertsCrossOperatorABS</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModePrewittSQRT</td>
 +
<td>lmrcImageEdgeEnhancementPrewittOperatorSQRT</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModePrewittABS</td>
 +
<td>lmrcImageEdgeEnhancementPrewittOperatorABS</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModeSobelSQRT</td>
 +
<td>lmrcImageEdgeEnhancementSobelOperatorSQRT</td>
 +
</tr>
 +
<tr>
 +
<td>lmrcImageEdegeEnhancementModeSobelABS</td>
 +
<td>lmrcImageEdgeEnhancementSobelOperatorABS</td>
 +
</tr>
 +
<tr>
 +
<td>これ以外</td>
 +
<td>処理なし</td>
 +
</tr>
 +
</table>
 +
<br>
  
 +
=== 前処理 ===
 +
extern void lmrcImageEdgeEnhancementPrepare(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 +
 +
=== Differential ===
 
  extern void lmrcImageEdgeEnhancementDifferentialSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementDifferentialSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementDifferentialABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementDifferentialABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
  
 +
=== Roberts ===
 
  extern void lmrcImageEdgeEnhancementRobertsCrossOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementRobertsCrossOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementRobertsCrossOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementRobertsCrossOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
  
 +
=== Prewitt ===
 
  extern void lmrcImageEdgeEnhancementPrewittOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementPrewittOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementPrewittOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementPrewittOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
  
 +
=== Sobel ===
 
  extern void lmrcImageEdgeEnhancementSobelOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementSobelOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementSobelOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementSobelOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
  
 +
=== NegativeLaplacian ===
 
  extern void lmrcImageEdgeEnhancementNegativeLaplacian(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 
  extern void lmrcImageEdgeEnhancementNegativeLaplacian(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
 +
 +
=== API情報 ===
 +
モードの説明を出力
 +
extern void lmrcImageEdgeEnhancementModePrint(FILE* fpt);

2015年3月10日 (火) 03:01時点における最新版

DataManip/mrcImage/src/lmrcImageEdgeEnhancementはエッジ強調ためのAPIです。mrcImageEdgeEnhancementで使用しています。

定数

typedef enum lmrcImageEdgeEnhancementMode {
	lmrcImageEdegeEnhancementModeDifferentialSQRT=0,
	lmrcImageEdegeEnhancementModeDifferentialABS,
	lmrcImageEdegeEnhancementModeRobertsCrossSQRT,
	lmrcImageEdegeEnhancementModeRobertsCrossABS,
	lmrcImageEdegeEnhancementModePrewittSQRT,
	lmrcImageEdegeEnhancementModePrewittABS,
	lmrcImageEdegeEnhancementModeSobelSQRT,
	lmrcImageEdegeEnhancementModeSobelABS,
	lmrcImageEdegeEnhancementModeNegativeLaplacian
} lmrcImageEdgeEnhancementMode;

構造体

typedef struct lmrcImageEdgeEnhancementInfo {
	int flagDirection;
	mrcImage* direction;

	// Neigherboring Mode
	int mode;
} lmrcImageEdgeEnhancementInfo; 

API

メイン

extern void lmrcImageEdgeEnhancement(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

modeによって使用する関数を選択できます。

mode 関数
lmrcImageEdegeEnhancementModeDifferentialSQRT lmrcImageEdgeEnhancementDifferentialSQRT
lmrcImageEdegeEnhancementModeDifferentialABS lmrcImageEdgeEnhancementDifferentialABS
lmrcImageEdegeEnhancementModeRobertsCrossSQRT lmrcImageEdgeEnhancementRobertsCrossOperatorSQRT
lmrcImageEdegeEnhancementModeRobertsCrossABS lmrcImageEdgeEnhancementRobertsCrossOperatorABS
lmrcImageEdegeEnhancementModePrewittSQRT lmrcImageEdgeEnhancementPrewittOperatorSQRT
lmrcImageEdegeEnhancementModePrewittABS lmrcImageEdgeEnhancementPrewittOperatorABS
lmrcImageEdegeEnhancementModeSobelSQRT lmrcImageEdgeEnhancementSobelOperatorSQRT
lmrcImageEdegeEnhancementModeSobelABS lmrcImageEdgeEnhancementSobelOperatorABS
これ以外 処理なし


前処理

extern void lmrcImageEdgeEnhancementPrepare(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

Differential

extern void lmrcImageEdgeEnhancementDifferentialSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
extern void lmrcImageEdgeEnhancementDifferentialABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

Roberts

extern void lmrcImageEdgeEnhancementRobertsCrossOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
extern void lmrcImageEdgeEnhancementRobertsCrossOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

Prewitt

extern void lmrcImageEdgeEnhancementPrewittOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
extern void lmrcImageEdgeEnhancementPrewittOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

Sobel

extern void lmrcImageEdgeEnhancementSobelOperatorSQRT(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);
extern void lmrcImageEdgeEnhancementSobelOperatorABS(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

NegativeLaplacian

extern void lmrcImageEdgeEnhancementNegativeLaplacian(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode);

API情報

モードの説明を出力

extern void lmrcImageEdgeEnhancementModePrint(FILE* fpt);