lmrcImageEdgeEnhancement(API)
提供: Eospedia
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);