#ifndef TYPES_DEF_H #define TYPES_DEF_H #include #include #include #include #include #include #include #include #include #include #include //SDK°æ±¾ºÅ #define VERSION_NO "1.0.0.0" typedef unsigned char uchar; typedef BYTE uchar; typedef std::function ImageMouseCallback; //½Ç¶Èת»» #define _RadToDeg(x) (double)(x) * 57.295779513082 #define _DegToRad(x) (double)(x) / 57.295779513082 #define FUNC_OK 1 //º¯ÊýÔËÐÐOK #define FUNC_NG 0 //º¯ÊýÔËÐÐNG typedef enum OPER_FLAG { DEFAULT_OPER_FLAG = 0, //ûÓÐÈκβÙ×÷ DRAW_OPER_FLAG, //»­Í¼ EDIT_OPER_FLAG, //±à¼­ SELECT_OPER_FLAG, //Ñ¡Ôñ SCROLL_OPER_FLAG //Í϶¯Ä£Ê½ }OPER_FLAG; //ROIÇøÓò #define ROI_ALL_TYPE 0 /* ËùÓиñʽ */ #define ROI_RECT1 1 /* ¾ØÐÎÇøÓò1 */ #define ROI_RECT2 2 /* ¾ØÐÎÇøÓò2 */ #define ROI_CIRCLE 4 /* Ô²ÐÎÇøÓò */ #define ROI_REGION 8 /* ÈÎÒâÇøÓò */ #define ROI_LINE 16 /* Ö±ÏßÇøÓò */ #define ROI_CROSS 32 /* Ê®×Ö¼ÜÇøÓò */ #define UNKNOW_SHAPE 64 /* ûÓÐÈκÎÇøÓò */ //µã1 typedef struct _Point2I { int x; int y; }Point2I; //µã2 typedef struct _Point2D { double x; double y; }Point2D; //¾ØÐÎ1µÄ×ø±ê typedef struct _RECT1 { Point2I pt0; Point2I pt1; }RECT1; //¾ØÐÎ2µÄ×ø±ê typedef struct _RECT2 { Point2D pt; double angle; double width; double height; }RECT2; //Ô²ÐÎ×ø±ê typedef struct _Circle2D { Point2D pt; double radius; }Circle2D; //ÇøÓòÊý¾Ý typedef struct _Region2D { std::vector vPtData; }Region2D; //Ö±Ïß typedef struct _Line2D { Point2D pt0; Point2D pt1; }Line2D; typedef struct _CROSS { Point2D pt; double size; }CROSS; //±ê¶¨Êý¾Ý½á¹¹ typedef struct _ParaAffine2D { double kx0; /* ·ÂÉä±ä»»¹ØÏµ */ double kx1; /* ·ÂÉä±ä»»¹ØÏµ */ double kx2; /* ·ÂÉä±ä»»¹ØÏµ */ double ky0; /* ·ÂÉä±ä»»¹ØÏµ */ double ky1; /* ·ÂÉä±ä»»¹ØÏµ */ double ky2; /* ·ÂÉä±ä»»¹ØÏµ */ }ParaAffine2D; //±ê¶¨²ÎÊý typedef struct _ParaCalibrate { ParaAffine2D affine; /* 2Dת»»¹ØÏµ jiang, 2020-08-29 */ double xMmvsp; /* X·½ÏòµÄͼÏñµ±Á¿ */ double yMmvsp; /* Y·½ÏòµÄͼÏñµ±Á¿ */ double angle; /* 2¸ö×ø±êϵµÄ¼Ð½Ç */ double theta; /* 2¸ö×ø±êϵµÄÇãб½Ç */ }ParaCalibrate; //Ä£°å²ÎÊý typedef struct _ParaMatch { Point2D pt; /* ¶¨Î»µÄÖеã */ double angle; /* ¶¨Î»µÄ½Ç¶È */ double score; /* ¶¨Î»µÄ·ÖÊý */ int mirror; //ÊÇ·ñ¾µÏñ£¬1±íʾûÓоµÏñ£¬ 0±íʾÐýת180¶È£¬2±íʾˮƽ¾µÏñ£¬3±íʾ´¹Ö±¾µÏñ }ParaMatch; //Ïà»ú±ê¶¨²ÎÊý typedef struct _CalibrateResult { double kx0; /*X·½ÏòϵÊý*/ double kx1; /*X·½ÏòϵÊý*/ double kx2; /*X·½ÏòϵÊý*/ double kx3; /*X·½ÏòϵÊý*/ double kx4; /*X·½ÏòϵÊý*/ double ky0; /*Y·½ÏòϵÊý*/ double ky1; /*Y·½ÏòϵÊý*/ double ky2; /*Y·½ÏòϵÊý*/ double ky3; /*Y·½ÏòϵÊý*/ double ky4; /*Y·½ÏòϵÊý*/ }CalibrateResult; #endif