📄 creport.cpp
字号:
// cREPORT.cpp : implementation file
//
#include "stdafx.h"
#include "MYFUSION.h"
#include "cREPORT.h"
#include "ImageEnvalue.h"
#include "MYFUSIONDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// cREPORT dialog
CREPORT::CREPORT(CWnd* pParent /*=NULL*/)
: CDialog(CREPORT::IDD, pParent)
{
//{{AFX_DATA_INIT(cREPORT)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CREPORT::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(cREPORT)
DDX_Control(pDX, IDC_LIST1, m_List);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CREPORT, CDialog)
//{{AFX_MSG_MAP(cREPORT)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// cREPORT message handlers
BOOL CREPORT::OnInitDialog()
{
CDialog::OnInitDialog();
static CString _gListText[] =
{_T("图像"),_T("均值"), _T("标准差"), _T("信息熵"),_T("平均梯度"), _T("相关系数")};
m_List.InsertColumn(0, _gListText[0], LVCFMT_CENTER, 108);
m_List.InsertColumn(1, _gListText[1], LVCFMT_CENTER, 80);
m_List.InsertColumn(2, _gListText[2], LVCFMT_CENTER, 80);
m_List.InsertColumn(3, _gListText[3], LVCFMT_CENTER, 80);
m_List.InsertColumn(4, _gListText[4], LVCFMT_CENTER, 80);
m_List.InsertColumn(5, _gListText[5], LVCFMT_CENTER, 80);
m_List.InsertItem( 0,"原多光谱图像",0 );
m_List.InsertItem( 1,"融合图像" ,1 );
DWORD dwStyle = WS_EX_CLIENTEDGE|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES;// |LVS_EX_CHECKBOXES;
m_List.SetExtendedStyle(dwStyle);
m_List.SetBkColor(RGB(0,255,255));
m_List.SetTextBkColor(RGB(0,255,255));
m_List.SetTextColor(RGB(0,0,0));
//分别计算出各评价函数值
CMYFUSIONApp* app=(CMYFUSIONApp*)AfxGetApp();//获得当前APP
POSITION p = app->GetFirstDocTemplatePosition();
while(p!= NULL)
{
CDocTemplate * pDocTemplate = app->GetNextDocTemplate(p);
POSITION p1 = pDocTemplate->GetFirstDocPosition();
while(p1 != NULL)
{
CMYFUSIONDoc * pDocument = (CMYFUSIONDoc*)pDocTemplate->GetNextDoc(p1);
if(pDocument->GetPathName()==app->pathname2)
{
hmul=pDocument->m_hDIB;
}
else if(pDocument->lpPathName==_T("FusionResult"))
{
hout=pDocument->m_hDIB;
}
}
}
LPSTR pmulDib = (LPSTR) ::GlobalLock((HGLOBAL) hmul);
LPSTR poutDib = (LPSTR) ::GlobalLock((HGLOBAL) hout);
if( pmulDib==NULL )
{
AfxMessageBox("多光谱图象为空!",MB_ICONSTOP);
return NULL;
}
if( poutDib==NULL )
{
AfxMessageBox("融合图象为空!",MB_ICONSTOP);
return NULL;
}
CImageEnvalue en;
double objaverage = en.ImageAverage(pmulDib);
double average = en.ImageAverage(poutDib);
double objstanderd = en.standerd(pmulDib);
double standerd = en.standerd(poutDib);
double objshannon = en.Shannon(pmulDib);
double shannon = en.Shannon(poutDib);
double objgrad = en.grade(pmulDib);
double grad = en.grade(poutDib);
double relation = en.relation(hmul,hout);
CString m_objaverage;
m_objaverage .Format("%f",objaverage);
CString m_average;
m_average .Format("%f",average);
CString m_objstanderd;
m_objstanderd.Format("%f",objstanderd);
CString m_standerd;
m_standerd .Format("%f",standerd);
CString m_objshannon;
m_objshannon .Format("%f",objshannon);
CString m_shannon;
m_shannon .Format("%f",shannon);
CString m_objgrad;
m_objgrad .Format("%f",objgrad);
CString m_grad;
m_grad .Format("%f",grad);
CString m_relation;
m_relation .Format("%f",relation);
m_List.SetItemText(0,1,m_objaverage);
m_List.SetItemText(1,1,m_average);
m_List.SetItemText(0,2,m_objstanderd);
m_List.SetItemText(1,2,m_standerd);
m_List.SetItemText(0,3,m_objshannon);
m_List.SetItemText(1,3,m_shannon);
m_List.SetItemText(0,4,m_objgrad);
m_List.SetItemText(1,4,m_grad);
m_List.SetItemText(1,5,m_relation);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -