📄 taodoc.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 + -