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);