Wavelet1DDlg.h
上传用户:whhgrj
上传日期:2013-03-18
资源大小:169k
文件大小:3k
源码类别:

波变换

开发平台:

Visual C++

  1. // Wavelet1DDlg.h : header file
  2. //
  3. #if !defined(AFX_WAVELET1DDLG_H__1D948D8C_3DC7_44B0_AEB7_6A82086861DE__INCLUDED_)
  4. #define AFX_WAVELET1DDLG_H__1D948D8C_3DC7_44B0_AEB7_6A82086861DE__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #include "DIBAPI.h" 
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CWavelet1DDlg dialog
  11. class CWavelet1DDlg : public CDialog
  12. {
  13. // Construction
  14. public:
  15. BOOL m_bWavelet;          // 当前数据图像是否已进行过小波变换
  16. CString m_strBmpFile;     // 原始数据图像文件
  17. CString m_strFilterFile[10];  // 小波系数文件
  18. int m_nImageWidth;            // 原始数据图像宽度
  19. int m_nImageHeight;           // 原始数据图像高度
  20. int m_nDecomposeStage;        // 小波变换层次 
  21. int m_nDisplayStage;          // 显示第几层变换的数据
  22. int m_nFilterLen;             // 滤波器长度
  23. int m_nBinGate;               // 二值化判决门限 
  24. double h[30];           // 辅助变量      
  25. double ** Data;         // 存放进行小波变换数据
  26. double *ph;             // 存放h参数 
  27. double *pg;             // 存放g参数
  28. double *DotData;        // 二值化后点阵图像数据
  29.     HDIB    DIB;            // 设备无关位图句柄
  30. LPSTR lpDIB;         // 指向DIB的指针  
  31. LPSTR   lpDIBBits;     // 指向DIB象素指针
  32. void ReleaseMemory();     // 释放小波变换占用的内存资源  
  33. void GetParam();          // 得到小波变换所需的层次、滤波器长度等参数
  34. void PrepareData();       // 将原始数据图像二值化并投影,将其存储到Data[0]中
  35. void DrawWavelet1D();     // 绘制小波变换后数据图像
  36. BOOL GenerateHnFile();    // 产生小波系数文件函数
  37. HDIB GetHDIB() const
  38. { return DIB; }
  39. double GG(int i, int m);
  40. double HH(int i, int m);
  41. BOOL GGG(int level,int size);
  42. BOOL HHH(int level,int size);
  43. BOOL GetHn();
  44. BOOL GetMemory();
  45. BOOL DecompStage(int level,int filterlen);
  46. void Wavelet1D();
  47.     void HOperatorOn(int filterlen,int start,int len, int level);
  48.     void GOperatorOn(int filterlen,int start,int len, int level);
  49. CWavelet1DDlg(CWnd* pParent = NULL); // standard constructor
  50. // Dialog Data
  51. //{{AFX_DATA(CWavelet1DDlg)
  52. enum { IDD = IDD_WAVELET1D_DIALOG };
  53. CComboBox m_combDisplayStage;
  54. CComboBox m_combFilterLen;
  55. CComboBox m_combDecomposeStage;
  56. CEdit m_editBmpFile;
  57. //}}AFX_DATA
  58. // ClassWizard generated virtual function overrides
  59. //{{AFX_VIRTUAL(CWavelet1DDlg)
  60. protected:
  61. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  62. //}}AFX_VIRTUAL
  63. // Implementation
  64. protected:
  65. HICON m_hIcon;
  66. // Generated message map functions
  67. //{{AFX_MSG(CWavelet1DDlg)
  68. virtual BOOL OnInitDialog();
  69. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  70. afx_msg void OnPaint();
  71. afx_msg HCURSOR OnQueryDragIcon();
  72. afx_msg void OnBtnBmpFile();
  73. afx_msg void OnBtnWavelet1D();
  74. afx_msg void OnSelchangeCombDisplayStage();
  75. afx_msg void OnEditchangeCombDisplayStage();
  76. afx_msg void OnEditchangeCombDecomposeStage();
  77. afx_msg void OnEditchangeCombFilterLen();
  78. virtual void OnOK();
  79. //}}AFX_MSG
  80. DECLARE_MESSAGE_MAP()
  81. };
  82. //{{AFX_INSERT_LOCATION}}
  83. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  84. #endif // !defined(AFX_WAVELET1DDLG_H__1D948D8C_3DC7_44B0_AEB7_6A82086861DE__INCLUDED_)