资源简介
基于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 < height; i++ptr++)
{
//*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 < size; i++rgb++palette+=3)
{
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文件
相关资源
- accelerated c++ 英文版及源码
- VC++药品信息管理系统源码
- svm算法源代码VC++实现
- visual c++ 网络编程 郑阿奇 源码
- DBMS课程设计C语言实现全部源码与设计
- c语言版的类似qq源码
- 基于物品的协同过滤推荐算法 c++实现
- Qt中的c++技术源代码
- 源码:MFC按钮重绘-图书管理系统ADO
- c++邻接矩阵源码
- C++Builder数据库开发经典案例解析+(完
- 大鱼吃小鱼游戏VC++源码
- [推荐源码]C++飞鸽传书服务器客户端源
- Visual C++利用OpenCV对图像进行人脸识别
- c++标准程序库《》侯杰
- 仿QQ登陆聊天界面源码C++
- MFC基于逆波兰算法的四则运算计算器
- 简单回合制游戏C++
- C++语言程序设计(郑莉) 源码
- Nehe的OpenGL教程电子书(chm格式)中文
- C++学生信息管理系统源码+数据库+文档
- 郝斌C语言180课PPT及源码
- C++飞鸽源代码、飞鸽传书源码详解、
- c源码与c++各种小程序源码
- 用C语言编写的经典小游戏
- 冒险岛c++服务端源码
- Gerver View 源码
- VC++ ftp 服务器客户端毕业设计源码
- 变频器源码 DSPIC30F5015电机控制专用芯
- EM算法源码C++硬币问题
评论
共有 条评论