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

📄 图像特征跟踪系统view.h

📁 利用web camera对目标进行特征跟踪的程序 对于初学机器视觉的有些帮助
💻 H
字号:
// 图像特征跟踪系统View.h : interface of the CMyView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_VIEW_H__916AF838_5C47_4452_8D95_D03FB1E4F4DB__INCLUDED_)
#define AFX_VIEW_H__916AF838_5C47_4452_8D95_D03FB1E4F4DB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "TrackerParameters.h"
#include "Track.h"

class CMyView : public CScrollView
{
public:
	double* pBitmapInput;               //输入图像指针
	CTrack track;
private:
	//////////////////////////////////////////////
	//设置背景:
	BYTE* pBitmapBackGround;
	BITMAPINFO* pBitmapInfoBackGround;
	//////////////////////////////////////////////
	//下面是为跟踪算法而在view内定义的全局变量:
	TRACK_TYPE                TrackType;     //跟踪类型
	TRACK_TEPLATE_UPDATE_TYPE TemplateUpdateType;//模板更新方式
	TRACK_SOURCE_TYPE         SourceType;    //数据源类型

	DWORD dwBitmapInputWidth;         //输入图像宽度
	DWORD dwBitmapInputHeight;        //输入图像高度

	double* pBitmapTemplate;            //模板图像指针
	double dTemplateUpdatePower;      //模板更新权值

	double* pBitmapTarget;            //目标图像指针
	double* pBitmapTarget_SecondLevel;//目标图像指针
	DWORD dwTargetWidth;              //目标图像宽度
	DWORD dwTargetHeight;             //目标图像高度

	CString strEigenSapceFilePath;    //特征空间文件路径
	double* pEigenSpace;		      //特征空间指针
	double* pEigenSpace_SecondLevel;  //金字塔抽层后的特征空间指针
	int nEigenSpaceTotalVector;       //特征空间总维数
	int nEigenSpaceSelectVector;      //选用的特征空间维数

	CString strInputBitmapFilePath;   //输入磁盘图像文件路径
	int nInputBitmapFileNumber;       //输入磁盘图像文件总数
	
	int nPyramidLevel;                //算法采用的金字塔层数
	int nMaxIterateTimes;             //算法采用的最大迭代次数
	double dDelt;                     //算法采用的一个控制曲线形状的参数
	double affine[6];                 //目标的仿射参数数组
	double dGradationOffset;          //由于归一化造成的灰度偏移量
	int  nTargetWidthSet;
	int  nTargetHeightSet;
	bool bSetTargetScale;

	bool bSaveResultFile;             //保存结果图像文间
	CString strOutputResultFilePath;  //结果输出文件路径名
	bool bSaveTargetFile;             //保存目标图像文件
	CString strOutputTargetFilePath;  //目标输出文件路径名

	RECT rectBitmapInputDisplay;      //输入图像显示区域
	RECT rectBitmapTemplateDisplay;   //模板图像显示区域
	RECT rectBitmapTargetDisplay;     //目标图像显示区域

    //////////////////////////////////////////////
    //下面的是定义显示有关的变量:
	BYTE* pDisplayBitmapInputBuffer;     //输入图像显示缓冲区
	BITMAPINFO* pBMIBitmapInputBuffer;   //输入图像BMP信息结构
	BYTE* pDisplayBitmapTemplateBuffer;  //模板图像显示缓冲区
	BITMAPINFO* pBMIBitmapTemplateBuffer;//模板图像BMP信息结构
	BYTE* pDisplayBitmapTargetBuffer;    //目标图像显示缓冲区
	BITMAPINFO* pBMIBitmapTargetBuffer;  //目标图像BMP信息结构

	double a[6];


protected: // create from serialization only
	CMyView();
	DECLARE_DYNCREATE(CMyView)

// Attributes
public:
	CMyDoc* GetDocument();

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMyView)
	public:
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view
	virtual BOOL DestroyWindow();
	protected:
	virtual void OnInitialUpdate(); // called first time after construct
	//}}AFX_VIRTUAL

// Implementation
public:
	bool Track();
	virtual ~CMyView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:
	void CheckRectData(CPoint* pPoint);

// Generated message map functions
protected:
	//{{AFX_MSG(CMyView)
	afx_msg void OnTrackSetting();
	afx_msg void OnTrackBegin();
	afx_msg void OnTrackStop();
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnSetUsbCamera();
	afx_msg void OnUpdateSetUsbCamera(CCmdUI* pCmdUI);
	afx_msg void OnUpdateFileNew(CCmdUI* pCmdUI);
	afx_msg void OnTrackGetTemplate();
	afx_msg void OnUpdateTrackGetTemplate(CCmdUI* pCmdUI);
	afx_msg void OnUpdateTrackBegin(CCmdUI* pCmdUI);
	afx_msg void OnUpdateTrackStop(CCmdUI* pCmdUI);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in 图像特征跟踪系统View.cpp
inline CMyDoc* CMyView::GetDocument()
   { return (CMyDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

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

#endif // !defined(AFX_VIEW_H__916AF838_5C47_4452_8D95_D03FB1E4F4DB__INCLUDED_)

⌨️ 快捷键说明

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