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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? facedetectdlg.cpp

?? 模式識別中人臉的檢測與定位所包含的算法程序(facedetect)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
		}
	}
	for(int i=0; i<m_nWndHeight; i++)
	{
		int count = 0;
		for(l = left;l<=right;l++)
		{
			if(method1->m_pBinaryArray[i][l] == 1) count++;
		}
		if(count>=(right-left)*0.5)
		{
			top = i;
			break;
		}
	}
	bottom = (int)(top+(right-left)*1.5)>=m_nWndHeight? m_nWndHeight-1:(int)(top+(right-left)*1.5);

	CopyBitMap(m_tResPixelArray,m_tOriPixelArray);

	for(i=top;i<=bottom;i++)
	{
		m_tResPixelArray[i][left].rgbBlue=255;
		m_tResPixelArray[i][left].rgbGreen = m_tResPixelArray[i][left].rgbRed = 0;
		m_tResPixelArray[i][right].rgbBlue=255;
		m_tResPixelArray[i][right].rgbGreen = m_tResPixelArray[i][right].rgbRed = 0;
	}
	for(j=left;j<=right;j++)
	{
		m_tResPixelArray[top][j].rgbBlue=255;
		m_tResPixelArray[top][j].rgbGreen = m_tResPixelArray[top][j].rgbRed = 0;
		m_tResPixelArray[bottom][j].rgbBlue=255;
		m_tResPixelArray[bottom][j].rgbGreen = m_tResPixelArray[bottom][j].rgbRed = 0;
	}
	MakeBitMap();
	SetCursor(LoadCursor(NULL,IDC_ARROW));			

	if(m_bFaceOK)
	{
		ReplaceDlg dlg;
		if(dlg.DoModal()==IDOK)
		{
			CopyBitMap(m_tResPixelArray,m_tOriPixelArray);
			CRect rect(left,top,right,bottom);
			m_rFaceRegion = rect;
			MakeBitMap();
		}
	}
	else
	{
		m_bFaceOK = true;
		CopyBitMap(m_tResPixelArray,m_tOriPixelArray);
		CRect rect(left,top,right,bottom);
		m_rFaceRegion = rect;
		MakeBitMap();
	}
}

////////////////////////////////////////////////////////////////////////////////
// 第二種方法標記臉部區(qū)域
////////////////////////////////////////////////////////////////////////////////
void CFaceDetectDlg::OnBtnMarkFace2() 
{
	if(!method2->m_bBinaryOK)
	{
		AfxMessageBox("請先計算二值化圖");
		return;
	}
	m_bShowFace = true;
	SetCursor(LoadCursor(NULL,IDC_WAIT));
	int *numR,*numB, i, j, left,right,top,bottom;
	int maxnumR = 0, maxnumB = 0;

	numR = new int[m_nWndWidth];
	numB = new int[m_nWndWidth];
	for(j=0;j<m_nWndWidth ;j++)
	{
		int countR = 0, countB = 0;
		for(i=0;i<m_nWndHeight;i++)
		{
			if(method2->m_pBinaryArray[i][j] == 0)
				countR++;
			if(method2->m_pBinaryArray[i][j] == 1)
				countB++;
		}
		if(countR > maxnumR) maxnumR = countR;
		numR[j] = countR;
		if(countB > maxnumB) maxnumB = countB;
		numB[j] = countB;
	}
	CList<CPoint,CPoint> myListR(sizeof(CPoint));
	CList<CPoint,CPoint> myListB(sizeof(CPoint));
	CPoint tempR,tempB;
	int flagR = 0,flagB = 0;
	for(j=0;j<m_nWndWidth ;j++)
	{
		if(flagR == 0)
		{
			if(numR[j]>maxnumR/2)
			{
				flagR = 1;
				tempR.x = j;				
			}
		}
		else
		{
			if(numR[j]<=maxnumR/2 || j==m_nWndWidth-1)
			{
				flagR = 0;
				tempR.y = j;
				myListR.AddTail(tempR);
			}
		}
		if(flagB == 0)
		{
			if(numB[j]>maxnumB/5)
			{
				flagB = 1;
				tempB.x = j;
			}
		}
		else
		{
			if(numB[j]<=maxnumB/5 || j==m_nWndWidth-1)
			{
				flagB = 0;
				tempB.y = j;
				if(myListB.GetCount() > 1 && (tempB.x-myListB.GetTail().y)<20)
					myListB.SetAt(myListB.GetTailPosition(),CPoint(myListB.GetTail().x,j));
				else
				myListB.AddTail(tempB);
			}
		}

	}	
	if(numR!=NULL)delete numR;
	if(numB!=NULL)delete numB;

	int *hairmark, k;
	hairmark = new int[m_nWndWidth];
	for(j=0;j<m_nWndWidth ;j++) hairmark[j]=0;

	for(k=0;k<myListB.GetCount();k++)
	{
		CPoint temp = myListB.GetAt(myListB.FindIndex(k));
		if((temp.y-temp.x)>m_nWndWidth/10)
		{
			for(int t = temp.x;t<=temp.y;t++)
			hairmark[t] = 1;
		}
	}

	for(k=0;k<myListR.GetCount();k++)
	{
		CPoint temp = myListR.GetAt(myListR.FindIndex(k));
		int templeft=-1;
		int tempright=-1;

		if((temp.y-temp.x)>m_nWndWidth/10)
		{
			for(int t=temp.x;t<=temp.y;t++)
			{
				if(hairmark[t]==1)
				{
					int endpos=t+(temp.y-temp.x)/5;
					if(endpos > temp.y)endpos = temp.y;
					int yes = 1;
					for(int q=t;q<=endpos;q++)
						if(hairmark[q]==0) yes = 0;
					if(yes == 1)
					{
						templeft = t;
						break;
					}
				}
			}
			for(int p=temp.y;p>=temp.x;p--)
			{
				if(hairmark[p]==1)
				{
					int beginpos=p-(temp.y-temp.x)/5;
					if(beginpos < temp.x)beginpos = temp.x;
					int yes = 1;
					for(int q=p;q>=beginpos;q--)
						if(hairmark[q]==0) yes = 0;
					if(yes == 1)
					{
						tempright = p;
						break;
					}
				}
			}
		}
		if(templeft!=-1 && tempright!=-1)
		{
			left = templeft;
			right = tempright;
			break;
		}
	}
	if(hairmark !=NULL) delete hairmark;
	myListR.RemoveAll();
	myListB.RemoveAll();

	if(left-m_nWndWidth/50>0) left-=(int)m_nWndWidth/50;
	else left = 0;
	if(right+m_nWndWidth/40>m_nWndWidth) right=m_nWndWidth-1;
	else right += m_nWndWidth/40;

	for(i=0; i<m_nWndHeight; i++)
	{
		int count = 0;
		for(int l = left;l<=right;l++)
		{
			if(method2->m_pBinaryArray[i][l] == 0) count++;
		}
		if(count>=(right-left)*0.5)
		{
			top = i;
			break;
		}
	}
	bottom = (int)(top+(right-left)*1.5)>=m_nWndHeight? m_nWndHeight-1:(int)(top+(right-left)*1.5);

	CopyBitMap(m_tResPixelArray,m_tOriPixelArray);

	for(i=top;i<=bottom;i++)
	{
		m_tResPixelArray[i][left].rgbBlue=255;
		m_tResPixelArray[i][left].rgbGreen = m_tResPixelArray[i][left].rgbRed = 0;
		m_tResPixelArray[i][right].rgbBlue=255;
		m_tResPixelArray[i][right].rgbGreen = m_tResPixelArray[i][right].rgbRed = 0;
	}
	for(j=left;j<=right;j++)
	{
		m_tResPixelArray[top][j].rgbBlue=255;
		m_tResPixelArray[top][j].rgbGreen = m_tResPixelArray[top][j].rgbRed = 0;
		m_tResPixelArray[bottom][j].rgbBlue=255;
		m_tResPixelArray[bottom][j].rgbGreen = m_tResPixelArray[bottom][j].rgbRed = 0;
	}
	MakeBitMap();
	SetCursor(LoadCursor(NULL,IDC_ARROW));			

	if(m_bFaceOK)
	{
		ReplaceDlg dlg;
		if(dlg.DoModal()==IDOK)
		{
			CopyBitMap(m_tResPixelArray,m_tOriPixelArray);
			CRect rect(left,top,right,bottom);
			m_rFaceRegion = rect;
			MakeBitMap();
		}
	}
	else
	{
		m_bFaceOK = true;
		CopyBitMap(m_tResPixelArray,m_tOriPixelArray);
		CRect rect(left,top,right,bottom);
		m_rFaceRegion = rect;
		MakeBitMap();
	}
}

////////////////////////////////////////////////////////////////////////////////
// 標記嘴巴
////////////////////////////////////////////////////////////////////////////////
void CFaceDetectDlg::OnBtnMarkMouse() 
{
	int i,j;
	if(!(m_bLeftEyeOK&&m_bRightEyeOK))
	{
		AfxMessageBox("請先確定眼睛");
		return;
	}
	//左右眼的水平區(qū)域
	int nLeft,nRight,nTop,nBottom;

	nLeft	= m_rFaceRegion.left-5  > 0 ? m_rFaceRegion.left-5:0;
	nRight	= m_rFaceRegion.right+5 < m_nWndWidth? m_rFaceRegion.right+5:m_nWndWidth-1;
	nTop	= m_rFaceRegion.top-5   > 0 ? m_rFaceRegion.top-5:0;
	nBottom = m_rFaceRegion.bottom+5< m_nWndHeight?m_rFaceRegion.bottom+5:m_nWndHeight-1;

	SetPixelArray(m_tResPixelArray,0);
	for(i=nTop; i<=nBottom; i++)
	for(j=nLeft; j<=nRight; j++)
	{
		BYTE R,G,B;
		double temp,dlta;
		R = m_tOriPixelArray[i][j].rgbRed;
		G = m_tOriPixelArray[i][j].rgbGreen;
		B = m_tOriPixelArray[i][j].rgbBlue;
		if((R==G) && (G==B)) temp = 0;
		else temp = 0.5*(2*R-G-B)/sqrt((R-G)*(R-G)+(R-B)*(G-B));
		dlta = acos(temp);
		if(dlta < 0.2)
		{
			m_tResPixelArray[i][j].rgbRed = 255;  
		}
		else m_tResPixelArray[i][j].rgbRed = 0;
	}

	MakeBitMap();
	AfxMessageBox("嘴的膚色鑒定");
	//雙目斜角
	double tanThta;
	if(m_RightEye.y == m_LeftEye.y) tanThta = 0;
	else tanThta = (m_RightEye.y - m_LeftEye.y)/(m_RightEye.x - m_LeftEye.x);
	//雙目距離
	int EyesDis = (m_RightEye.x-m_LeftEye.x)*(m_RightEye.x-m_LeftEye.x);
	EyesDis += (m_RightEye.y-m_LeftEye.y)*(m_RightEye.y-m_LeftEye.y);
	EyesDis = (int)sqrt(EyesDis);
	//雙目平均高度
	int EyeV    = (m_RightEye.y + m_LeftEye.y)/2;
	//可能的嘴的區(qū)域
	int MouthUp   = (EyeV+1.0*EyesDis) > nBottom ? nBottom:(int)(EyeV+1.0*EyesDis);
	int MouthDown = (EyeV+1.5*EyesDis) > nBottom ? nBottom:(int)(EyeV+1.5*EyesDis);


	int* Y_Arry = new int[MouthDown-MouthUp];
	for(i =0 ;i < MouthDown-MouthUp ;i++) Y_Arry[i] = 0;
	int* X_Arry = new int[EyesDis];
	for(i =0 ;i < EyesDis ;i++) X_Arry[i] = 0;
	for(i = MouthUp ; i < MouthDown; i++)
	for(j = m_LeftEye.x; j< m_RightEye.x; j++)
	{
		if(m_tResPixelArray[i][j].rgbRed == 255)
		{
			Y_Arry[i-MouthUp] ++;
			X_Arry[j-m_LeftEye.x] ++;
		}
	}
	
	int maxY = 0;
	for(i =0 ;i < MouthDown-MouthUp ;i++)
	{
		if(Y_Arry[i]>maxY)
		{
			maxY = Y_Arry[i];
			m_MidMouth.y =  i+MouthUp - (MouthDown-MouthUp)/10;
		}
	}
	m_LeftMouthCorner.y  =(int)(m_MidMouth.y - tanThta*EyesDis/2);
	m_RightMouthCorner.y =(int)(m_MidMouth.y + tanThta*EyesDis/2);
	for(i =0 ;i < EyesDis ;i++)
	{
		if(X_Arry[i]>0)
		{
			m_LeftMouthCorner.x = i+m_LeftEye.x;
			break;
		}
	}
	for(i = EyesDis -1; i >=0 ;i--)
	{
		if(X_Arry[i]>0)
		{
			m_RightMouthCorner.x = m_LeftEye.x+i;
			break;
		}
	}

	//唇中點較薄
	int min = 1000000;
	for(i = (int)(3*EyesDis/7+0.5) ; i <= (int)(4*EyesDis/7+0.5);i++)
	{
		if(X_Arry[i]<min)
		{
			min = X_Arry[i];
			m_MidMouth.x = m_LeftEye.x+i;
		}
	}
	m_MidMouth.x = (int)(m_MidMouth.x+(m_LeftEye.x+EyesDis/2))/2;

	m_bMidMouthOK = TRUE;
	m_bLeftMouthCornerOK = TRUE;
	m_bRightMouthCornerOK = TRUE;
	
	CopyBitMap(m_tResPixelArray,m_tOriPixelArray);
	MakeBitMap();	
}

////////////////////////////////////////////////////////////////////////////////
// 標記鼻子
////////////////////////////////////////////////////////////////////////////////
void CFaceDetectDlg::OnBtnMarkNose() 
{
	int i,j;
	if(!(m_bLeftEyeOK&&m_bRightEyeOK))
	{
		AfxMessageBox("請先確定眼睛");
		return;
	}
	//左右眼的水平區(qū)域
	int nLeft,nRight,nTop,nBottom;

	nLeft	= m_rFaceRegion.left-5  > 0 ? m_rFaceRegion.left-5:0;
	nRight	= m_rFaceRegion.right+5 < m_nWndWidth? m_rFaceRegion.right+5:m_nWndWidth-1;
	nTop	= m_rFaceRegion.top-5   > 0 ? m_rFaceRegion.top-5:0;
	nBottom = m_rFaceRegion.bottom+5< m_nWndHeight?m_rFaceRegion.bottom+5:m_nWndHeight-1;

	SetPixelArray(m_tResPixelArray,0);
	for(i=nTop; i<=nBottom; i++)
	for(j=nLeft; j<=nRight; j++)
	{
		double Y;
		Y = 0.30*m_tOriPixelArray[i][j].rgbRed+0.59*m_tOriPixelArray[i][j].rgbGreen
			+0.11*m_tOriPixelArray[i][j].rgbBlue;
		if(Y<100)
		{
			m_tResPixelArray[i][j].rgbRed = 255;  
		}
		else m_tResPixelArray[i][j].rgbRed = 0;
	}

	MakeBitMap();
	AfxMessageBox("鼻子的膚色鑒定");
	//雙目斜角
	double tanThta;
	if(m_RightEye.y == m_LeftEye.y) tanThta = 0;
	else tanThta = (m_RightEye.y - m_LeftEye.y)/(m_RightEye.x - m_LeftEye.x);
	//雙目距離
	int EyesDis = (m_RightEye.x-m_LeftEye.x)*(m_RightEye.x-m_LeftEye.x);
	EyesDis += (m_RightEye.y-m_LeftEye.y)*(m_RightEye.y-m_LeftEye.y);
	EyesDis = (int)sqrt(EyesDis);
	//雙目平均高度
	int EyeV    = (m_RightEye.y + m_LeftEye.y)/2;
	//可能的鼻子的區(qū)域
	int NoseUp   = (EyeV+0.5*EyesDis) > nBottom ? nBottom:(int)(EyeV+0.5*EyesDis);
	int NoseDown = (EyeV+0.8*EyesDis) > nBottom ? nBottom:(int)(EyeV+0.8*EyesDis);

	int* Y_Arry = new int[NoseDown-NoseUp];
	for(i =0 ;i < NoseDown-NoseUp ;i++) Y_Arry[i] = 0;

	int* X_Arry = new int[EyesDis];
	for(i =0 ;i < EyesDis ;i++) X_Arry[i] = 0;

	for(i = NoseUp ; i < NoseDown; i++)
	for(j = m_LeftEye.x+EyesDis/5; j< m_RightEye.x-EyesDis/5; j++)
	{
		if(m_tResPixelArray[i][j].rgbRed == 255)
		{
			Y_Arry[i-NoseUp] ++;
			X_Arry[j-m_LeftEye.x] ++;
		}
	}
	
	int maxY = 0;
	for(i =0 ;i < NoseDown-NoseUp ;i++)
	{
		if(Y_Arry[i]>maxY)
		{
			maxY = Y_Arry[i];
			m_MidNose.y =  i+NoseUp;
		}
	}
	m_LeftNostril.y  =(int)(m_MidNose.y - tanThta*EyesDis/2);
	m_RightNostril.y =(int)(m_MidNose.y + tanThta*EyesDis/2);
	for(i =0 ;i < EyesDis ;i++)
	{
		if(X_Arry[i]>0)
		{
			m_LeftNostril.x = i+m_LeftEye.x;
			break;
		}
	}
	for(i = EyesDis-1; i >=0 ;i--)
	{
		if(X_Arry[i]>0)
		{
			m_RightNostril.x = i+m_LeftEye.x;
			break;
		}
	}
	//唇中點較薄
	int min = 1000000;
	for(i = (int)(EyesDis/3+0.5) ; i <= (int)(2*EyesDis/3+0.5);i++)
	{
		if(X_Arry[i]<min)
		{
			min = X_Arry[i];
			m_MidNose.x = m_LeftEye.x+i;
		}
	}
	m_MidNose.x = (m_MidNose.x+(m_LeftEye.x+EyesDis/2))/2;

	m_bMidNoseOK = TRUE;
	m_bLeftNostrilOK = TRUE;
	m_bRightNostrilOK = TRUE;
	
	CopyBitMap(m_tResPixelArray,m_tOriPixelArray);
	MakeBitMap();		
}

////////////////////////////////////////////////////////////////////////////////
// 打開文件
////////////////////////////////////////////////////////////////////////////////
void CFaceDetectDlg::OnBtnOpenfile() 
{
	CAddSampleDlg FileDlg(TRUE, "", NULL, 
		OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, 
		"BMP人臉圖像(*.bmp)|*.bmp|所有文件(*.*)|*.*||",
		AfxGetMainWnd());

	CString strFile;
	if (FileDlg.DoModal () != IDOK)
		return;

	POSITION pos = FileDlg.GetStartPosition();
	strFile = FileDlg.GetNextPathName(pos);
	m_pMainDib->Open(strFile);
	
	m_nWndWidth = m_pMainDib->GetWidth();
	m_nWndHeight= m_pMainDib->GetHeight();
	m_sFileName = strFile;

	m_rFaceRegion.left = m_rFaceRegion.right = m_rFaceRegion.top = m_rFaceRegion.bottom = 0;

	m_bLeftEyeOK = m_bRightEyeOK = m_bLeftNostrilOK = m_bRightNostrilOK =
	m_bLeftEyeLeftCornerOK = m_bLeftEyeRightCornerOK = m_bRightEyeLeftCornerOK = 
	m_bRightEyeRightCornerOK = m_bLeftMouthCornerOK = m_bRightMouthCornerOK = false;

	m_bMidMouthOK = m_bMidNoseOK = false;

	m_LeftEye = m_RightEye = m_LeftEyeLeftCorner = m_LeftEyeRightCorner = 
	m_LeftNostril = m_RightNostril = m_RightEyeLeftCorner = m_RightEyeRightCorner =
	m_LeftMouthCorner = m_RightMouthCorner = m_MidMouth = m_MidNose = CPoint(-1,-1);

	SetCursor(LoadCursor(NULL,IDC_WAIT));
	//獲取像素的值
	LoadOriPixel(m_pMainDib);
	MakeBitMap();
	SetCursor(LoadCursor(NULL,IDC_ARROW));	
}

////////////////////////////////////////////////////////////////////////////////
// 畫圖
////////////////////////////////////////////////////////////////////////////////
void CFaceDetectDlg::MyDraw()
{
	CRect rc;
	pDCShow->GetWindow()->GetClientRect(&rc);
	pDCShow->Rectangle(&rc);
	CDC dc;
	CBitmap *pOldBitmap;
	dc.CreateCompatibleDC(pDCShow);
	pOldBitmap=dc.SelectObject(m_pResMap);
	pDCShow->StretchBlt(0,0,m_nWndWidth,m_nWndHeight,&dc,0,0,m_nWndWidth,m_nWndHeight,SRCCOPY);
	dc.SelectObject(pOldBitmap);
	dc.DeleteDC();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费亚洲电影| 五月综合激情网| 欧洲中文字幕精品| 精品一区二区免费| 一区二区三区精品在线| 久久久五月婷婷| 91精品国产综合久久精品app| 成人亚洲一区二区一| 免费在线欧美视频| 亚洲成av人片一区二区梦乃| 中文一区在线播放| 欧美成人免费网站| 欧美精品久久久久久久多人混战| 91麻豆精品秘密| 成人美女在线观看| 国产一区二区三区免费观看| 日本vs亚洲vs韩国一区三区 | 视频一区在线播放| 最好看的中文字幕久久| 久久婷婷成人综合色| 日韩欧美一级二级三级| 欧美精品免费视频| 欧美在线视频不卡| 色欧美88888久久久久久影院| 国产精华液一区二区三区| 日韩精品中文字幕一区二区三区 | 国产乱淫av一区二区三区| 日韩专区在线视频| 亚洲6080在线| 亚洲第一搞黄网站| 亚洲动漫第一页| 亚洲国产日产av| 一区二区三区国产精华| 亚洲天堂中文字幕| 日韩毛片高清在线播放| 成人欧美一区二区三区视频网页| 中文字幕制服丝袜成人av| 欧美国产丝袜视频| 最新不卡av在线| 亚洲激情在线激情| 亚洲免费观看高清完整版在线| 中文字幕在线视频一区| 国产精品不卡一区| 亚洲影院理伦片| 午夜欧美视频在线观看| 亚洲va国产va欧美va观看| 午夜久久久久久| 美国欧美日韩国产在线播放| 国产一区在线视频| 成人小视频在线| www.亚洲色图.com| 日本精品一区二区三区高清| 91高清视频免费看| 91麻豆精品久久久久蜜臀| 日韩欧美视频在线| 国产视频在线观看一区二区三区 | 日韩和欧美一区二区三区| 奇米影视在线99精品| 国产乱人伦偷精品视频不卡| www.欧美.com| 欧美综合一区二区| 日韩视频在线一区二区| 国产欧美一区二区三区鸳鸯浴| 国产精品视频yy9299一区| 一区二区三区在线播| 日精品一区二区三区| 国产麻豆精品视频| 色哟哟在线观看一区二区三区| 欧美日本韩国一区| 久久青草国产手机看片福利盒子| 国产色产综合色产在线视频| 国产精品国产三级国产三级人妇 | 另类小说综合欧美亚洲| 国产福利一区二区| 91麻豆国产在线观看| 91精品国产欧美日韩| 国产蜜臀av在线一区二区三区| 亚洲线精品一区二区三区| 久草精品在线观看| 色综合激情久久| 26uuuu精品一区二区| 一区二区三区资源| 国产在线观看免费一区| 在线精品视频一区二区| 久久免费的精品国产v∧| 一区二区三区欧美日| 狠狠色丁香久久婷婷综| 色综合视频一区二区三区高清| 欧美xxxx在线观看| 亚洲一区二区成人在线观看| 国产精品一二三在| 欧美精品日日鲁夜夜添| 综合色天天鬼久久鬼色| 久久成人18免费观看| 日本精品视频一区二区三区| 久久久国产午夜精品| 日本欧美一区二区| 91色porny| 欧美国产精品专区| 免费观看成人av| 在线观看一区二区视频| 中文字幕高清不卡| 黑人巨大精品欧美黑白配亚洲| 欧美性做爰猛烈叫床潮| 中文欧美字幕免费| 国内精品在线播放| 欧美一区二区在线视频| 亚洲蜜臀av乱码久久精品| 成人一级片在线观看| 亚洲精品一区二区精华| 日本亚洲天堂网| 91成人国产精品| 亚洲欧洲综合另类| 成人aaaa免费全部观看| 久久久精品蜜桃| 国产一区二区美女| 欧美一级高清大全免费观看| 亚洲成人综合视频| 欧美综合在线视频| 一区二区三区中文在线观看| 97国产精品videossex| 国产精品女人毛片| 成人动漫在线一区| 国产精品传媒入口麻豆| av中文一区二区三区| 欧美国产一区二区在线观看| 国产精品1024| 国产婷婷一区二区| 国产盗摄女厕一区二区三区| 久久蜜臀中文字幕| 国产成人午夜视频| 中文字幕va一区二区三区| 国产精品69久久久久水密桃| 久久久另类综合| 国产成人在线看| 中文字幕一区日韩精品欧美| av高清不卡在线| 最新欧美精品一区二区三区| 日本丶国产丶欧美色综合| 亚洲另类中文字| 欧美日韩中文字幕一区二区| 亚洲国产一区二区在线播放| 欧美伊人精品成人久久综合97 | 亚洲精品一区二区三区香蕉| 韩国欧美一区二区| 国产亚洲精久久久久久| 成年人国产精品| 一区二区三区视频在线观看| 在线观看av不卡| 日本人妖一区二区| 2021国产精品久久精品| 不卡视频在线观看| 亚洲最大的成人av| 欧美一区二区啪啪| 国内成人免费视频| 国产精品丝袜黑色高跟| 色哟哟日韩精品| 日本午夜精品视频在线观看 | 成人午夜av电影| 亚洲乱码国产乱码精品精可以看 | 亚洲不卡av一区二区三区| 91精品在线观看入口| 国产一区二区调教| 国产精品高潮呻吟| 91精品国产全国免费观看| 国产精品羞羞答答xxdd| 亚洲精品免费看| 日韩欧美亚洲国产精品字幕久久久| 国产成人亚洲综合a∨婷婷| 亚洲综合小说图片| 精品久久久久久亚洲综合网 | 日韩欧美另类在线| 成人午夜视频网站| 亚洲国产精品久久不卡毛片 | 久久精工是国产品牌吗| 国产欧美日韩综合精品一区二区| 色成年激情久久综合| 久久成人免费电影| 亚洲人妖av一区二区| 日韩精品一区二| 色综合色综合色综合| 精品一区二区三区香蕉蜜桃| 日韩伦理电影网| 欧美精品一区在线观看| 在线观看国产日韩| 风间由美一区二区av101| 午夜久久电影网| 国产精品超碰97尤物18| 欧美www视频| 欧美日韩一区二区在线观看| 国产成人在线视频免费播放| 三级影片在线观看欧美日韩一区二区 | 在线一区二区三区四区| 韩国女主播成人在线观看| 亚洲一区免费视频| 中文天堂在线一区| 欧美精品一区二区三区高清aⅴ| 一本大道久久a久久精二百| 国产白丝精品91爽爽久久| 美女尤物国产一区|