lmrcImageHoughTransform(API)

提供: Eospedia
移動: 案内検索

DataManip/mrcImage/src/lmrcImageHoughTransformはハフ変換及び逆変換のためのAPIです。mrcImageHoughTransformmrcImageHoughTransformInverseで使用しています。

定数

typedef enum lmrcImageHoughTransformMode {
    lmrcImageHoughTransformModeLines=0,
    lmrcImageHoughTransformModeTwoLines,
    lmrcImageHoughTransformModeOpenTwoLines,
    lmrcImageHoughTransformModeRectangles,
    lmrcImageHoughTransformModeFilledRectangles,
    lmrcImageHoughTransformModeCircles,
    lmrcImageHoughTransformModeFilledCircles,
    lmrcImageHoughTransformModeGivenStructure
} lmrcImageHoughTransformMode;

構造体

typedef struct lmrcImageHoughTransformInfo {
	double deltaRho;   /* pixel */
	double deltaTheta; /* radian */

	lmrcImageHoughTransformMode HoughSpaceMode;
	// for TwoLines, Rectangle, FilledRectangle
	double widthMin; 
	double widthMax; 
	double widthOut;
	double heightMin;
	double heightMax;
	double heightOut;
	mrcImageMode InterpolationMode; 

	// Inverse
	int Nx;
	int Ny;
	double dx;
	double dy;
} lmrcImageHoughTransformInfo;

API

ハフ変換

inを入力としてハフ変換したデータをoutへ格納します。

extern void lmrcImageHoughTransform(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

linfo->HoughSpaceModeにより処理を選択できます。

linfo->HoughSpaceMode 処理
lmrcImageHoughTransformModeLines lmrcImageHoughTransformLines
lmrcImageHoughTransformModeTwoLines lmrcImageHoughTransformTwoLines
lmrcImageHoughTransformModeFilledRectangles lmrcImageHoughTransformFilledRectangles


初期化

extern void lmrcImageHoughTransformInit(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

Lines(mode=0: Nearest, 1: Linear)

extern void lmrcImageHoughTransformLines(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

TwoLines(mode=0: Nearest, 1: Linear)

extern void lmrcImageHoughTransformTwoLines(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

FilledRectangles(mode=0: Nearest, 1: Linear)

extern void lmrcImageHoughTransformFilledRectangles(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

ハフ逆変換

inを入力としてハフ逆変換したデータをoutへ格納します。

extern void lmrcImageHoughTransformInverse(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

linfo->HoughSpaceModeにより処理を選択できます。

linfo->HoughSpaceMode 処理
lmrcImageHoughTransformModeLines lmrcImageHoughTransformInverseLines


初期化

extern void lmrcImageHoughTransformInverseInit(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

Lines

extern void lmrcImageHoughTransformInverseLines(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

TwoLines

extern void lmrcImageHoughTransformInverseTwoLines(mrcImage* out, mrcImage* in, lmrcImageHoughTransformInfo* linfo, int mode);

API情報

モード説明を出力

extern void lmrcImageHoughTransformSpaceModePrint(FILE* fpt);