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

📄 creport.cpp

📁 影像融合与融合精度评价源码影像融合与融合精度评价源码
💻 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 + -