亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? faceview.cpp

?? 本vc++代碼實(shí)現(xiàn)了人臉檢測(cè)系統(tǒng)
?? CPP
字號(hào):
// faceView.cpp : implementation of the CFaceView class
//

#include "stdafx.h"
#include "face.h"
#include "DIB.h"
#include "faceDoc.h"
#include "faceView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern class DIB gDib;
extern HANDLE hDIB;
extern HANDLE hDIBTemp;
extern int gheight;
extern int gwidth;
extern WORD gwBytesPerLine;
/////////////////////////////////////////////////////////////////////////////
// CFaceView

IMPLEMENT_DYNCREATE(CFaceView, CScrollView)

BEGIN_MESSAGE_MAP(CFaceView, CScrollView)
	//{{AFX_MSG_MAP(CFaceView)
	ON_COMMAND(ID_ERASION, OnErasion)
	ON_COMMAND(ID_EYEMAP, OnEyemap)
	ON_COMMAND(ID_EYEMAPC, OnEyemapc)
	ON_COMMAND(ID_EYEMAPL, OnEyemapl)
	ON_COMMAND(ID_GET_FACE_AREA, OnGetFaceArea)
	ON_COMMAND(ID_LIGHTINGCONPENSATE, OnLightingconpensate)
	ON_COMMAND(ID_SKINTONE, OnSkintone)
	ON_COMMAND(ID_DELETE_FALSE_AREA, OnDeleteFalseArea)
	ON_COMMAND(ID_DILATION, OnDilation)
	ON_COMMAND(ID_ERASION_AGAIN, OnErasionAgain)
	ON_COMMAND(ID_DILATION_FIRST, OnDilationFirst)
	ON_COMMAND(ID_EYE_CB, OnEyeCb)
	ON_COMMAND(ID_EYE_Cr, OnEYECr)
	ON_COMMAND(ID_DELETE_FALSE_EYE, OnDeleteFalseEye)
	ON_COMMAND(ID_DELETESCATER, OnDeletescater)
	ON_COMMAND(ID_MOUSEMAP, OnMousemap)
	ON_COMMAND(ID_ERASION_MOUSE, OnErasionMouse)
	ON_COMMAND(ID_MOUTH_CENTER, OnMouthCenter)
	ON_COMMAND(ID_DILATION_EYE, OnDilationEye)
	ON_COMMAND(ID_EYE_CENTER, OnEyeCenter)
	ON_COMMAND(ID_GOULE_FACE, OnGouleFace)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFaceView construction/destruction

CFaceView::CFaceView()
{
	lpRgb = NULL;
	lpYcc = NULL;
	faceNum = 0;
	for(int i=0; i<ImgRange; i++)
		for (int j=0; j<ImgRange; j++)
		{
			this->emymapc[i][j] = false;
			this->emymapl[i][j] = false;
			this->lab[i][j] = false;
		}
	this->result = false;
}

CFaceView::~CFaceView()
{
}

BOOL CFaceView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CFaceView drawing

void CFaceView::OnDraw(CDC* pDC)
{
	CFaceDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if(hDIB)
		gDib.PaintDIBTrue(pDC->GetSafeHdc(),CRect(0,0,gwidth,gheight),hDIB,CRect(0,0,gwidth,gheight),SRCCOPY);
	
	// TODO: add draw code for native data here
}

void CFaceView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CSize sizeTotal;
	// TODO: calculate the total size of this view
	sizeTotal.cx = sizeTotal.cy = 100;
	SetScrollSizes(MM_TEXT, sizeTotal);
}

/////////////////////////////////////////////////////////////////////////////
// CFaceView printing

BOOL CFaceView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CFaceView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CFaceView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CFaceView diagnostics

#ifdef _DEBUG
void CFaceView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CFaceView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CFaceDoc* CFaceView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFaceDoc)));
	return (CFaceDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFaceView message handlers

void CFaceView::OnErasion() 
{
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	Invalidate();
	
}

void CFaceView::OnEyemap() 
{
	LPBYTE lpData;
	long lOffset;
	lpData = gDib.FindDIBBits(hDIB);
	for (int i=0; i<gheight; i++)
		for (int j=0; j<gwidth; j++)
		{
			lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);
			if( this->emymapc[i][j] && this->emymapl[i][j])
			{
				*(lpData + lOffset++) = 255;
				*(lpData + lOffset++) = 255;
				*(lpData + lOffset++) = 255;
			}

			else
			{
				*(lpData + lOffset++) = 0;
				*(lpData + lOffset++) = 0;
				*(lpData + lOffset++) = 0;
			}
		}
	Invalidate();
}

void CFaceView::OnEyemapc() 
{	
	LPBYTE lpData;
	if(lpYcc)
		delete[] lpYcc;
	lpYcc = new BYTE[gwBytesPerLine * gheight];
	 gDib.RgbtoYcb(hDIBTemp,lpYcc);
	 
	GlobalLock(hDIB);
	lpData = gDib.FindDIBBits(hDIB);
	//memcpy(lpData,gDib.YcctoRgb(lpYcc,gwBytesPerLine,gheight,gwidth),gwBytesPerLine*gheight);

	gDib.EyeMapC(lpData,lpYcc,gwBytesPerLine,CRect(0,0,gwidth-1,gheight-1));
	for(int i=0; i<gheight; i++)
		for (int j=0; j<gwidth; j++)
		{
			long lOffset;
			lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);
			if(*(lpData + lOffset) == 255)
			{
				this->emymapc[i][j] = true;
			}
		}
	GlobalUnlock(hDIB);
	Invalidate();
	
}

void CFaceView::OnEyemapl() 
{
	LPBYTE lpDataR,lpDataD;
	if(lpYcc)
		delete[] lpYcc;
	GlobalLock(hDIBTemp);
	lpDataR = gDib.FindDIBBits(hDIBTemp);
	lpYcc = new BYTE[gwBytesPerLine * gheight];
	gDib.RgbtoYcb(hDIBTemp,lpYcc);
	lpDataD = gDib.FindDIBBits(hDIB);
	memcpy(lpDataD,lpDataR,gwBytesPerLine*gheight);
	gDib.EyeMapL(lpDataD,gwBytesPerLine, CRect(0,0,gwidth-1,gheight-1));
	for (int i=0; i<gheight; i++)
		for (int j=0; j<gwidth; j++)
		{
			long lOffset;
			lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);
			if(*(lpDataD + lOffset) == 255)
			{
				this->emymapl[i][j] = true;
			}
		}
		GlobalUnlock(hDIBTemp);
	Invalidate();
	
}

void CFaceView::OnGetFaceArea() 
{
	gDib.FaceLocate(hDIB,faceLocation,faceNum);
	Invalidate();
	
}

void CFaceView::OnLightingconpensate() 
{	
	hDIBTemp = gDib.CopyHandle(hDIB);
	gDib.LightingCompensate(hDIB);
	GlobalUnlock(hDIB);
	Invalidate();
	
}

void CFaceView::OnSkintone() 
{	
	lpYcc = new BYTE[gwBytesPerLine * gheight];
	gDib.RgbtoYcb(hDIB,lpYcc);
	gDib.YccTransform(lpYcc, gwBytesPerLine,gheight,gwidth);
	gDib.faceear(lpYcc,gwBytesPerLine,gheight,gwidth,flag);
	
	LPBYTE lpData = (LPBYTE)GlobalLock(hDIB)+sizeof(BITMAPINFOHEADER);
	
	for (int i=0; i<gheight; i++)
		for (int j=0; j<gwidth; j++)
		{	
			long lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);
			if (flag[i][j] == true)
			{
				*(lpData + lOffset++) = 255;
				*(lpData + lOffset++) = 255;
				*(lpData + lOffset++) = 255;
			}
			else
			{
				*(lpData + lOffset++) = 0;
				*(lpData + lOffset++) = 0;
				*(lpData + lOffset++) = 0;
			}
		}
		
		GlobalUnlock(hDIB);
		Invalidate();
}

void CFaceView::OnDeleteFalseArea() 
{
	gDib.ErasionFalseArea(hDIB);
	
	Invalidate();
	
}

void CFaceView::OnDilation() 
{
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	
	

	Invalidate();
	
}

void CFaceView::OnErasionAgain() 
{
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	gDib.Erasion(hDIB);
	LPBYTE lpData;
	GlobalLock(hDIB);
	lpData = gDib.FindDIBBits(hDIB);
	for (int i=0;i<gheight; i++)
		for (int j=0; j<gwidth; j++)
		{
			long lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);
			if(*(lpData + lOffset) == 255)
			{
				this->lab[i][j] = true;
			}
		}
	GlobalUnlock(hDIB);
	Invalidate();
	
}

void CFaceView::OnDilationFirst() 
{
	gDib.Dilation(hDIB);
	gDib.Dilation(hDIB);
	Invalidate();
	
}

void CFaceView::OnEyeCb() 
{	
	lpRB = new BYTE[gwBytesPerLine * gheight];
	gDib.RgbtoYcb(hDIBTemp,lpRB);
	LPBYTE lpData =gDib.FindDIBBits(hDIB);
	gDib.EyeMapb(lpData,lpRB,gwBytesPerLine,CRect(0,0,gwidth-1,gheight-1));
	Invalidate();
	
}

void CFaceView::OnEYECr() 
{
	lpRB = new BYTE[gwBytesPerLine * gheight];
	gDib.RgbtoYcb(hDIBTemp,lpRB);
	LPBYTE lpData =gDib.FindDIBBits(hDIB);
	gDib.EyeMapR(lpData,lpRB,gwBytesPerLine,CRect(0,0,gwidth-1,gheight-1));
	Invalidate();
}

void CFaceView::OnDeleteFalseEye() 
{
	gDib.DeleteFasleEye(hDIB,faceLocation[0]);
	Invalidate();
}

void CFaceView::OnDeletescater() 
{
	gDib.DeleteScatePoint(hDIB);
	gDib.Dilation(hDIB);
	Invalidate();
	
}

void CFaceView::OnMousemap() 
{	
	if(lpYcc)
		delete [] lpYcc;
	lpYcc = new BYTE[gwBytesPerLine * gheight];
	if(!lpYcc)
		return;
	gDib.RgbtoYcb(hDIBTemp,lpYcc);
	LPBYTE lpData = gDib.FindDIBBits(hDIB);
	gDib.MouseMap(lpData,lpYcc,gwBytesPerLine,CRect(0,0,gwidth-1,gheight-1));
	//gDib.Erasion2(hDIB);
	
	Invalidate();
	

	
}

void CFaceView::OnErasionMouse() 
{
	gDib.Erasion2(hDIB);
	//gDib.DeleteScatePoint(hDIB);
	//gDib.Dilation(hDIB);
	//gDib.Dilation(hDIB);
	//gDib.DeleteScatePoint(hDIB);
	Invalidate();
}

void CFaceView::OnMouthCenter() 
{
	gDib.MouthCenter(hDIB,CRect(0,0,gwidth-1,gheight-1),mouthLocation);
	this->result = true;
	Invalidate();
}

void CFaceView::OnDilationEye() 
{
	gDib.Dilation(hDIB);
	Invalidate();
		
}

void CFaceView::OnEyeCenter() 
{
	gDib.EyeCenter(hDIB,CRect(0,0,gwidth-1,gheight-1),eye1,eye2);
	Invalidate();
}

void CFaceView::OnGouleFace() 
{
	gDib.EllipseFace(hDIBTemp,this->mouthLocation,this->eye1,this->eye2);
	if(hDIB)
		GlobalFree(hDIB);
	hDIB = gDib.CopyHandle(hDIBTemp);
	Invalidate();
	
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文久久乱码一区二区| 欧美亚一区二区| 国产日韩欧美综合在线| 国产电影一区在线| 国产日产精品1区| 高清视频一区二区| 亚洲欧美视频一区| 欧美视频在线观看一区二区| 亚洲成va人在线观看| 日韩一区二区三区视频| 国产一区二区调教| 一区免费观看视频| 欧美色男人天堂| 久久国产麻豆精品| 亚洲国产精华液网站w| 91香蕉视频污在线| 婷婷六月综合亚洲| 久久久久国色av免费看影院| 91免费视频观看| 三级欧美韩日大片在线看| 精品福利一二区| 91老司机福利 在线| 日韩国产欧美视频| 国产欧美日韩视频在线观看| 色诱视频网站一区| 毛片一区二区三区| 中文字幕在线不卡国产视频| 欧美肥大bbwbbw高潮| 国产成人鲁色资源国产91色综| 亚洲精品高清视频在线观看| 日韩一级高清毛片| 色悠悠亚洲一区二区| 久久99精品久久久久婷婷| 亚洲欧洲韩国日本视频| 日韩一卡二卡三卡四卡| 97久久超碰国产精品电影| 男女男精品视频| 亚洲美女免费视频| 精品噜噜噜噜久久久久久久久试看 | 国产乱子伦视频一区二区三区| 国产精品久久久久久久浪潮网站 | 久久精品久久精品| 亚洲天堂免费看| 欧美精品一区二区三| 色综合久久久久综合体桃花网| 麻豆精品蜜桃视频网站| 一片黄亚洲嫩模| 中日韩av电影| 日韩欧美一区电影| 欧美三电影在线| caoporen国产精品视频| 国内外成人在线视频| 五月天视频一区| 亚洲精品欧美二区三区中文字幕| 精品免费视频一区二区| 欧美剧在线免费观看网站| 99精品国产热久久91蜜凸| 国产一区二区导航在线播放| 三级久久三级久久久| 一区二区三区免费网站| 国产日产精品1区| 久久蜜桃一区二区| 欧美一级xxx| 欧美日韩国产影片| 在线视频你懂得一区| 91在线视频在线| 成人综合在线观看| 国产成人精品aa毛片| 国内精品久久久久影院薰衣草| 爽好久久久欧美精品| 五月综合激情网| 午夜视频久久久久久| 亚洲v精品v日韩v欧美v专区| 亚洲女与黑人做爰| 亚洲欧美另类在线| 一区二区三区日本| 亚洲高清免费观看| 亚洲成人午夜电影| 婷婷综合久久一区二区三区| 视频一区视频二区中文| 美女免费视频一区| 老汉av免费一区二区三区| 久久精品99国产精品| 日韩高清电影一区| 久久99国内精品| 国产成人av一区二区| 成人高清视频在线观看| 不卡的电视剧免费网站有什么| www.日韩在线| 91成人看片片| 欧美日韩国产成人在线91| 欧美日韩高清影院| 日韩免费看的电影| 国产亚洲欧美日韩在线一区| 国产婷婷色一区二区三区四区| 国产精品久久一卡二卡| 亚洲日本电影在线| 午夜欧美一区二区三区在线播放| 日本亚洲免费观看| 国产精品一区二区x88av| 处破女av一区二区| 欧美午夜精品一区| 精品国产一区二区在线观看| 国产精品色一区二区三区| 亚洲日本一区二区| 美女性感视频久久| 国产suv精品一区二区6| 色嗨嗨av一区二区三区| 日韩视频国产视频| 国产精品国产三级国产普通话三级 | 亚洲色图.com| 免费观看久久久4p| 波多野结衣精品在线| 欧美色视频在线观看| 久久美女高清视频| 亚洲免费在线看| 精品无人码麻豆乱码1区2区 | 偷窥国产亚洲免费视频| 国产精品一二三区在线| 欧美中文字幕久久| 国产亚洲欧美一区在线观看| 亚洲国产成人91porn| 夫妻av一区二区| 欧美一区二区三区公司| 中文字幕一区在线| 日本不卡在线视频| 色综合一个色综合| 久久色.com| 日日夜夜精品视频天天综合网| 国产精品456露脸| 欧美日韩亚洲不卡| 亚洲日本护士毛茸茸| 国产一区二区三区免费在线观看| 欧美性极品少妇| 中文字幕日韩一区二区| 国产做a爰片久久毛片| 欧美精品自拍偷拍| 亚洲男同性视频| 国产成人高清在线| 精品久久国产老人久久综合| 亚洲一区二区三区四区中文字幕| 国产酒店精品激情| 精品国产伦一区二区三区观看方式| 一区二区三区在线不卡| 99精品视频一区二区| 久久蜜桃av一区二区天堂| 蜜臀国产一区二区三区在线播放| 欧美影视一区二区三区| 国产精品国产a| 国产成人a级片| 久久精品在这里| 久久爱www久久做| 日韩欧美综合在线| 美洲天堂一区二卡三卡四卡视频| 欧美巨大另类极品videosbest| 亚洲婷婷国产精品电影人久久| 国产精品亚洲综合一区在线观看| 精品处破学生在线二十三| 日本午夜精品一区二区三区电影 | 欧美高清视频不卡网| 亚洲三级在线免费| 色婷婷激情久久| 亚洲一区二区三区中文字幕| 色诱视频网站一区| 一级女性全黄久久生活片免费| 一本高清dvd不卡在线观看| 亚洲欧洲av在线| 97久久人人超碰| 亚洲少妇30p| 色国产精品一区在线观看| 中文字幕视频一区| 91久久精品日日躁夜夜躁欧美| 亚洲品质自拍视频网站| 91成人免费网站| 丝袜亚洲另类欧美| 欧美不卡视频一区| 国产91富婆露脸刺激对白| 国产精品丝袜91| 一本色道久久综合狠狠躁的推荐| 亚洲免费高清视频在线| 欧美亚洲国产一卡| 午夜不卡av在线| 精品欧美乱码久久久久久| 国产精品99久久久久久似苏梦涵| 国产午夜精品美女毛片视频| 成人免费毛片片v| 亚洲国产日产av| 精品日韩av一区二区| 国产精一品亚洲二区在线视频| 国产精品久久午夜| 91官网在线免费观看| 日本怡春院一区二区| 久久久精品免费免费| 一本色道综合亚洲| 美女视频黄频大全不卡视频在线播放| 久久亚洲综合色一区二区三区| 白白色亚洲国产精品| 日韩高清一区在线| 国产精品久久久久久一区二区三区| 欧洲一区二区三区在线|