📄 statistic.cpp
字号:
// Statistic.cpp : implementation file
//
#include "stdafx.h"
#include "RSIP.h"
#include "Statistic.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCorrelationDlg dialog
CCorrelationDlg::CCorrelationDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCorrelationDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCorrelationDlg)
m_strFirstFile = _T("");
m_strSecondFile = _T("");
//}}AFX_DATA_INIT
m_nImgWidth = 0;
m_nImgHeight = 0;
m_operatingMode = 0;
}
void CCorrelationDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCorrelationDlg)
DDX_Text(pDX, IDC_FIRST_FILE, m_strFirstFile);
DDX_Text(pDX, IDC_SECOND_FILE, m_strSecondFile);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCorrelationDlg, CDialog)
//{{AFX_MSG_MAP(CCorrelationDlg)
ON_BN_CLICKED(IDC_FIRST_IMAGE, OnFirstImage)
ON_BN_CLICKED(IDC_SECOND_IMAGE, OnSecondImage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCorrelationDlg message handlers
void CCorrelationDlg::OnFirstImage()
{
if(m_operatingMode != 2)
{
CFileDialog dlg(TRUE,"dat",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Image Files(*.dat)|*.dat||",NULL);
if(dlg.DoModal() == IDOK)
{
m_strFirstFile = dlg.GetPathName();
m_strFirstFile.TrimLeft();
m_strFirstFile.TrimRight();
int length = m_strFirstFile.GetLength();
CString infFileName = m_strFirstFile.Left(length - 4)+".inf";
CFile infFile;
if(0 != infFile.Open(infFileName,CFile::modeRead))
{
CRSImage RSImage;
RSImage.LoadRsInfo(&infFile);
infFile.Close();
if(RSImage.m_nImgType != IMAGE_SINGLEBAND)
{
AfxMessageBox("该图象不是单波段图象。\n\n请选择单波段图象计算相关系数!");
return;
}
if(m_nImgHeight==0 && m_nImgWidth==0)
{
m_nImgHeight = RSImage.m_nImgHeight;
m_nImgWidth = RSImage.m_nImgWidth;
}
else
{
if(m_nImgHeight-RSImage.m_nImgHeight!=0 ||
m_nImgWidth-RSImage.m_nImgWidth!=0)
{
AfxMessageBox("该图象与另一幅图象尺寸不符合!");
return;
}
}
}
else
{
AfxMessageBox("找不到该波段图象的信息文件!");
return;
}
}
}
else
{
CFileDialog dlg(TRUE,"wtf",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Wavelet Transform Files(*.wtf)|*.wtf||",NULL);
if(dlg.DoModal() == IDOK)
{
m_strFirstFile = dlg.GetPathName();
}
}
UpdateData(FALSE);
}
void CCorrelationDlg::OnSecondImage()
{
if(m_operatingMode != 2)
{
CFileDialog dlg(TRUE,"dat",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Image Files(*.dat)|*.dat||",NULL);
if(dlg.DoModal() == IDOK)
{
m_strSecondFile = dlg.GetPathName();
m_strSecondFile.TrimLeft();
m_strSecondFile.TrimRight();
int length = m_strSecondFile.GetLength();
CString infFileName = m_strSecondFile.Left(length - 4)+".inf";
CFile infFile;
if(0 != infFile.Open(infFileName,CFile::modeRead))
{
CRSImage RSImage;
RSImage.LoadRsInfo(&infFile);
infFile.Close();
if(RSImage.m_nImgType != IMAGE_SINGLEBAND)
{
AfxMessageBox("该图象不是单波段图象。\n\n请选择单波段图象计算相关系数!");
return;
}
if(m_nImgHeight==0 && m_nImgWidth==0)
{
m_nImgHeight = RSImage.m_nImgHeight;
m_nImgWidth = RSImage.m_nImgWidth;
}
else
{
if(m_nImgHeight-RSImage.m_nImgHeight!=0 ||
m_nImgWidth-RSImage.m_nImgWidth!=0)
{
AfxMessageBox("该图象与另一幅图象尺寸不符合!");
return;
}
}
}
else
{
AfxMessageBox("找不到该波段图象的信息文件!");
return;
}
}
}
else
{
CFileDialog dlg(TRUE,"wtf",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Wavelet Transform Files(*.wtf)|*.wtf||",NULL);
if(dlg.DoModal() == IDOK)
{
m_strSecondFile = dlg.GetPathName();
}
}
UpdateData(FALSE);
}
BOOL CCorrelationDlg::OnInitDialog()
{
CDialog::OnInitDialog();
switch(m_operatingMode){
case 0:
SetWindowText("光谱扭曲");
break;
case 1:
SetWindowText("相关系数");
break;
case 2:
SetWindowText("层相关系数");
break;
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/////////////////////////////////////////////////////////////////////////////
// CLCdlg dialog
CLCdlg::CLCdlg(CWnd* pParent /*=NULL*/)
: CDialog(CLCdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLCdlg)
m_nContrast = 0;
m_nLight = 0;
//}}AFX_DATA_INIT
}
void CLCdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLCdlg)
DDX_Text(pDX, IDC_CONTRAST_EDIT, m_nContrast);
DDX_Text(pDX, IDC_LIGHT_EDIT, m_nLight);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLCdlg, CDialog)
//{{AFX_MSG_MAP(CLCdlg)
ON_WM_HSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLCdlg message handlers
void CLCdlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CSliderCtrl * pSlide = (CSliderCtrl *)pScrollBar;
switch( pSlide->GetDlgCtrlID() )
{
case IDC_LIGHT_SLIDER:
SetDlgItemInt(IDC_LIGHT_EDIT,int(pSlide->GetPos()));
break;
case IDC_CONTRAST_SLIDER:
SetDlgItemInt(IDC_CONTRAST_EDIT,int(pSlide->GetPos()));
break;
}
}
BOOL CLCdlg::OnInitDialog()
{
CDialog::OnInitDialog();
CSliderCtrl * pLightSlider = (CSliderCtrl *)GetDlgItem(IDC_LIGHT_SLIDER);
pLightSlider->SetRange(-100,100);
pLightSlider->SetPos(100);
pLightSlider->SetPos(0);
SetDlgItemInt(IDC_LIGHT_EDIT,m_nLight);
CSliderCtrl * pContrastSlider = (CSliderCtrl *)GetDlgItem(IDC_CONTRAST_SLIDER);
pContrastSlider->SetRange(-100,100);
pContrastSlider->SetPos(100);
pContrastSlider->SetPos(0);
SetDlgItemInt(IDC_CONTRAST_EDIT,m_nContrast);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -