⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connarea.h

📁 用于系统跟踪的程序
💻 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 + -