www.pudn.com > ImageSearch.rar > ImageSearchView.cpp
// ImageSearchView.cpp : CImageSearchView 类的实现
#include "stdafx.h"
#include "ImageSearch.h"
#include "ImageSearchDoc.h"
#include "ImageSearchView.h"
#include ".\imagesearchview.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CImageSearchView
IMPLEMENT_DYNCREATE(CImageSearchView, CFormView)
BEGIN_MESSAGE_MAP(CImageSearchView, CFormView)
END_MESSAGE_MAP()
// CImageSearchView 构造/析构
CImageSearchView::CImageSearchView()
: CFormView(CImageSearchView::IDD)
{
// TODO: 在此处添加构造代码
}
CImageSearchView::~CImageSearchView()
{
}
void CImageSearchView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BOOL CImageSearchView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式
return CFormView::PreCreateWindow(cs);
}
void CImageSearchView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
GetDocument()->SetTitle("媒体计算课程作业");
}
// CImageSearchView 诊断
#ifdef _DEBUG
void CImageSearchView::AssertValid() const
{
CFormView::AssertValid();
}
void CImageSearchView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CImageSearchDoc* CImageSearchView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CImageSearchDoc)));
return (CImageSearchDoc*)m_pDocument;
}
#endif //_DEBUG
void CImageSearchView::OnDraw(CDC* pDC)
{
// TODO: 在此添加专用代码和/或调用基类
CImageSearchDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CString FileName;
if(pDoc->m_strQueryFile.IsEmpty())
{
pDC->TextOut(100, 10, " ",20 );
return;
}
pDoc->m_dibQuery.Draw(pDC,5,5,1);
pDC->TextOut( 100,160, "原始图像 ",20 );
if(pDoc->fileopen==1&&pDoc->m_iShowQueryResult==1)
{
BYTE* pBits;
int i, j, k;
int b, g, r;
int iWidth, iHeight, iAddWidth;
double r_hgram1[256] = {0};
double g_hgram1[256] = {0};
double b_hgram1[256] = {0};
for (i=0; i<=255; i++)
{
r_hgram1[i] = 0;
g_hgram1[i] = 0;
b_hgram1[i] = 0;
}
pBits = pDoc->m_dibQuery.GetBits();
iWidth = pDoc->m_dibQuery.GetWidth();
iHeight = pDoc->m_dibQuery.GetHeight();
iAddWidth = pDoc->m_dibQuery.GetAddWidth();
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[0] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[1] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[1] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[2] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[2] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[3] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[3] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[4] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[4] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[5] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[5] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[6] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[6] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[7] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[7] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[8] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[8] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[9] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[9] = i;
}
}
iBestDistance = (unsigned long)pow(2, 32) - 1;
result[10] = 0;
for (i=0; i matchdegree[i] )
{
iBestDistance = matchdegree[i];
result[10] = i;
}
}
pDC->TextOut(495, 160, " 第一幅图 ",20 );
fpTemp.Open( cBmpName[result[0]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,400,10,1);
pDC->TextOut(890, 160, " 第二幅图 ",20 );
fpTemp.Open( cBmpName[result[1]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,795,10,1);
pDC->TextOut(100, 350 ," 第三幅图 ",20 );
fpTemp.Open( cBmpName[result[2]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,5,200,1);
pDC->TextOut(495, 350 ," 第四幅图 ",20 );
fpTemp.Open( cBmpName[result[3]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,400,200,1);
pDC->TextOut(890, 350," 第五幅图 ",20 );
fpTemp.Open( cBmpName[result[4]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,795,200,1);
pDC->TextOut(100, 545," 第六幅图 ",20 );
fpTemp.Open( cBmpName[result[5]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,5,395,1);
pDC->TextOut(495, 545," 第七幅图 ",20 );
fpTemp.Open( cBmpName[result[6]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,400,395,1);
pDC->TextOut(890, 545," 第八幅图 ",20 );
fpTemp.Open( cBmpName[result[7]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,795,395,1);
pDC->TextOut(100, 740," 第九幅图 ",20 );
fpTemp.Open( cBmpName[result[8]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,5,590,1);
pDC->TextOut(495, 740," 第十幅图 ",20 );
fpTemp.Open( cBmpName[result[9]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,400,590,1);
pDC->TextOut(890, 740," 第十一幅图 ",20 );
fpTemp.Open( cBmpName[result[10]], CFile::modeRead );
dibTemp.Load( &fpTemp );
fpTemp.Close();
dibTemp.Draw(pDC,795,590,1);
}
}