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

📄 wavelet2ddlg.h

📁 用vc++来实现小波算法,某书例程,非常经典.
💻 H
字号:
// Wavelet2DDlg.h : header file
//

#if !defined(AFX_WAVELET2DDLG_H__1BB7047C_254D_472F_BAA9_26BA66C496F6__INCLUDED_)
#define AFX_WAVELET2DDLG_H__1BB7047C_254D_472F_BAA9_26BA66C496F6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "DIBAPI.h" 
/////////////////////////////////////////////////////////////////////////////
// CWavelet2DDlg dialog
class CWavelet2DDlg : public CDialog
{
// Construction
public:
	BOOL m_bWavelet;          // 当前数据图像是否已进行过小波变换
	CString m_strBmpFile;     // 原始数据图像文件
	CString m_strFilterFile[10];  // 小波系数文件
	int m_nImageWidth;            // 原始数据图像宽度
	int m_nImageHeight;           // 原始数据图像高度
	int m_nDecomposeStage;        // 小波变换层次 
	int m_nFilterLen;             // 滤波器长度
	double h[30];           // 辅助变量  
	double **image;         // 存放进行小波变换的图像数据
	double *ph;             // 存放h参数 
	double *pg;             // 存放g参数
	double *tempRow;        // 行变换用临时变量
	double *tempCol;        // 列变换用临时变量
	BITMAPINFO *m_pBmpInfo; // 显示图像用BMP信息结构
    HDIB    DIB;            // 设备无关位图句柄
	LPSTR	lpDIB;        	// 指向DIB的指针  
	LPSTR   lpDIBBits;    	// 指向DIB象素指针	

	void ReleaseMemory();     // 释放小波变换占用的内存资源  
	void GetParam();          // 得到小波变换所需的层次、滤波器长度等参数
	void DrawOriginalBmp();   // 绘制原始图像
	void DrawWavelet2D();     // 绘制小波变换后图像
    double GG(int i, int m);
	double HH(int i, int m);
	BOOL GGG(int level,int size);
	BOOL HHH(int level,int size);
	BOOL GetHn();
	BOOL GetMemory();
	void Wavelet2D();
  	void DecompStageCol(int col,int stage,int numx);
	void DecompStageRow(int row,int stage,int numx);
	void HOperatorOnRow(int filterlen,int start,int len, int row);
    void HOperatorOnCol(int filterlen,int start,int len, int col);
	void GOperatorOnRow(int filterlen,int start,int len, int row);
	void GOperatorOnCol(int filterlen,int start,int len, int col);
	HDIB GetHDIB() const		{ return DIB; }
	
	CWavelet2DDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CWavelet2DDlg)
	enum { IDD = IDD_WAVELET2D_DIALOG };
	CEdit	m_editBmpFile;
	CComboBox	m_combFilterLen;
	CComboBox	m_combDecomposeStage;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CWavelet2DDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CWavelet2DDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBtnWavelet2D();
	afx_msg void OnBtnBmpFile();
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_WAVELET2DDLG_H__1BB7047C_254D_472F_BAA9_26BA66C496F6__INCLUDED_)

⌨️ 快捷键说明

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