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

波变换

开发平台:

Visual C++

  1. // Wavelet2DDlg.h : header file
  2. //
  3. #if !defined(AFX_WAVELET2DDLG_H__1BB7047C_254D_472F_BAA9_26BA66C496F6__INCLUDED_)
  4. #define AFX_WAVELET2DDLG_H__1BB7047C_254D_472F_BAA9_26BA66C496F6__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #include "DIBAPI.h" 
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CWavelet2DDlg dialog
  11. class CWavelet2DDlg : 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_nFilterLen;             // 滤波器长度
  22. double h[30];           // 辅助变量  
  23. double **image;         // 存放进行小波变换的图像数据
  24. double *ph;             // 存放h参数 
  25. double *pg;             // 存放g参数
  26. double *tempRow;        // 行变换用临时变量
  27. double *tempCol;        // 列变换用临时变量
  28. BITMAPINFO *m_pBmpInfo; // 显示图像用BMP信息结构
  29.     HDIB    DIB;            // 设备无关位图句柄
  30. LPSTR lpDIB;         // 指向DIB的指针  
  31. LPSTR   lpDIBBits;     // 指向DIB象素指针
  32. void ReleaseMemory();     // 释放小波变换占用的内存资源  
  33. void GetParam();          // 得到小波变换所需的层次、滤波器长度等参数
  34. void DrawOriginalBmp();   // 绘制原始图像
  35. void DrawWavelet2D();     // 绘制小波变换后图像
  36.     double GG(int i, int m);
  37. double HH(int i, int m);
  38. BOOL GGG(int level,int size);
  39. BOOL HHH(int level,int size);
  40. BOOL GetHn();
  41. BOOL GetMemory();
  42. void Wavelet2D();
  43.    void DecompStageCol(int col,int stage,int numx);
  44. void DecompStageRow(int row,int stage,int numx);
  45. void HOperatorOnRow(int filterlen,int start,int len, int row);
  46.     void HOperatorOnCol(int filterlen,int start,int len, int col);
  47. void GOperatorOnRow(int filterlen,int start,int len, int row);
  48. void GOperatorOnCol(int filterlen,int start,int len, int col);
  49. HDIB GetHDIB() const { return DIB; }
  50. CWavelet2DDlg(CWnd* pParent = NULL); // standard constructor
  51. // Dialog Data
  52. //{{AFX_DATA(CWavelet2DDlg)
  53. enum { IDD = IDD_WAVELET2D_DIALOG };
  54. CEdit m_editBmpFile;
  55. CComboBox m_combFilterLen;
  56. CComboBox m_combDecomposeStage;
  57. //}}AFX_DATA
  58. // ClassWizard generated virtual function overrides
  59. //{{AFX_VIRTUAL(CWavelet2DDlg)
  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(CWavelet2DDlg)
  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 OnBtnWavelet2D();
  73. afx_msg void OnBtnBmpFile();
  74. virtual void OnOK();
  75. //}}AFX_MSG
  76. DECLARE_MESSAGE_MAP()
  77. };
  78. //{{AFX_INSERT_LOCATION}}
  79. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  80. #endif // !defined(AFX_WAVELET2DDLG_H__1BB7047C_254D_472F_BAA9_26BA66C496F6__INCLUDED_)