資源簡介
檢測兩幅圖像的特征點,然后計算出特征點之間的距離,距離以像素為單位,只能檢測灰度圖,并可以對圖像做幾何與灰度值的處理

代碼片段和文件信息
#include?“stdafx.h“
#include?“windowsx.h“
#include?“math.h“
#include?“Dib.h“
#define?WIDTHBYTES(bits)????(((bits)?+?31)?/?32?*?4)?
CDib::CDib()
{
size=0;
}
CDib::~CDib()
{
????GlobalFreePtr(m_pBitmapInfo);
}
void?CDib::LoadFile(const?char*?dibFileName)
{
strcpy(m_fileNamedibFileName);
????CFile?dibFile(m_fileName?CFile::modeRead);
????dibFile.Read((void*)&bitmapFileHeadersizeof(BITMAPFILEHEADER));
????if?(bitmapFileHeader.bfType?==?0x4d42)
????{
????????DWORD?fileLength?=?dibFile.GetLength();????
size?=?fileLength?-sizeof(BITMAPFILEHEADER);
pDib?=(BYTE*)GlobalAllocPtr(GMEM_MOVEABLE?size);
????????dibFile.Read((void*)pDib?size);
????????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)?//?No?color?table
m_pRGB?=?NULL;
????????m_pBitmapInfoHeader->biSizeImage?=?GetSize();
m_valid?=?TRUE;
????}????
????else
????{
????????m_valid?=?FALSE;
????????AfxMessageBox(“This?isn‘t?a?bitmap?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;
????}
}
void?CDib::SetWidth(UINT?width)
{
m_pBitmapInfoHeader->biWidth=width;
}
void?CDib::SetHeight(UINT?height)
{
m_pBitmapInfoHeader->biHeight=height;
}
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()
{
????return?m_pBitmapInfo;
}
WORD?CDib::PaletteSize(LPBYTE?lpDIB)?
{?
????return?(DIBNumColors(lpDIB)?*?sizeof(RGBTRIPLE));?
}?
WORD?CDib::DIBNumColors(LPBYTE?lpDIB)?
{?
????WORD?wBitCount;??//?DIB?bit?coun
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2695??2011-09-02?14:09??dutu\dutu.clw
?????文件???????4263??2011-05-19?13:18??dutu\ReadMe.txt
?????文件???????1334??2011-05-19?13:18??dutu\dutu.h
?????文件???????1054??2011-05-19?13:18??dutu\StdAfx.h
?????文件????????206??2011-05-19?13:18??dutu\StdAfx.cpp
?????文件???????1689??2011-05-26?11:06??dutu\MainFrm.h
?????文件???????3019??2011-05-26?11:06??dutu\MainFrm.cpp
?????文件????????533??2011-05-19?13:18??dutu\dutu.dsw
?????文件?????246784??2011-09-02?14:10??dutu\dutu.ncb
?????文件????????242??2011-09-02?14:09??dutu\dutu.plg
?????文件???????1625??2011-05-19?13:41??dutu\DutuWiew1.h
?????文件???????4954??2011-05-19?13:41??dutu\DutuWiew1.cpp
?????文件???????4173??2011-05-20?15:31??dutu\dutu.cpp
?????文件????????953??2011-05-20?15:38??dutu\pingyi.cpp
?????文件????????914??2011-05-20?16:12??dutu\Dib.h
?????文件???????3936??2011-05-20?16:13??dutu\Dib.cpp
?????文件???????1190??2011-05-20?16:16??dutu\pingyi.h
?????文件??????10977??2011-05-23?14:09??dutu\dutu.rc
?????文件???????1104??2011-05-23?10:18??dutu\Resource.h
?????文件??????28548??2011-08-27?09:42??dutu\dutu.aps
?????文件???????4892??2011-05-24?15:39??dutu\dutu.dsp
?????文件???????2015??2011-05-25?15:36??dutu\dutuDoc.cpp
?????文件???????1460??2011-05-20?19:55??dutu\dutuDoc.h
?????文件???????1031??2011-05-24?17:13??dutu\JiHeBianHuan.h
?????文件??????19891??2011-05-24?17:30??dutu\JiHeBianHuan.cpp
?????文件???????2338??2011-05-26?10:48??dutu\dutuView.h
?????文件???????9874??2011-05-26?10:50??dutu\dutuView.cpp
?????文件?????308278??2006-03-01?10:37??dutu\10.bmp
?????文件?????308278??2006-03-01?10:36??dutu\4.bmp
?????文件?????308278??2006-03-01?10:37??dutu\6.bmp
............此處省略41個文件信息
評論
共有 條評論