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

📄 hyperspectraldatauncompressdlg.h

📁 改进的JPEG-LS算法
💻 H
字号:
// HyperspectralDataUnCompressDlg.h : header file
//

#if !defined(AFX_HYPERSPECTRALDATAUNCOMPRESSDLG_H__D68B8BCB_1E75_4FEF_A201_9240A21611A5__INCLUDED_)
#define AFX_HYPERSPECTRALDATAUNCOMPRESSDLG_H__D68B8BCB_1E75_4FEF_A201_9240A21611A5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAXBANDNUMBER	512
#define MIN_LINES_PER_BLOCK		64
#define MAX_COMPRESS_FILE_NUMBER	130
/////////////////////////////////////////////////////////////////////////////
// CHyperspectralDataUnCompressDlg dialog
#define WM_USER_HYPERSPECTRAL_UNCOMPRESS_DLG (WM_USER+2)
class HyperspectralUnCompressThread;
class CHyperspectralDataUnCompressDlg : public CDialog
{
// Construction
public:
	CHyperspectralDataUnCompressDlg(CWnd* pParent = NULL);	// standard constructor
	CString lpImageFile[MAXBANDNUMBER];//纯图像方式时用于比较的单波段文件名表列
	CString lpConstructFile[MAXBANDNUMBER];//存放纯图像时重建单波段文件名列表
	CString lpCompressFile[MAX_COMPRESS_FILE_NUMBER];//存放多压缩数据文件列表
	int CompressFileNumbers;//压缩文件数目
	BOOL AllowReport;
	CString Report;
	int CompleteUnCompressFileNumber;//当前完成的解压缩文件数目
	CString PredictBandList;//波段预测配置
	TCHAR HyperspectralDataFormat;//高光谱数据格式
	int BandNumber;
	int Width;
	int BytesPerPixel;
	BOOL CanCompare;//可以比较标志
	BOOL CanUnCompress;//可以解压缩标志
	BOOL UnCompressComplete;//解压缩完成标志
	BOOL IsHyperspectralCompressData;//是否为高光谱压缩数据标志
	HyperspectralUnCompressThread *m_pUnCompressThread;//解压缩线程
	BOOL UnCompressThreadRun;//解压缩线程运行标志
	BOOL LoadHyperspectralCompressHead(CString &CompressFile);//加载压缩头
	void ProduceConstructFileName(LPCTSTR lpInputConstructFileName=NULL);//由压缩文件名产生默认的重建图像文件名
	void OkUnCompressProce();
	void CalculateOneLineImageErr(LPBYTE ImageLine,//图像行
							 LPBYTE CompareImageLine,//比较用的图像行
							 int BytesPerPix,//每象素字节数
							 int OneLineWidth,//每行象素数
							 int &MaxError,//存放误差最大值
							 double &ErrMse);//存放误差平方和
	void OutString(CString str,LPCTSTR lpOutFile=NULL);

// Dialog Data
	//{{AFX_DATA(CHyperspectralDataUnCompressDlg)
	enum { IDD = IDD_HYPERSPECTRALDATAUNCOMPRESS_DIALOG };
	BOOL	m_AllowCompare;
	CString	m_AuxWidth;
	CString	m_BandNumber;
	CString	m_BandPrediction;
	CString	m_BitsPerPixel;
	CString	m_CompressFileName;
	CString	m_CompressRate;
	CString	m_ConstuctFileName;
	CString	m_ImageFileName;
	CString	m_ImageFormat;
	CString	m_ImageHeight;
	CString	m_ImageWidth;
	CString	m_MaxError;
	CString	m_MaxErrPerPixel;
	CString	m_NoticeNumber;
	CString	m_PSNRString;
	CString	m_RateString;
	CString	m_NoticeString;
	//}}AFX_DATA

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

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CHyperspectralDataUnCompressDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnDestroy();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnClose();
	afx_msg void OnKillfocusCompressFileName();
	afx_msg void OnCompressFilenameFindButton();
	afx_msg void OnMulbandImageFilenameFindButton();
	afx_msg void OnConstructFilenameFindButton();
	afx_msg void OnUncompressCancel();
	afx_msg void OnUncompressOk();
	afx_msg void OnAllowCompareCheck();
	afx_msg void OnKillfocusConstructImageFileName();
	//}}AFX_MSG
	LRESULT OnHyperspectralDataUnCompressRecvMessage(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()
};



/////////////////////////////////////////////////////////////////////////////
// HyperspectralUnCompressThread thread

class HyperspectralUnCompressThread : public CWinThread
{
	DECLARE_DYNCREATE(HyperspectralUnCompressThread)
protected:

// Attributes
public:
	HyperspectralUnCompressThread();           // protected constructor used by dynamic creation
	CHyperspectralDataUnCompressDlg* m_pOwner;
	BOOL m_bDone;
	void SetOwner(CHyperspectralDataUnCompressDlg* pOwner) { m_pOwner = pOwner; };
	virtual ~HyperspectralUnCompressThread();

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(HyperspectralUnCompressThread)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	virtual int Run();
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(HyperspectralUnCompressThread)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_HYPERSPECTRALDATAUNCOMPRESSDLG_H__D68B8BCB_1E75_4FEF_A201_9240A21611A5__INCLUDED_)

⌨️ 快捷键说明

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