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

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

?? cluster.cpp

?? 此程序詳細(xì)的列出模式識別中的最基本的一些方法,是初學(xué)模式識別的人很好的教材,全部用C++實(shí)現(xiàn)
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
// Cluster.cpp: implementation of the CCluster class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "mode.h"
#include "Cluster.h"

#include "math.h"
#include "DlgInfor.h"
#include "DlgMohu.h"
#include "DlgFuzzyDistance.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

const int MAX=1000;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCluster::CCluster()
{
	centernum=0;
	patternnum=0;
	m_pattern=NULL;
	m_center=NULL;

}

CCluster::~CCluster()
{

}
//***********************************************************//
//函數(shù)名稱		GetFeature()
//參數(shù)			void
//返回值		void
//函數(shù)功能		將含有數(shù)據(jù)的圖像標(biāo)號、分割、編號及提取特征值,
//				特征值存入數(shù)組m_pattern中。
//************************************************************//	
void CCluster::GetFeature()
{
	////////////////////以下對數(shù)據(jù)區(qū)域標(biāo)號whx/////////////////////
	
	BYTE * p_temp;
	int stop;
	int i,j;
	int counter;//記錄相互獨(dú)立的連通區(qū)域的個數(shù);
	int present;//記錄當(dāng)前點(diǎn)的值1,2,...,counter.

	height=GetHeight();//圖像高
	wide=GetWidth();//圖像寬,

	stop=0;
	counter=0;
    p_temp=new BYTE[wide*height];//開辟一個臨時內(nèi)存區(qū)
	memset(p_temp,255,wide*height);//置白
	
	//從左到右、從上到下標(biāo)號
	const int T=5;//T為閾值,RGB值小于該閾值被認(rèn)為是黑,
	for(i=0; i<wide; i++)//將第零行置白
		*(m_pData+(height-1)*wide+i)=255;
	for(j=0;j<height;j++)//將第零列置白
		*(m_pData+(height-j-1)*wide)=255;
	for( j=1;j<height-1;j++)	// 從第一行開始搜索
	{
		if(stop==1)//判斷連通區(qū)是否太多
			break;
		for( i=1;i<wide-1;i++)	// 從第一列開始搜索
		{
			if(counter>255)
			{
				AfxMessageBox("連通區(qū)數(shù)目太多,請減少樣品個數(shù)");
				stop=1;
				return;
			}
			if(*(m_pData+(height-j-1)*wide+i)<T)//若當(dāng)前點(diǎn)為黑點(diǎn)
			{
				if(*(m_pData+(height-j-1+1)*wide+i+1)<T)//若當(dāng)前點(diǎn)的右上點(diǎn)為黑點(diǎn)
				{
					*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1+1)*wide+i+1);//當(dāng)前點(diǎn)標(biāo)號應(yīng)該與右上點(diǎn)相同
					present=*(p_temp+(height-j-1+1)*wide+i+1);//記錄當(dāng)前點(diǎn)的標(biāo)號
					
					if(*(m_pData+(height-j-1)*wide+i-1)<T && *(p_temp+(height-j-1)*wide+i-1)!=present)//左前與右上點(diǎn)都為黑且標(biāo)號不同
					{
						int temp=*(p_temp+(height-j-1)*wide+i-1);//記錄左前點(diǎn)的標(biāo)號
						if (present>temp)//當(dāng)前點(diǎn)標(biāo)號記錄兩者中的較小值
						{
							present=temp;
							temp=*(p_temp+(height-j-1+1)*wide+i+1);
						}
						counter--;//合并左前和右上標(biāo)號,標(biāo)號總數(shù)減一
						for(int m=1;m<=height-1;m++)
							for(int n=1;n<=wide-1;n++)
							{
								if(*(p_temp+(height-m-1)*wide+n)==temp)//將較大標(biāo)號該成較小標(biāo)號
								{	
									*(p_temp+(height-m-1)*wide+n)=present;
								}
								else if (*(p_temp+(height-m-1)*wide+n)>temp)//將較大標(biāo)號以后的所有標(biāo)號減一,以保持標(biāo)號的連續(xù)性
								{
									*(p_temp+(height-m-1)*wide+n)-=1;
								}
							}
					}//end//左前
					if( *(m_pData+(height-j-1+1)*wide+i-1)<T && *(p_temp+(height-j-1+1)*wide+i-1)!=present)//左上與右上點(diǎn)都為黑且標(biāo)號不同
					{
						counter--;//合并左上和右上標(biāo)號,標(biāo)號總數(shù)減一
						int temp=*(p_temp+(height-j-1+1)*wide+i-1);//記錄左上點(diǎn)的值
						if (present<temp)//當(dāng)前點(diǎn)標(biāo)號記錄兩者中的較小值
						{
							temp=present;
							present=*(p_temp+(height-j-1+1)*wide+i-1);
						}

						for(int m=1;m<=height-1;m++)
							for(int n=1;n<=wide-1;n++)
							{
								if(*(p_temp+(height-m-1)*wide+n)==present)//將較大標(biāo)號該成較小標(biāo)號
								{	
									*(p_temp+(height-m-1)*wide+n)=temp;
								}
								else if (*(p_temp+(height-m-1)*wide+n)>present)//將較大標(biāo)號以后的所有標(biāo)號減一,以保持標(biāo)號的連續(xù)性
								{
									*(p_temp+(height-m-1)*wide+n)-=1;
								}
							}
						present=temp;
					}//end//左上
				}
				else if(*(m_pData+(height-j-1+1)*wide+i)<T)//當(dāng)前點(diǎn)黑,右上不為黑,正上為黑
				{
					*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1+1)*wide+i);//當(dāng)前標(biāo)號=正上標(biāo)號
					present=*(p_temp+(height-j-1+1)*wide+i);
				}
				else if(*(m_pData+(height-j-1+1)*wide+i-1)<T)//左上
				{
					*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1+1)*wide+i-1);
					present=*(p_temp+(height-j-1+1)*wide+i-1);
				}
				else if(*(m_pData+(height-j-1)*wide+i-1)<T)//左前
				{
					*(p_temp+(height-j-1)*wide+i)=*(p_temp+(height-j-1)*wide+i-1);
					present=*(p_temp+(height-j-1)*wide+i-1);
				}
				else//產(chǎn)生新標(biāo)號
				{				
					++counter;
					present=counter;
					*(p_temp+(height-j-1)*wide+i)=present;
				}
			}//end if
		}// 列
	}//end 行
 // //////////////////////以上對數(shù)據(jù)區(qū)域標(biāo)號//////////////////////////
				  
					
 //////////////////////以下獲得各個樣品所在位置及編號///////////////////
	patternnum=counter;//樣品總數(shù)

	if (m_pattern!=NULL)
		delete []m_pattern;
	m_pattern=new Pattern[patternnum];				
						  
	for( i=0;i<patternnum;i++) 
	{
		m_pattern[i].index=i+1;
		m_pattern[i].category=0;
		m_pattern[i].lefttop.x=wide;
		m_pattern[i].lefttop.y=height;
		m_pattern[i].rightbottom.x=0;
		m_pattern[i].rightbottom.y=0;
	}

	for(int t=1;t<=patternnum;t++)//記錄每個樣品(獨(dú)立連通區(qū)域)的左上、右下點(diǎn)坐標(biāo)
	{	
		for(int j=1;j<height-1;j++)//搜索整幅圖像
			for(int i=1;i<wide-1;i++)
			{
				if(*(p_temp+(height-j-1)*wide+i)==t)
				{
					if (m_pattern[t-1].lefttop.x>i)//get the lefttop point
						m_pattern[t-1].lefttop.x=i;
					if (m_pattern[t-1].lefttop.y>j)
						m_pattern[t-1].lefttop.y=j;
					if (m_pattern[t-1].rightbottom.x<i)//get the rightbottom point
						m_pattern[t-1].rightbottom.x=i;
					if (m_pattern[t-1].rightbottom.y<j)
						m_pattern[t-1].rightbottom.y=j;
				}				
			}
	}
	
	delete []p_temp;
	//////////////////////以下獲得所有樣品特征放入m_pattern中//////////////////////////////
	for ( i=0;i<patternnum;i++)//=patternnum
	{
		CalFeature(&m_pattern[i]);//調(diào)用函數(shù)計(jì)算第i號模板的值
	}
	
	//////////////////////以上獲得所有樣品特征放入m_pattern中//////////////////////////////

}
/***********************************************************
*函數(shù)名稱		CalFeature(CCluster::Pattern *m_pattern)
*參數(shù)			CCluster::Pattern *m_pattern
*返回值	    	void
*函數(shù)功能		計(jì)算樣品m_pattern的特征值,存入m_pattern->feature中
*************************************************************/
void CCluster::CalFeature(CCluster::Pattern *m_pattern)
{
	int w,h,count;
	int i,j;

	w=(int)(m_pattern->rightbottom.x-m_pattern->lefttop.x)/N;//特征值中每個特征的寬
	h=(int)(m_pattern->rightbottom.y-m_pattern->lefttop.y)/N;//特征值中每個特征的高

	for ( j=0;j<N;j++)//col
	{
		for ( i=0;i<N;i++)//line
		{
			count=0;//每個特征內(nèi)黑點(diǎn)的個數(shù)
            for(int m= height-m_pattern->rightbottom.y+h*j;m<height-m_pattern->rightbottom.y+h*j+h;m++)//col
				for (int n=m_pattern->lefttop.x+i*w; n<m_pattern->lefttop.x+i*w+w; n++)//line
					if (*(m_pData+m*wide+n)==0)
						count++;
			m_pattern->feature[j*N+i]=(double)count/(double)(w*h);
		}
	}
}

/*********************************************************
*函數(shù)名稱		CalCenter(CCluster::Center *pcenter)
*參數(shù)			CCluster::Center *pcenter
*返回值		    void
*函數(shù)功能		計(jì)算中心pcenter的特征值(本類所有樣品的均值),及樣品個數(shù)
************************************************************/	
void CCluster::CalCenter(CCluster::Center *pcenter)
{
	double temp[N*N];//臨時存儲中心的特征值
	int a=0;//記錄該類中元素個數(shù)
	for (int i=0;i<N*N;i++)//中心清空
		temp[i]=0;
	for (i=0;i<patternnum;i++)
		if (m_pattern[i].category==pcenter->index)//累加中心所有樣品
		{
			a++;
			for (int j=0;j<N*N;j++)
				temp[j]+=m_pattern[i].feature[j];
		}
	pcenter->patternnum=a;
	for ( i=0;i<N*N;i++)
			if(a!=0)
			{
				pcenter->feature[i]=(double)(temp[i]/(double)a);//取均值
			}
			else
			{
				pcenter->feature[i]=temp[i];
			}

}

/***********************************************************
*函數(shù)名稱		GetDistance( CCluster::Pattern pattern1, CCluster::Pattern  pattern2, const int distype)
*參數(shù)			CCluster::Pattern pattern1   樣品1
*				CCluster::Pattern pattern2	 樣品2
*				const int distype	         距離模式  1:歐氏距離;2:夾角余弦距離;
*													   3:特征是二值時的夾角余弦距離;4:具有二值特征的Tanimoto測度
*返回值	    	double
*函數(shù)功能		計(jì)算樣品1和樣品2間的距離,距離模式由參數(shù)distype給定
*************************************************************/
double CCluster::GetDistance( CCluster::Pattern pattern1, CCluster::Pattern  pattern2, const int distype)
{

	double   result;
	result=0;

	if (distype==1)//歐氏距離
	{
		for (int i=0; i<N*N; i++)
			result+=(pattern1.feature[i]-pattern2.feature[i])*(pattern1.feature[i]-pattern2.feature[i]);
		return (double)sqrt(result);
	}
	else if (distype==2)//夾角余弦
	{
		double	a,b1,b2;
		a=0;
		b1=0;
		b2=0;
		for (int i=0; i<N*N; i++)
		{
			a+=pattern1.feature[i]*pattern2.feature[i];
			b1+=pattern1.feature[i]*pattern1.feature[i];
			b2+=pattern2.feature[i]*pattern2.feature[i];
		}
		if (b2*b1!=0)
		result=a/sqrt(b1*b2);
		else 
		{
			return -1;
		}

		return (1-result);
	}
	else if (distype==3)//二值夾角余弦
	{
		int *t1,*t2;
		int a,b1,b2;
		 
		a=0;b1=0;b2=0;
		t1=new int [N*N];
		t2=new int [N*N];
		for(int i=0; i<N*N; i++)
		{
			t1[i]=pattern1.feature[i]>0.2? 1:0;
			t2[i]=pattern2.feature[i]>0.2? 1:0;
		}
		
		for ( i=0; i<N*N; i++)
		{
			a+=t1[i]*t2[i];
			b1+=t1[i]*t1[i];
			b2+=t2[i]*t2[i];
		}
		delete	[]t1;
		delete	[]t2;
		if (b2*b1!=0)
		result=(double)(a/sqrt(b1*b2));
		else 
		{
			return -1;
		}

		return (1-result);
	}
	else if (distype==4)//Tanimoto
	{
		int *t1,*t2;
		int a,b1,b2;
		 
		a=0;b1=0;b2=0;
		t1=new int [N*N];
		t2=new int [N*N];
		for(int i=0; i<N*N; i++)
		{
			t1[i]=pattern1.feature[i]>0.2? 1:0;
			t2[i]=pattern2.feature[i]>0.2? 1:0;
		}
		
		for ( i=0; i<N*N; i++)
		{
			a+=t1[i]*t2[i];
			b1+=t1[i]*t1[i];
			b2+=t2[i]*t2[i];
		}
		delete	[]t1;
		delete	[]t2;
		if ((b2*b1-a)!=0)
		result=(double)(a/(b1+b2-a));
		else 
		{
			return -1;
		}
		return (1-result);
	}
	else
		return -1;

}
/***************************************************************
*函數(shù)名稱		GetDistance(CCluster::Pattern pattern,  CCluster::Center center, const int distype)
*參數(shù)			CCluster::Pattern pattern  樣品
*				CCluster::Center center    中心
*				const int distype	         距離模式  1:歐氏距離;2:夾角余弦距離;
*													   3:特征是二值時的夾角余弦距離;
*													   4:具有二值特征的Tanimoto測度
*返回值			double
*函數(shù)功能		計(jì)算樣品和聚類中心間的距離,距離模式由distype給定
************************************************************/
double CCluster::GetDistance(CCluster::Pattern pattern,  CCluster::Center center, const int distype)
{
	double   result;
	result=0;

	if (distype==1)//歐氏距離
	{
		for (int i=0; i<N*N; i++)
			result+=(pattern.feature[i]-center.feature[i])*(pattern.feature[i]-center.feature[i]);
		return (double)sqrt(result);
	}
	else if (distype==2)//夾角余弦
	{
		double	a,b1,b2;
		a=0;
		b1=0;
		b2=0;
		for (int i=0; i<N*N; i++)
		{
			a+=pattern.feature[i]*center.feature[i];
			b1+=pattern.feature[i]*pattern.feature[i];
			b2+=center.feature[i]*center.feature[i];
		}
		if (b2*b1!=0)
		result=a/sqrt(b1*b2);
		else 
		{
			return -1;
		}

		return (1-result);
	}
	else if (distype==3)//二值夾角余弦
	{
		int *t1,*t2;
		int a,b1,b2;
		 
		a=0;b1=0;b2=0;
		t1=new int [N*N];
		t2=new int [N*N];
		for(int i=0; i<N*N; i++)
		{
			t1[i]=pattern.feature[i]>0.2? 1:0;
			t2[i]=center.feature[i]>0.2? 1:0;
		}
		
		for ( i=0; i<N*N; i++)
		{
			a+=t1[i]*t2[i];
			b1+=t1[i]*t1[i];
			b2+=t2[i]*t2[i];
		}
		delete	[]t1;
		delete	[]t2;
		if (b2*b1!=0)
		result=a/sqrt(b1*b2);
		else 
		{
			return -1;
		}

		return (1-result);
	}
	else if (distype==4)//Tanimoto
	{
		int *t1,*t2;
		int a,b1,b2;
		 
		a=0;b1=0;b2=0;
		t1=new int [N*N];
		t2=new int [N*N];
		for(int i=0; i<N*N; i++)
		{
			t1[i]=pattern.feature[i]>0.2? 1:0;
			t2[i]=center.feature[i]>0.2? 1:0;
		}
		
		for ( i=0; i<N*N; i++)
		{
			a+=t1[i]*t2[i];
			b1+=t1[i]*t1[i];
			b2+=t2[i]*t2[i];
		}
		delete	[]t1;
		delete	[]t2;
		if ((b2*b1-a)!=0)
		result=(double)(a/(b1+b2-a));
		else 
		{
			return -1;
		}
		return (1-result);
	}
	else
		return -1;
}
/*************************************************************
*函數(shù)名稱		GetDistance(CCluster::Center mCenter1,CCluster::Center mCenter2,int distype)
*參數(shù)			CCluster::Center mCenter1   中心1
*				CCluster::Center mCenter2   中心2
*				const int distype	         距離模式   1:歐氏距離;2:夾角余弦距離;		
*											            3:特征是二值時的夾角余弦距離;
*														4:具有二值特征的Tanimoto測度
*返回值			double
*函數(shù)功能		計(jì)算兩個聚類中心間的距離,距離模式由distype給定
*************************************************************/
double CCluster::GetDistance(CCluster::Center mCenter1,CCluster::Center mCenter2,int distype)
{
	double result;
	result=0;

	if (distype==1)//歐氏距離
	{
		for ( int m=0;m<N*N;m++)
		result+=(mCenter1.feature[m]-mCenter2.feature[m])*(mCenter1.feature[m]-mCenter2.feature[m]);
		return (double)sqrt(result);
	}
	else if (distype==2)//夾角余弦
	{
		double	a,b1,b2;
		a=0;
		b1=0;
		b2=0;
		for (int i=0; i<N*N; i++)
		{
			a+=mCenter1.feature[i]*mCenter2.feature[i];
			b1+=mCenter1.feature[i]*mCenter1.feature[i];
			b2+=mCenter2.feature[i]*mCenter2.feature[i];
		}
		if (b2*b1!=0)
		result=a/sqrt(b1*b2);
		else 
		{
			return -1;
		}

		return (1-result);
	}
	else if (distype==3)//二值夾角余弦
	{
		int *t1,*t2;
		int a,b1,b2;
		 
		a=0;b1=0;b2=0;
		t1=new int [N*N];
		t2=new int [N*N];
		for(int i=0; i<N*N; i++)
		{
			t1[i]=mCenter1.feature[i]>0.2? 1:0;
			t2[i]=mCenter2.feature[i]>0.2? 1:0;
		}
		
		for ( i=0; i<N*N; i++)
		{
			a+=t1[i]*t2[i];
			b1+=t1[i]*t1[i];
			b2+=t2[i]*t2[i];
		}
		delete	[]t1;
		delete	[]t2;
		if (b2*b1!=0)
		result=(double)(a/sqrt(b1*b2));
		else 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美不卡在线视频| 日韩欧美久久久| 亚洲精选一二三| 欧美在线三级电影| 精品夜夜嗨av一区二区三区| 国产农村妇女精品| 欧美视频日韩视频在线观看| 麻豆国产一区二区| 中文字幕一区在线| 欧美一区二区三区色| 日产欧产美韩系列久久99| 精品久久久久99| 欧洲日韩一区二区三区| 国产一区欧美日韩| 亚洲一区二区三区四区的| 久久久www成人免费毛片麻豆| 色婷婷狠狠综合| 久久www免费人成看片高清| 国产清纯美女被跳蛋高潮一区二区久久w | 欧洲一区二区三区在线| 紧缚奴在线一区二区三区| 一区二区日韩av| 精品99一区二区| 欧美日韩一区精品| www.99精品| 韩国三级电影一区二区| 亚洲国产精品久久人人爱| 国产欧美一区二区精品性色 | www国产精品av| 欧美中文一区二区三区| 国产999精品久久久久久| 首页综合国产亚洲丝袜| 亚洲人成人一区二区在线观看| 日韩免费看的电影| 欧美日韩免费一区二区三区视频| 99视频精品免费视频| 狠狠色丁香久久婷婷综合_中| 亚洲最大成人综合| 亚洲欧洲日产国码二区| 国产日韩欧美综合一区| 日韩精品一区二区三区swag| 欧美日韩国产精品成人| 色94色欧美sute亚洲线路二 | 色综合天天综合网天天看片| 国产一区二区免费看| 日韩精品一二三四| 亚洲一区二区三区精品在线| 久久精品男人天堂av| 日韩午夜小视频| www.视频一区| 成人av资源下载| 国产成人啪免费观看软件 | 久久精品男人天堂av| 欧美日韩国产综合视频在线观看| www.亚洲在线| 国产一区二区三区香蕉| 亚洲一区二区三区影院| 亚洲欧美激情一区二区| 成人欧美一区二区三区白人| 亚洲人成网站影音先锋播放| 国产精品美日韩| 国产精品天干天干在观线| 国产精品你懂的| 男人的天堂久久精品| 奇米综合一区二区三区精品视频| 日本亚洲最大的色成网站www| 日日欢夜夜爽一区| 蜜臂av日日欢夜夜爽一区| 亚洲gay无套男同| 男男成人高潮片免费网站| 免费观看一级特黄欧美大片| 久久99精品一区二区三区三区| 蜜臀va亚洲va欧美va天堂| 久久不见久久见中文字幕免费| 国产在线一区二区| 国产福利91精品一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 免费精品99久久国产综合精品| 久草热8精品视频在线观看| 日韩国产欧美在线播放| 麻豆高清免费国产一区| 国产成人无遮挡在线视频| a亚洲天堂av| 欧美亚洲一区二区在线| 制服丝袜日韩国产| 久久综合色一综合色88| 18成人在线视频| 亚洲成人自拍一区| 极品销魂美女一区二区三区| 波多野结衣一区二区三区| 欧美日韩精品一区二区三区四区 | 91麻豆精品国产91久久久更新时间 | 91精品国产高清一区二区三区| 欧美v国产在线一区二区三区| 中文字幕av一区二区三区 | 亚洲男人的天堂在线aⅴ视频| 国产精品美女久久久久久2018 | 在线亚洲高清视频| 欧美一区二区免费观在线| 精品播放一区二区| 亚洲免费观看高清在线观看| 日本亚洲欧美天堂免费| 成人av电影在线| 欧美老年两性高潮| 国产精品色噜噜| 午夜精品国产更新| 日本免费新一区视频| 久久精品72免费观看| 日本精品一级二级| 精品国产乱码久久久久久久 | 狠狠色狠狠色合久久伊人| av福利精品导航| 日韩免费一区二区三区在线播放| ...av二区三区久久精品| 裸体在线国模精品偷拍| 欧美性生活一区| 国产精品久久久久久久久免费桃花 | 色欧美乱欧美15图片| 日韩一二三区不卡| 国产精品电影一区二区| 午夜激情久久久| 国产精品自在欧美一区| 精品视频色一区| 国产精品久久久久久久久晋中| 日本在线不卡视频| 在线观看日韩电影| 国产精品美女久久久久aⅴ| 久久99精品国产91久久来源| 在线观看成人免费视频| 国产精品伦一区| 国产一区二区美女| 日韩天堂在线观看| 国产精品久久综合| 亚洲自拍偷拍欧美| 91在线高清观看| 久久婷婷成人综合色| 丝袜脚交一区二区| 欧美三级在线播放| 亚洲图片另类小说| 波多野结衣亚洲| 中文字幕av一区二区三区| 国产成人综合精品三级| 日韩欧美电影一二三| 日韩电影在线看| 欧美人与禽zozo性伦| 一区二区三区影院| 91女厕偷拍女厕偷拍高清| 久久久精品一品道一区| 国产一区999| 精品国产一区二区三区久久影院 | 精品一区二区综合| 日韩精品一区二区在线观看| 日韩专区中文字幕一区二区| 欧美揉bbbbb揉bbbbb| 亚洲国产精品久久艾草纯爱| 在线观看91视频| 一区二区三区在线观看动漫| 丁香激情综合五月| 欧美国产视频在线| av一区二区三区四区| 久久色中文字幕| 九九国产精品视频| 欧美视频在线一区二区三区 | 激情图区综合网| 欧美一二三在线| 日本亚洲三级在线| 欧美日韩国产片| 夜夜嗨av一区二区三区四季av| 91女神在线视频| 亚洲一区二区三区视频在线 | 久久99国产精品尤物| 日韩精品一区二区三区蜜臀| 五月天激情综合| 日韩免费一区二区| 风间由美性色一区二区三区| 中文字幕一区二区三| 日本大香伊一区二区三区| 午夜伦欧美伦电影理论片| 欧美一级电影网站| 国产成人8x视频一区二区| 一区二区中文字幕在线| 欧美日韩国产一级片| 高清不卡一二三区| 婷婷中文字幕一区三区| 国产精品久久久久婷婷二区次| 欧美丰满高潮xxxx喷水动漫| 国产激情91久久精品导航 | 成人午夜碰碰视频| 午夜精品久久久久久不卡8050| 国产视频911| 欧美精品 日韩| 99re免费视频精品全部| 麻豆精品视频在线观看免费| 亚洲桃色在线一区| 久久综合视频网| 91精品麻豆日日躁夜夜躁| av成人免费在线观看| 国产一区二区在线看| 视频一区二区欧美| 亚洲裸体xxx|