#ifndef TYPES_DEF_H
|
#define TYPES_DEF_H
|
|
#include <Windows.h>
|
#include <iostream>
|
#include <stdlib.h>
|
#include <assert.h>
|
#include <string>
|
#include <map>
|
#include <vector>
|
#include <math.h>
|
#include <atlimage.h>
|
#include <io.h>
|
#include <functional>
|
|
//SDK°æ±¾ºÅ
|
#define VERSION_NO "1.0.0.0"
|
typedef unsigned char uchar;
|
typedef BYTE uchar;
|
|
typedef std::function<void(int msgEvent, int x, int y, double rate)> 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<Point2D> 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
|