📄 connarea.h
字号:
#include "cv.h"
//储存点数的最大值
//CONTENTPOINTMAXNUMBER一定大于BORDERPOINTMAXNUMBER
#ifndef CONTENTPOINTMAXNUMBER
#define CONTENTPOINTMAXNUMBER 4000
#define BORDERPOINTMAXNUMBER 2500
#define MAXCONNNUMBER 500
#define MAXLINEMARKERCONNNUMBER 50
enum MarkerType
{
NotIndentify,
Point,
Line,
PointLine,
SplitLine,
Err
};
class ConnArea
{
public:
double X;//中心坐标
double Y;//中心坐标
//CvPoint ptLeftTop;//左上角坐标
//CvPoint ptRightBottom;//右下角坐标
float wx;//直线参数--Wx
float wy;//直线参数--Wy
float x0;//直线参数--X0
float y0;//直线参数--y0
double length;//直线参数--长度
CvPoint ptBegin;//直线起点
CvPoint ptEnd;//直线终点
int Index;//编号
int PointCount;//总点数
//区域四个顶角
CvPoint ptT;
CvPoint ptB;
CvPoint ptL;
CvPoint ptR;
int groupID;
//CvPoint Points[CONTENTPOINTMAXNUMBER];//内部点
//int BorderpointsCount;//边界点数量
//CvPoint Borderpoints[BORDERPOINTMAXNUMBER];//边界点
//当前点参与构成那几个方形区域
int SquareID[4];
int SquareCount;
//类型
MarkerType type;
//空间位置
double posX;
double posY;
double posZ;
//是否用于计算
bool isUseForCompute;
//是否已经用于计算
bool isUsed;
CvPoint FirstPoint;
int NearConnAreaIndex1;//相邻区域编号1
int NearConnAreaIndex2;//相邻区域编号2
int UsedTime;
//函数
ConnArea();
void drawLine(IplImage* img,int r,int g,int b,int a);
void drawBorder(IplImage* img,int r,int g,int b);
void drawCross(IplImage* img,int r, int g,int b);
void drawALLCross(IplImage* img,int r, int g,int b);
void drawALLAlpha(IplImage* img,int a);
void Clear();
void addPoints(int count,CvPoint* NewPoints);
void addBorderPoints(int count,CvPoint* NewPoints);
void refreshLine(int Linelength);
void combineConnArea(ConnArea area,int LineLength);
bool isCenterNearBorder(int imgWidth,int imgHeight,int DistanceToBorder);
bool isNear(ConnArea area,int Distance,CvPoint& pt1,CvPoint& pt2);
bool isPointOnLine(ConnArea P,int DistanceToLine,int combinePointLinDistance,int combineDistance);
bool isNearBorder(int imgWidth,int imgHeight,int DistanceToBorder);
int Scan(IplImage* img,int way);
void getNearConnAreaIndex(IplImage* img);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -