www.pudn.com > Imagepro.rar > ImgProView.h


// ****************************************************************************** 
// *        图象处理算法库调用以及OPENGL图象操作示例 
// * ---------------------------------------------------------------------------- 
// ImgProView.h : interface of the CImgProView class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_IMGPROVIEW_H__E5E97C6C_A9FA_11D5_AF4A_00E0987CDE66__INCLUDED_) 
#define AFX_IMGPROVIEW_H__E5E97C6C_A9FA_11D5_AF4A_00E0987CDE66__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
#include "ParDlg.h"  
 
 
////////////////////////// 
//加载图象处理函数库头文件 
#include "imgprolib.h" 
#include "DlgMorph.h" 
#include "DlgSlipWindow.h" 
class CImgProView : public CView 
{ 
protected: // create from serialization only 
	CImgProView(); 
	DECLARE_DYNCREATE(CImgProView) 
 
// Attributes 
public: 
	CImgProDoc* GetDocument(); 
 
// Operations 
public: 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CImgProView) 
	public: 
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view 
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 
	protected: 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	IMAGE2D *img;					//声明图象处理类 
 
 
	virtual ~CImgProView(); 
#ifdef _DEBUG 
	virtual void AssertValid() const; 
	virtual void Dump(CDumpContext& dc) const; 
#endif 
 
protected: 
	HGLRC			m_hRC; 
	HPALETTE		m_hPalette;	 
	BOOL			bFlagOfThinning; 
	BOOL			bFlagOfHoughTran; 
	BOOL			bFlagOfThreshold; 
	BOOL			bFlagOfEdgeDect; 
	BOOL			bFlagOfOpenFile; 
	unsigned char*	tmp_data; 
 
	int Ogl_View_X, Ogl_View_Y;		//用于OpenGL视口的变量 
	float xZoomFactor, yZoomFactor, dFactor;	//用于图象缩放 
 
// Generated message map functions 
protected: 
	//{{AFX_MSG(CImgProView) 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	afx_msg void OnDestroy(); 
	afx_msg void OnSize(UINT nType, int cx, int cy); 
	afx_msg void OnImageFileOpen(); 
	afx_msg void OnZoomOut(); 
	afx_msg void OnZoomIn(); 
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 
	afx_msg void OnZoomOutX(); 
	afx_msg void OnZoomInX(); 
	afx_msg void OnZoomOutY(); 
	afx_msg void OnZoomInY(); 
	afx_msg void OnZoomReset(); 
	afx_msg void OnSmoothGauss(); 
	afx_msg void OnHistogramFlatten(); 
	afx_msg void OnThinning(); 
	afx_msg void OnSimpleThresholding(); 
	afx_msg void OnGlobalThresholding(); 
	afx_msg void OnEdgedectectionSobel(); 
	afx_msg void OnEdgedectectionCanny(); 
	afx_msg void OnThresholdSimple2(); 
	afx_msg void OnImageInvert(); 
	afx_msg void OnImageFlipping(); 
	afx_msg void OnHoughAccum(); 
	afx_msg void OnHoughLinefitting(); 
	afx_msg void OnHoughSample1(); 
	afx_msg void OnHoughSample2(); 
	afx_msg void OnEditUndo(); 
	afx_msg void OnMorphDilation(); 
	afx_msg void OnMorphErosion(); 
	afx_msg void OnMorphOpen(); 
	afx_msg void OnMorphClose(); 
	afx_msg void OnMorphTopHat(); 
	afx_msg void OnRoadrecognitionBdsco(); 
	afx_msg void OnFileSaveAs(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
private:	 
	CParDlg myParDlg; 
 
	CDlgMorph dlgMorph; 
 
	CDlgSlipWindow dlgSlpWin; 
	 
	 
	void ResetImg(); 
	void OglDisplayImg(unsigned char * grayImage, int width, int height); 
	void OglSetProjection(void); 
	void OglDestroy(void); 
	void OglSetLogicalPalette(void); 
	void OglSetPixelFormat(HDC hDC); 
}; 
 
#ifndef _DEBUG  // debug version in ImgProView.cpp 
inline CImgProDoc* CImgProView::GetDocument() 
   { return (CImgProDoc*)m_pDocument; } 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_IMGPROVIEW_H__E5E97C6C_A9FA_11D5_AF4A_00E0987CDE66__INCLUDED_)