lmrcImageHoughTransform(API)

提供: Eospedia
2015年3月12日 (木) 02:30時点におけるKinoshita (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

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