ED256View.h
上传用户:tianjuedz
上传日期:2022-08-10
资源大小:2349k
文件大小:3k
源码类别:

图形图像处理

开发平台:

Visual C++

  1. //////////////////////////////////////////////////////////////////
  2. // CED256View class (17/10/2000)
  3. // Author: James Matthews
  4. //
  5. // Implements a simple edge detection algorithm and 
  6. // prototyping system.
  7. //
  8. // Written for Generation5 (http://www.generation5.org/)
  9. //
  10. // See http://www.generation5.org/vision.shtml
  11. //     http://www.generation5.org/edgedetect.shtml for details.
  12. //
  13. #ifndef _AFX_ED256VIEW_H_
  14. #define _AFX_ED256VIEW_H_
  15. #if _MSC_VER >= 1000
  16. #pragma once
  17. #endif
  18. #define MAX_PROTOTYPES 10
  19. #define MAX_SAMPLES 1500
  20. #define MAX_PITERATIONS 10000
  21. typedef struct {
  22. char pixels[15][15];
  23. } _protoBmp;
  24. class CED256View : public CView {
  25. protected: 
  26. CED256View();
  27. DECLARE_DYNCREATE(CED256View)
  28. public:
  29. CED256Doc* GetDocument();
  30. //{{AFX_VIRTUAL(CED256View)
  31. public:
  32. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  33. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  34. virtual void OnInitialUpdate();
  35. //}}AFX_VIRTUAL
  36. public:
  37. int m_iOffset;
  38. COLORREF m_crPlot, m_crNoPlot;
  39. virtual ~CED256View();
  40. static UINT StartEdgeDetect(void *);
  41. #ifdef _DEBUG
  42. virtual void AssertValid() const;
  43. virtual void Dump(CDumpContext& dc) const;
  44. #endif
  45. protected:
  46. bool m_bColour, m_bInverse;
  47. float m_fFilter[9];
  48. int m_iResolution;
  49. int m_iFormula;
  50. COLORREF m_crProtoColours[MAX_PROTOTYPES];
  51. CBitmap m_bmpEdges;
  52. bool Plot(int, int, int, int);
  53. void CopyBitmap();
  54. void GetDIBSize(int &, int &);
  55. void PullDownToolBar(CToolBar *, UINT, UINT, int bold = -1);
  56. void UpdateTotals(float &, float &, float &, float, COLORREF);
  57. //{{AFX_MSG(CED256View)
  58. afx_msg void OnEditEdgeDetect();
  59. afx_msg void OnColourType();
  60. afx_msg void OnFormula();
  61. afx_msg void OnEditFormulatypeDifferenceand();
  62. afx_msg void OnEditFormulatypeDifferenceor();
  63. afx_msg void OnEditFormulatypeSummation();
  64. afx_msg void OnInverse();
  65. afx_msg void OnFilter();
  66. afx_msg void OnUpdateColourtype(CCmdUI* pCmdUI);
  67. afx_msg void OnUpdateInverse(CCmdUI* pCmdUI);
  68. afx_msg void OnEditOutputBlackandwhite();
  69. afx_msg void OnEditOutputColour();
  70. afx_msg void OnUpdateEditOutputBlackandwhite(CCmdUI* pCmdUI);
  71. afx_msg void OnUpdateEditOutputColour(CCmdUI* pCmdUI);
  72. afx_msg void OnUpdateEditFormulatypeDifferenceand(CCmdUI* pCmdUI);
  73. afx_msg void OnUpdateEditFormulatypeDifferenceor(CCmdUI* pCmdUI);
  74. afx_msg void OnUpdateEditFormulatypeSummation(CCmdUI* pCmdUI);
  75. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  76. afx_msg void OnEditPrototyping();
  77. afx_msg void OnChangeResolution();
  78. afx_msg void OnEditCopy();
  79. afx_msg void OnUpdateResLow(CCmdUI* pCmdUI);
  80. afx_msg void OnUpdateResMedium(CCmdUI* pCmdUI);
  81. afx_msg void OnUpdateResHigh(CCmdUI* pCmdUI);
  82. //}}AFX_MSG
  83. afx_msg void OnResolution(UINT);
  84. DECLARE_MESSAGE_MAP()
  85. };
  86. #ifndef _DEBUG 
  87. inline CED256Doc* CED256View::GetDocument()
  88.    { return (CED256Doc*)m_pDocument; }
  89. #endif
  90. //{{AFX_INSERT_LOCATION}}
  91. #endif