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

📄 videodlg.h

📁 本程序是2005年参加中国机器人大赛的比赛程序
💻 H
字号:
//{{AFX_INCLUDES()

//}}AFX_INCLUDES
#if !defined(AFX_VIDEODLG_H__990D166D_F298_4F38_B0C2_F040181703A7__INCLUDED_)
#define AFX_VIDEODLG_H__990D166D_F298_4F38_B0C2_F040181703A7__INCLUDED_

#include "ConfigDlg.h"
#include "CG400-32.H"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// VideoDlg.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CVideoDlg dialog


class CVideoDlg : public CDialog
{
// Construction
public:	
	int whichNum(int LM1,int LM2,int LM3);
	bool ScanNearRect1(CRect rect,double percent,byte Upper[],byte Lower[],int ReturnCentrePoint[],int colnum);

	bool myone;
	int num2;	
	void SearchObject();
	BOOL SensitiveScan(double percent, int i,int j,byte Upper[],byte Lower[],int ReturnCentrePoint[]);
	void initYuv();
	bool rectExist(byte upper[], byte low[],CRect Rect,int colnum);
	bool issearchGreen;
	bool issearchWhite;
	bool their_yellow;	
	CPoint pinkCenter;
	CPoint greenCenter;

	bool pointExist(byte upper[], byte low[], CPoint* point,int colnum);
	bool rectSearch(CRect rect, byte upper[], byte low[], CPoint* point,int colnum);
	bool isBall(int tempCentreGravity[]);
	void RGB_TO_YUV(byte Col_RGB[],byte Col_YUV[]);	
	BOOL flag;
	friend void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerID,DWORD dwTime);
	friend void PASCAL MMProc_TurnTo(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2);
	friend class CDebugDlg;
	friend class CInfoDlg;
	friend class Player;
	friend class CDecisionThread;

	static CVideoDlg *m_pVideoDlg;	
	void setPlayer(int LableX, int LableY,int LM1,int LM2,int FX, int FY,int num);
	
	char colour[930000];
	char *lpSourceBuf;
	BOOL bIsSkip;
	bool isInRect(int x,int y,CRect rect);
	int num,n;
	int pNum;
	CPoint point;
	CRect ScanRect;	
	CRect ScanRect2;
	CRect ScanRect3[3];
	CRect sample_rect;
	void SetPixDrawAllCap();
	void SetPixelDrawRect(CRect rect);
	BOOL m_IsGetFieldRectChecked;
	BOOL m_IsSnapToMem;	

	void DrawFieldRect(CRect rect);
	HCG400	hcg400;
	CRect m_FieldRect;//场地矩形框
	CRect my_Door;
	CRect th_Door;
	CRect ObjectRect[20];
	//纪录已识别物体的包围框,然后跳过,避免重复扫描	

	int BallRectNum;
	int MyTeamRectNum[5];
	int TheirTeamRectNum[5];
	int MyLableRectNum;
	int TheirLableRectNum;
	int ObjectRectNum;

	int My_LableCentreGravity[10][2];
	int Their_LableCentreGravity[10][2];
	int My_CentreGravity[5][2];	
	int Ball_CentreGravity[10][2];
	
	int m_x,m_y;
	int i, j, k;
	byte Get_RGB[3];
	byte Col_YUV[3];
	int l,m;

	BOOL m_bIsLBDown;//鼠标左键是否按下
	CConfigDlg* m_pConfigDlg;//设置对话框指针

	int m_FrameHeight;//帧图象高度
	int m_FrameWidth;//帧图象宽度
	int m_TotalSeconds;
	int m_FrameCount;
	CTime m_StartTime;
	CTime m_EndTime;

	void SetConfigDlg(CConfigDlg* pConfigDlg);
	void InitVideo();
	void GetPixelColor(int X, int Y,byte Col_RGB[]);
	//得到一个像素点的值		 			  
	BOOL IsMeetRestrict(byte Col_RGB[], 
					    byte Col_rgb[],					
						byte Lower[]);	
	BOOL ScanNearRect(//char Data,
					  CRect rect, 
					  double percent,
					  byte Upper[],
					  byte Lower[],					  
					  int ReturnCentrePoint[],
					  int colnum);
	
	void InitTeam();	
	void TimeStart();
	void TimeEnd();

	CVideoDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CVideoDlg)
	enum { IDD = IDD_VIDEO_DIALOG };
	CScrollBar	m_yuv_yl;
	CScrollBar	m_yuv_yh;
	CScrollBar	m_yuv_vl;
	CScrollBar	m_yuv_vh;
	CScrollBar	m_yuv_ul;
	CScrollBar	m_yuv_uh;
	CScrollBar	m_sat_scrollbar;
	CScrollBar	m_hue_scrollbar;
	CScrollBar	m_con_scrollbar;
	CScrollBar	m_brt_scrollbar;
	CString	m_brt_edit;
	CString	m_con_edit;
	CString	m_hue_edit;
	CString	m_sat_edit;
	DWORD	m_time;
	int		m_yuv_u;
	int		m_yuv_v;
	int		m_yuv_y;
	int		m_u_high;
	int		m_u_low;
	int		m_v_high;
	int		m_v_low;
	int		m_y_high;
	int		m_y_low;
	int		m_lable1x;
	int		m_lable2x;
	int		m_lable3x;
	int		m_lable1y;
	int		m_lable2y;
	int		m_lable3y;
	int		m_angle;
	int		m_k;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CVideoDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL
	afx_msg void OnRead();
// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CVideoDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnSnapToMem();
	afx_msg void OnDisplay();
	afx_msg void OnStopdisp();
	afx_msg void OnDefault();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnButton1();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnButton3();
	afx_msg void OnButton4();
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnButton5();
	afx_msg void OnButton6();
	afx_msg void OnGet();
	afx_msg void OnInitYUVClass();
	afx_msg void OnSave();
	DECLARE_EVENTSINK_MAP()
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_VIDEODLG_H__990D166D_F298_4F38_B0C2_F040181703A7__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -