「lmrcImageEdgeEnhancement(API)」の版間の差分
提供: Eospedia
(ページの作成:「DataManip/mrcImage/src/'''lmrcImageEdgeEnhancement'''はエッジ強調ためのAPIです。mrcImageEdgeEnhancementで使用しています。 == 定数 == type...」) |
(→API) |
||
| 行24: | 行24: | ||
== API == | == API == | ||
| − | + | === メイン === | |
extern void lmrcImageEdgeEnhancement(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode); | extern void lmrcImageEdgeEnhancement(mrcImage* out, mrcImage* in, lmrcImageEdgeEnhancementInfo* linfo, int mode); | ||
| − | + | 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);