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

📄 taodoc.cpp

📁 一般的论文 毕业用的 有很大的用处
💻 CPP
字号:
// TAODoc.cpp : implementation of the CTAODoc class
//

#include "stdafx.h"
#include "TAO.h"

#include "TAODoc.h"
#include "math.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTAODoc

IMPLEMENT_DYNCREATE(CTAODoc, CDocument)

BEGIN_MESSAGE_MAP(CTAODoc, CDocument)
	//{{AFX_MSG_MAP(CTAODoc)
	ON_COMMAND(ID_Inverse, OnInverse)
	ON_COMMAND(ID_Linear_Trans, OnLinearTrans)
	ON_COMMAND(ID_HISTOGRAM, OnHistogram)
	ON_COMMAND(ID_HISTOGRAM_EQUAL, OnHistogramEqual)
	ON_COMMAND(ID_FILTER, OnFilter)
	ON_COMMAND(ID_LAPLACE, OnLaplace)
	ON_COMMAND(ID_REINFORCE, OnReinforce)
	ON_COMMAND(ID_ROBERT, OnRobert)
	ON_COMMAND(ID_2DFT, On2dft)
	ON_COMMAND(ID_DFT_TRANS, OnDftTrans)
	ON_COMMAND(ID_FangDa, OnFangDa)
	ON_COMMAND(ID_Rotate, OnRotate)
	ON_COMMAND(ID_SuoXiao, OnSuoXiao)
	ON_COMMAND(ID_PerfectLowpass, OnPerfectLowpass)
	ON_COMMAND(ID_PerfectHighpasss, OnPerfectHighpasss)
	ON_COMMAND(ID_Erosion, OnErosion)
	ON_COMMAND(ID_Dilation, OnDilation)
	ON_COMMAND(ID_Opening, OnOpening)
	ON_COMMAND(ID_Closing, OnClosing)
	ON_COMMAND(ID_Cuhua, OnCuhua)
	ON_COMMAND(ID_Xiaohua, OnXiaohua)
	ON_COMMAND(ID_Boundary, OnBoundary)
	ON_COMMAND(ID_Segmentation, OnSegmentation)
	ON_COMMAND(ID_BIAOSHI, OnBiaoshi)
	ON_COMMAND(ID_DeleteBackground, OnDeleteBackground)
	ON_COMMAND(ID_SegmentationCell, OnSegmentationCell)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTAODoc construction/destruction

CTAODoc::CTAODoc()
{
	// TODO: add one-time construction code here

}

CTAODoc::~CTAODoc()
{
}





/////////////////////////////////////////////////////////////////////////////
// CTAODoc serialization

void CTAODoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CTAODoc diagnostics

#ifdef _DEBUG
void CTAODoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CTAODoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTAODoc commands

BOOL CTAODoc::OnOpenDocument(LPCTSTR lpszPathName) 
{
	if (!CDocument::OnOpenDocument(lpszPathName))
		return FALSE;
	
	// TODO: Add your specialized creation code here
	myDib.Load(lpszPathName);
	
	return TRUE;
}

void CTAODoc::OnInverse() 
{
	// TODO: Add your command handler code here
	myDib.Inverse();
	UpdateAllViews(NULL);

}

void CTAODoc::OnLinearTrans() 
{
	// TODO: Add your command handler code here
	int Avalue, Bvalue;
	CDLGLinear myDlg;
	if(myDlg.DoModal()!=IDOK)
	{
		return;
	}
	Avalue=myDlg.m_lowvalue;
	Bvalue=myDlg.m_highvalue;
	myDib.LinearTrans(Avalue,Bvalue);
	UpdateAllViews(NULL);

	
	
}

void CTAODoc::OnHistogram()
{
	// TODO: Add your command handler code here
	CDlgHistogram myHistogram;
	
	myHistogram.m_Hight = myDib.m_Height;
	myHistogram.m_Width = myDib.m_Width;
	myHistogram.m_StartBits = myDib.m_pDibBits;


	if (myHistogram.DoModal() != IDOK) {
		return;
	}
	
}


void CTAODoc::OnHistogramEqual()
{
	// TODO: Add your command handler code here
	myDib.GrayEqualize();
	SetModifiedFlag(TRUE);
	UpdateAllViews(NULL);

}

//void CTAODoc::OnHistogramEqual() 
//{
	// TODO: Add your command handler code here
	
//}

void CTAODoc::OnFilter()
{
	// TODO: Add your command handler code here
	myDib.Filter();
	//SetModifiedFlag(TRUE);
	UpdateAllViews(NULL);

}


void CTAODoc::OnLaplace() 
{
	// TODO: Add your command handler code here
	myDib.Laplace();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnReinforce() 
{
	// TODO: Add your command handler code here
	myDib.Reinforce();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnRobert() 
{
	// TODO: Add your command handler code here
	myDib.Robert();
	UpdateAllViews(NULL);

	
}

void CTAODoc::On2dft() 
{
	// TODO: Add your command handler code here
	myDib.FourierTransform();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnDftTrans() 
{
	// TODO: Add your command handler code here
	myDib.Fourier2();
	UpdateAllViews(NULL);

	
}

void CTAODoc::OnFangDa() 
{
	// TODO: Add your command handler code here
	float X ;
	CDFangDa mydlg;
	if (mydlg.DoModal() != IDOK) 
	{
		return;
	}
	X=mydlg.m_xzoomoutratio;
	myDib.zoomout(X );
	UpdateAllViews(NULL);	
}

void CTAODoc::OnRotate() 
{
	// TODO: Add your command handler code here
	int angle;
	CDRotate mydlg;
	if (mydlg.DoModal() != IDOK) 
	{
		return;
	}
    angle=mydlg.m_rot_angle;
	myDib.rotate(angle);
	UpdateAllViews(NULL);	
}

void CTAODoc::OnSuoXiao() 
{
	// TODO: Add your command handler code here
	float X ;
	CDSuoXiao mydlg;
	if (mydlg.DoModal() != IDOK) 
	{
		return;
	}
	X=mydlg.m_xzoominratio;
	myDib.zoomin(X );
	UpdateAllViews(NULL);		
}

void CTAODoc::OnPerfectLowpass() 
{
	// TODO: Add your command handler code here
	int X,Y ;
	CDLowPass mydlg;
	if (mydlg.DoModal() != IDOK) 
	{
		return;
	}
	X=mydlg.m_x ;
	Y=mydlg.m_y ;

	myDib.PerfectFilterL(X,Y );
	UpdateAllViews(NULL);	
}

void CTAODoc::OnPerfectHighpasss() 
{
	// TODO: Add your command handler code here
	int X,Y ;
	CDHighPass mydlg;
	if (mydlg.DoModal() != IDOK) 
	{
		return;
	}
	X=mydlg.m_x ;
	Y=mydlg.m_y ;

	myDib.PerfectFilterH(X,Y );
	UpdateAllViews(NULL);	
}

void CTAODoc::OnErosion() 
{
	// TODO: Add your command handler code here
	myDib.Erosion();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnDilation() 
{
	// TODO: Add your command handler code here
	myDib.Dilation();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnOpening() 
{
	// TODO: Add your command handler code here
	myDib.Erosion();
	myDib.Dilation();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnClosing() 
{
	// TODO: Add your command handler code here
	myDib.Dilation();
	myDib.Erosion();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnCuhua() 
{
	// TODO: Add your command handler code here
	myDib.Cuhua();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnXiaohua() 
{
	// TODO: Add your command handler code here
	myDib.Xihua();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnBoundary() 
{
	// TODO: Add your command handler code here
	myDib.Boundary();
	UpdateAllViews(NULL);
	
}

void CTAODoc::OnSegmentation() 
{
	// TODO: Add your command handler code here
	int seg ;
	CDSegmentation mydlg;
	CDlgHistogram myHistogram;
	
	myHistogram.m_Hight = myDib.m_Height;
	myHistogram.m_Width = myDib.m_Width;
	myHistogram.m_StartBits = myDib.m_pDibBits;

 	if (myHistogram.DoModal() != IDOK)
	{
		return;
	} 

	if (mydlg.DoModal() != IDOK) 
	{
		return;
	}

	seg=mydlg.m_Yuzhi ;

	myDib.Segmentation(seg);
	UpdateAllViews(NULL);	
	
}

void CTAODoc::OnBiaoshi() 
{
	int Avalue;
	CDYuZhi myDlg;
	if(myDlg.DoModal()!=IDOK)
	{
		return;
	}
	Avalue=myDlg.m_gray;
	myDib.biaoji(Avalue);
	UpdateAllViews(NULL);
}


void CTAODoc::OnDeleteBackground() 
{
	myDib.Multiple();
	UpdateAllViews(NULL);

}



void CTAODoc::OnSegmentationCell() 
{
	myDib.Cell();
	UpdateAllViews(NULL);
	
}

⌨️ 快捷键说明

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