資源簡介
基于BP神經網絡的原理,在C++平臺上制作而成的人臉識別軟件,能直接運行,也可以學習源碼后,整理并提升成為自己的東西!網上找的!賺分用 絕對值

代碼片段和文件信息
//?DIB.cpp
#include?“stdafx.h“
#include?“math.h“
#include?“DIB.h“
#define?BIG_DISTANCE?10000000L
#define?DIST(r1g1b1r2g2b2)?\
????(long)?(3L*(long)((r1)-(r2))*(long)((r1)-(r2))?+?\
????4L*(long)((g1)-(g2))*(long)((g1)-(g2))?+?\
????2L*(long)((b1)-(b2))*(long)((b1)-(b2)))
static?unsigned?char?masktable[]?=?{?0x800x400x200x100x080x040x020x01?};
CDIB::CDIB(HANDLE?hDibint?nBits)
{
m_pVoid?=?NULL;
m_pLinePtr?=?NULL;
m_bUseGamma=FALSE;
width=height=0;
if(hDib)
{
CreateFromHandle(hDibnBits);
}
}
CDIB::~CDIB()
{
DestroyDIB();
}
void?CDIB::DestroyDIB()
{
if(m_pVoid)?free(m_pVoid);
m_pVoid?=?NULL;
if(m_pLinePtr)?free(m_pLinePtr);
m_pLinePtr?=?NULL;
}
BOOL?CDIB::Create(int?width?int?height?int?bits)
{
//?Free?existing?image
DestroyDIB();
// ASSERT(bits?==?24?||?bits?==?8);
BITMAPINFOHEADER?bmInfo;
memset(&bmInfo0sizeof(BITMAPINFOHEADER));
bmInfo.biSize?=?sizeof(BITMAPINFOHEADER);
bmInfo.biWidth?=?width;
bmInfo.biHeight?=?height;
bmInfo.biPlanes?=?1;
bmInfo.biBitCount?=?(USHORT)bits;
bmInfo.biCompression?=?BI_RGB;
return?Create(bmInfo);
}
BOOL?CDIB::Create(BITMAPINFOHEADER&?bmInfo)
{
DestroyDIB();
bytes?=?(bmInfo.biBitCount*bmInfo.biWidth)>>3;
height?=?bmInfo.biHeight;
width?=?bmInfo.biWidth;
// bmInfo.biHeight?*=?-1;
while(bytes%4)?bytes++;
int?size;
size?=?sizeof(BITMAPINFOHEADER)?+?sizeof(RGBQUAD)*GetPaletteSize(bmInfo)?+?bytes*height;
m_pVoid?=?(void?*)malloc(size);
if(!m_pVoid)?return?FALSE;
m_pInfo?=?(PBITMAPINFO?)m_pVoid;
memcpy((void?*)&m_pInfo->bmiHeader(void?*)&bmInfosizeof(BITMAPINFOHEADER));
m_pRGB?=?(RGBQUAD?*)((unsigned?char?*)m_pVoid?+?sizeof(BITMAPINFOHEADER))?;
m_pBits?=?(unsigned?char?*)(m_pVoid)?+?sizeof(BITMAPINFOHEADER)?+?sizeof(RGBQUAD)*GetPaletteSize();
int?i;
BYTE?**ptr;
m_pLinePtr?=?(BYTE?**)malloc(sizeof(BYTE?*)*height);
if(!m_pLinePtr)?return?FALSE;
for(i=0ptr=m_pLinePtr;?i? {
//*ptr?=?(int)(m_pBits)+(i*bytes);
//*ptr?=?(int)GetLinePtr(i);
*ptr?=?m_pBits?+?(height-i-1)*bytes;
}
m_nFlags?=?0;
return?TRUE;
}
void?CDIB::SetPalette(unsigned?char?*palette)
{
int?isize;
RGBQUAD?*rgb;
if(!palette)?return;
size?=?GetPaletteSize();
for(i=0rgb?=?m_pRGB;?i? {
if(m_bUseGamma)
{
rgb->rgbRed?=?Gamma[palette[0]];
rgb->rgbGreen?=?Gamma[palette[1]];
rgb->rgbBlue?=?Gamma[palette[2]];
}
else
{
rgb->rgbRed?=?palette[0];
rgb->rgbGreen?=?palette[1];
rgb->rgbBlue?=?palette[2];
}
rgb->rgbReserved?=?(BYTE)0;
}
}
void?CDIB::SetPalette(RGBQUAD?*pRGB)
{
int?size;
if(!pRGB)?return;
size?=?GetPaletteSize();
memcpy(m_pRGBpRGBsize*sizeof(RGBQUAD));
}
int?CDIB::GetPaletteSize()
{
return?GetPaletteSize(m_pInfo->bmiHeader);
}
int?CDIB::GetPaletteSize(BITMAPINFOHEADER&?bmInfo)
{
switch(bmInfo.biBitCount)
{
case?1:
return?2;
case?4:
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????90112??2010-06-04?12:54??BP神經網絡實現人臉識別\facerecognization.dll
?????文件?????163840??2010-06-04?12:54??BP神經網絡實現人臉識別\BPNNTest.exe
?????文件??????91534??2010-06-04?13:32??BP神經網絡實現人臉識別\facerecognization.rar
?????文件?????????32??2010-06-04?13:42??BP神經網絡實現人臉識別\reg_ax.bat
?????文件???13950957??2010-08-22?21:58??BP神經網絡實現人臉識別\bpnn_error_list.txt
?????文件?????461312??2010-08-28?20:52??BP神經網絡實現人臉識別\BP神經網絡演示程序及代碼說明.doc
?????文件????????763??2010-05-28?21:52??BP神經網絡實現人臉識別\facerecognization\BPNNTest\aboutdlg.cpp
?????文件???????1290??2010-05-28?21:46??BP神經網絡實現人臉識別\facerecognization\BPNNTest\aboutdlg.h
?????文件???????3140??2010-06-04?13:01??BP神經網絡實現人臉識別\facerecognization\BPNNTest\BPNNTest.clw
?????文件???????1408??2010-05-28?21:35??BP神經網絡實現人臉識別\facerecognization\BPNNTest\BPNNTest.cpp
?????文件???????5163??2010-05-30?18:10??BP神經網絡實現人臉識別\facerecognization\BPNNTest\BPNNTest.dsp
?????文件?????????15??2010-05-28?21:35??BP神經網絡實現人臉識別\facerecognization\BPNNTest\BPNNTest.h
?????文件???????6135??2010-06-04?12:54??BP神經網絡實現人臉識別\facerecognization\BPNNTest\BPNNTest.plg
?????文件??????12750??2010-06-04?12:52??BP神經網絡實現人臉識別\facerecognization\BPNNTest\BPNNTest.rc
?????文件??????17403??2010-06-04?12:42??BP神經網絡實現人臉識別\facerecognization\BPNNTest\maindlg.cpp
?????文件???????3890??2010-06-04?11:37??BP神經網絡實現人臉識別\facerecognization\BPNNTest\maindlg.h
?????文件????????590??2010-05-28?21:35??BP神經網絡實現人臉識別\facerecognization\BPNNTest\res\BPNNTest.exe.manifest
?????文件???????1078??2010-05-28?21:35??BP神經網絡實現人臉識別\facerecognization\BPNNTest\res\BPNNTest.ico
?????文件???????1722??2010-06-03?21:18??BP神經網絡實現人臉識別\facerecognization\BPNNTest\resource.h
?????文件????????285??2010-05-28?21:35??BP神經網絡實現人臉識別\facerecognization\BPNNTest\stdafx.cpp
?????文件????????973??2010-05-29?00:02??BP神經網絡實現人臉識別\facerecognization\BPNNTest\stdafx.h
?????文件??????12828??2010-06-04?12:24??BP神經網絡實現人臉識別\facerecognization\BPNNTest\TrainingSet.cpp
?????文件???????2755??2010-06-04?11:15??BP神經網絡實現人臉識別\facerecognization\BPNNTest\TrainingSet.h
?????文件??????24280??2010-09-03?09:34??BP神經網絡實現人臉識別\facerecognization\BPNNTest\RCb02948
?????文件??????24280??2010-09-03?09:39??BP神經網絡實現人臉識別\facerecognization\BPNNTest\RCc02948
?????文件??????24280??2010-09-03?09:32??BP神經網絡實現人臉識別\facerecognization\BPNNTest\RCa02948
?????文件??????10290??2010-06-03?20:29??BP神經網絡實現人臉識別\facerecognization\common\BPNN.cpp
?????文件???????2342??2010-06-03?21:13??BP神經網絡實現人臉識別\facerecognization\common\BPNN.h
?????文件???????2375??2010-05-30?13:31??BP神經網絡實現人臉識別\facerecognization\common\PGMFile.cpp
?????文件????????995??2010-06-03?15:24??BP神經網絡實現人臉識別\facerecognization\common\PGMFile.h
............此處省略102個文件信息
- 上一篇:Cholesky MPI并行C語言實現
- 下一篇:C++ 寫的串口通信 DLL文件
評論
共有 條評論