資源簡介
VC++ mfc,基于序貫相似性算法SSDA的圖像匹配識別定位程序、測試圖片及源代碼
代碼片段和文件信息
//?DIB.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“Shibie.h“
#include?“DIB.h“
#include?“windowsx.h“
#include?“math.h“
#define?WIDTHBYTES(bits)?(((bits)+31)/32*4)
#define??XX?100
#define???YY?50
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
int?f=0;
//extern?int?f
/////////////////////////////////////////////////////////////////////////////
//?CDIB?dialog
CDIB::CDIB()
{
}
CDIB::~CDIB()
{
GlobalFreePtr(m_pBitmapInfo);
}
void?CDIB::DoDataExchange(CDataExchange*?pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDIB)
//?NOTE:?the?ClassWizard?will?add?DDX?and?DDV?calls?here
//}}AFX_DATA_MAP
}
void?CDIB::LoadFile(const?char?*dibFileName)
{
strcpy(m_fileNamedibFileName);
CFile?dibFile(m_fileNameCFile::modeRead);
dibFile.Read((void*)&bitmapFileHeadersizeof(BITMAPFILEHEADER));
if(bitmapFileHeader.bfType==0X4d42)
{
DWORD?fileLength=dibFile.GetLength();
DWORD?size=fileLength-sizeof(BITMAPFILEHEADER);
BYTE*pDib=(BYTE*)GlobalAllocPtr(GMEM_MOVEABLEsize);
dibFile.Read((void*)pDibsize);
dibFile.Close();
m_pBitmapInfo=(BITMAPINFO*)pDib;
m_pBitmapInfoHeader=(BITMAPINFOHEADER*)pDib;
????????
m_pRGB=(RGBQUAD*)(pDib+m_pBitmapInfoHeader->biSize);
int?m_numberOfColors=GetNumberOfColors();
if(m_pBitmapInfoHeader->biClrUsed==0)
m_pBitmapInfoHeader->biClrUsed=m_numberOfColors;
DWORD?colorTableSize=m_numberOfColors*sizeof(RGBQUAD);
m_pData=pDib+m_pBitmapInfoHeader->biSize+colorTableSize;
if(m_pRGB==(RGBQUAD*)m_pData)
m_pRGB=NULL;
m_pBitmapInfoHeader->biSizeImage=GetSize();
m_valid=TRUE;
f=1;
if(m_pBitmapInfoHeader->biBitCount>=9)
{?AfxMessageBox(“不支持真彩色圖像!“);
????????????m_valid=FALSE;
}
}
else
{
m_valid=FALSE;
//if((bitmapFileHeader.biBitCount>=9)
????????//?????AfxMessageBox(“不支持真彩色圖像!“);
//else
AfxMessageBox(“This?isn‘t?abitmap?file!“);
}
}
BOOL?CDIB::IsValid()
{
return?m_valid;
}
char*?CDIB::GetFileName()
{
return?m_fileName;
}
UINT?CDIB::GetWidth()
{
return?(UINT)m_pBitmapInfoHeader->biWidth;
}
UINT?CDIB::GetHeight()
{
return?(UINT)m_pBitmapInfoHeader->biHeight;
}
DWORD?CDIB::GetSize()
{
if(m_pBitmapInfoHeader->biSizeImage!=0)
return?m_pBitmapInfoHeader->biSizeImage;
else
{
DWORD?height=(DWORD)GetHeight();
DWORD?width=(DWORD)GetWidth();
return?height*width;
}
}
UINT?CDIB::GetNumberOfColors()
{
int?numberOfColors;
if((m_pBitmapInfoHeader->biClrUsed==0)&&(m_pBitmapInfoHeader->biBitCount<9))
{
switch(m_pBitmapInfoHeader->biBitCount)
{
???????????case?1:numberOfColors=2;break;
???case?4:numberOfColors=16;break;
???????????case?8:numberOfColors=256;
}
}
else?
numberOfColors=(int)m_pBitmapInfoHeader->biClrUsed;
return?numberOfColors;
}
BYTE?*CDIB::GetData()
{
return?m_pData;
}
RGBQUAD?*CDIB::GetRGB()
{
return?m_pRGB;
}
BITMAPINFO?*CDIB::GetInfo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????308278??2009-08-04?14:18??序貫相似算法圖像匹配\111.bmp
?????文件?????308278??2009-08-04?14:19??序貫相似算法圖像匹配\222.bmp
?????文件?????308278??2009-08-04?14:20??序貫相似算法圖像匹配\333.bmp
?????文件???????2330??2008-11-13?00:14??序貫相似算法圖像匹配\Shibie\BMP10.dev
?????文件?????271360??2009-08-14?15:03??序貫相似算法圖像匹配\Shibie\BMP10.ncb
?????文件??????60928??2009-08-14?15:03??序貫相似算法圖像匹配\Shibie\BMP10.opt
?????文件??????26232??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\DIB.obj
?????文件??????25162??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\DIB.sbr
?????文件??????20624??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\MainFrm.obj
?????文件???????4957??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\MainFrm.sbr
?????文件?????135272??2009-08-14?15:40??序貫相似算法圖像匹配\Shibie\Debug\Shibie.exe
?????文件?????388928??2009-08-14?15:40??序貫相似算法圖像匹配\Shibie\Debug\Shibie.ilk
?????文件??????23653??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\Shibie.obj
?????文件???????7056??2009-08-14?15:09??序貫相似算法圖像匹配\Shibie\Debug\Shibie.res
?????文件???????8204??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\Shibie.sbr
?????文件??????15413??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\ShibieDoc.obj
?????文件???????3045??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\ShibieDoc.sbr
?????文件??????50872??2009-08-14?15:40??序貫相似算法圖像匹配\Shibie\Debug\ShibieView.obj
?????文件??????36650??2009-08-14?15:40??序貫相似算法圖像匹配\Shibie\Debug\ShibieView.sbr
?????文件?????106290??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\StdAfx.obj
?????文件????1375082??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\Debug\StdAfx.sbr
?????文件?????238592??2009-08-14?15:40??序貫相似算法圖像匹配\Shibie\Debug\vc60.idb
?????文件?????380928??2009-08-14?15:40??序貫相似算法圖像匹配\Shibie\Debug\vc60.pdb
?????文件???????6262??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\DIB.cpp
?????文件???????1831??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\DIB.h
?????文件???????3024??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\MainFrm.cpp
?????文件???????1497??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\MainFrm.h
?????文件???????1486??2008-11-23?16:07??序貫相似算法圖像匹配\Shibie\Makefile.win
?????文件???????4311??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\ReadMe.txt
?????文件???????1078??2009-08-14?15:05??序貫相似算法圖像匹配\Shibie\res\Shibie.ico
............此處省略38個文件信息
評論
共有 條評論