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

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

?? usps.c

?? Visual C++ 數(shù)字圖像模式識(shí)別技術(shù)及工程實(shí)踐源碼 求是科技 張宏林編著 人民郵電出版社
?? C
字號(hào):
/*Fisher.C
*recognition of handwritten numerals with Fishier Linear Classifier
*/
/*
*說明:一個(gè)數(shù)字16X16像素,每個(gè)像素是灰度值,
*歸一化為-1到1的雙精度浮點(diǎn)數(shù)
*
*struct Sample
*{
*	double data[RAWDATADIM];	//一個(gè)點(diǎn)的數(shù)據(jù)為8 byte
*	double feature[FEADIM];		//特征向量
*	int trueClass;	//真實(shí)類別
*	int classifiedClass[10]; //被識(shí)別的分類,對(duì)應(yīng)位置1
*	int isClassified; // 1 for true and -1 for false
*};
*例如 6 對(duì)應(yīng)的classifiedClass[10]為:-1-1-1-1-1-11-1-1-1
*
*/

#include <stdio.h>
#include "math.h"
#include "stdlib.h"

#define TRAININGSNUM	 7291	//訓(xùn)練樣本數(shù)
#define TESTINGSNUM		 2007	//測(cè)試樣本數(shù)
#define RAWDATADIM		 256	//每個(gè)數(shù)字的像數(shù)點(diǎn)數(shù)
#define FEADIM			 60	//提取的特征維數(shù)

#define SUCCESSFUL		 0
#define FAIL			 -1

struct Sample
{
	double data[RAWDATADIM];	//一個(gè)點(diǎn)的數(shù)據(jù)為8 byte
	double feature[FEADIM];		//特征向量
	int trueClass;	//真實(shí)類別
	int classifiedClass[10]; //被識(shí)別的分類,對(duì)應(yīng)位置1
	int isClassified; // 1 for true and -1 for false
};

struct Sample trainingSample[TRAININGSNUM];	//訓(xùn)練樣本
struct Sample testingSample[TESTINGSNUM];	//測(cè)試樣本

int points[FEADIM][2];	//特征點(diǎn)
double dirToMap[FEADIM][1];	//映射向量
double meanC1, meanC2;	//第一類,第二類映射后的均值
int nC1, nC2;	//兩類的訓(xùn)練樣本數(shù)

/*******************************************************************
 *兩個(gè)矩陣相乘
 *參數(shù):A×B=C
 *      A[m,n],B[n,k],C[m,k]
 */
void brmul(a, b, m, n, k, c)
int m, n, k;
double a[], b[], c[];
{
	int i, j, l, u;
	for (i=0; i<=m-1; i++)
		for (j=0; j<=k-1; j++)
		{ 
			u = i*k+j; 
			c[u] = 0.0;
			for (l=0; l<=n-1; l++)
				c[u] = c[u] + a[i*n+l]*b[l*k+j];
		}
		
	return;
}

/****************************************************************
 *矩陣求逆
 *參數(shù):A:矩陣
 *      n:矩陣地維數(shù)
 */
int brinv(a, n)
int n;
double a[];
{ 
	int *is, *js, i, j, k, l, u, v;
	double d, p;
	is = (int *) malloc(n*sizeof(int));
	js = (int *) malloc(n*sizeof(int));

	for (k=0; k<=n-1; k++)
	{ 
		d=0.0;
		for (i=k; i<=n-1; i++)
			for (j=k; j<=n-1; j++)
			{ 
				l=i*n+j; 
				p=fabs(a[l]);
				if (p>d) 
				{ 
					d=p; 
					is[k]=i; 
					js[k]=j;
				}
			}

		if (d+1.0==1.0)
		{ 
			free(is); 
			free(js); 
			printf("err**not inv\n");
			return(0);
		}
		if (is[k]!=k)
			for (j=0; j<=n-1; j++)
			{ 
				u=k*n+j; 
				v=is[k]*n+j;
				p=a[u]; 
				a[u]=a[v]; 
				a[v]=p;
			}
        
		if (js[k]!=k)
			for (i=0; i<=n-1; i++)
			{ 
				u=i*n+k; 
				v=i*n+js[k];
				p=a[u]; 
				a[u]=a[v]; 
				a[v]=p;
			}
				
		l=k*n+k;
		a[l]=1.0/a[l];
		for (j=0; j<=n-1; j++)
			if (j!=k)
			{ 
				u=k*n+j; 
				a[u]=a[u]*a[l];
			}
				
		for (i=0; i<=n-1; i++)
			if (i!=k)
				for (j=0; j<=n-1; j++)
					if (j!=k)
					{ 
						u=i*n+j;
						a[u]=a[u]-a[i*n+k]*a[k*n+j];
					}
        
		for (i=0; i<=n-1; i++)
			if (i!=k)
			{ 
				u=i*n+k; 
				a[u]=-a[u]*a[l];
			}
	}
    
	for (k=n-1; k>=0; k--)
	{ 
		if (js[k]!=k)
			for (j=0; j<=n-1; j++)
			{ 
				u=k*n+j; 
				v=js[k]*n+j;
				p=a[u]; 
				a[u]=a[v]; 
				a[v]=p;
			}
        
		if (is[k]!=k)
			for (i=0; i<=n-1; i++)
			{ 
				u=i*n+k; 
				v=i*n+is[k];
				p=a[u]; 
				a[u]=a[v]; 
				a[v]=p;
			}
	}
	
	free(is); 
	free(js);
	return(1);
}

/*
*retrieveSample (s, n, dfname, cfname)

*funtion to retrieve data from binary data file
*s: 樣本數(shù)組的頭指針,trainingSample or testingSample
*n: number of samples
*dfname: file name of sample data
*cfname: file name of information on true class
*
*/
int retrieveSample (s, n, dfname, cfname)
struct Sample *s;
int n;
char *dfname, *cfname;
{
	FILE *fdf, *fcf;
	
	int sclass[10];

	int i, j;
	//open datafile
	if	((fdf = fopen (dfname, "rb")) == NULL)
	{
		printf ("Can't open file %s\n", dfname);
		return FAIL;
	}
	
	//open classfile
	if ((fcf = fopen (cfname, "rb")) == NULL)
	{
		printf ("Can't open file %s\n", cfname);
		return FAIL;
	}
	
	for (i = 0; i < n; i++)
	{
		fread (s[i].data, sizeof (double), RAWDATADIM, fdf);//retrieve gray data
		fread (sclass, sizeof (int), 10, fcf);
		for (j = 0; j < 10; j++)
		{
			(*(s + i)).classifiedClass[j] = -1; //initiate -1
			if (sclass[j] == 1)
				(*(s + i)).trueClass = j;  //load trueClass
		}
		(*(s + i)).isClassified = -1;//have not been classified

	}

	fclose (fdf);
	fclose (fcf);
	return SUCCESSFUL;
}

/*
int selPoints (serial1,serial2)
選取特征點(diǎn)
serial1:第一類序號(hào)
serial2:第二類序號(hào)
*/

int selPoints (serial1,serial2)

int serial1;
int serial2;

{
	double sumC1[RAWDATADIM], sumC2[RAWDATADIM],diff[RAWDATADIM];
	int i,j;
	int n1, n2;

	double uBound, lBound;
	int index;

	n1 = n2 = 0;
	for (i = 0; i < RAWDATADIM; i++)
	{
		sumC1[i] = 0;
		sumC2[i] = 0;
	}

	for (i = 0; i < TRAININGSNUM; i++)
	{
		if (trainingSample[i].trueClass == serial1)
		{
			n1++;
			for (j = 0; j < RAWDATADIM; j++)
				sumC1[j] += trainingSample[i].data[j];
		}
		else if(trainingSample[i].trueClass == serial2) 
		{
			n2++;
			for (j =0; j < RAWDATADIM; j++)
				sumC2[j] += trainingSample[i].data[j];
		}
	}

	if (n1 == 0 || n2 == 0)
		return FAIL;

	for (i = 0; i < RAWDATADIM; i++)
	{
		sumC1[i] = sumC1[i]/n1;
		sumC2[i] = sumC2[i]/n2;
		diff[i] = fabs(sumC1[i] - sumC2[i]);
	}
	
	//下面尋找第一類和第二類偏差最小的點(diǎn)為特征點(diǎn)

	lBound = 0; uBound = 3;
	//lBound指示當(dāng)前一輪的最大值,uBound指示前一輪的最大值
	for (j = 0; j < FEADIM; j++)
	{
		for (i = 0; i < RAWDATADIM; i++)
			if (lBound < diff[i] && uBound > diff[i])
			{
				lBound = diff[i];//find the Maximum
				index = i;
			}
		uBound = lBound;
		lBound = 0;
		points[j][0] = index / ((int)sqrt (RAWDATADIM));
		points[j][1] = index % ((int)sqrt (RAWDATADIM));
	}
	return SUCCESSFUL;
}


/*
void genFeature (s,n)
特征提取
s:樣本結(jié)構(gòu)struct Sample的指針, trainingSample or testingSample
n:number of samples
*/
void genFeature (s,n)
struct Sample *s;
int n;

{
	int i, j, t;

	for (i = 0; i < n; i++)
	{
		for (j = 0; j < FEADIM; j++)
		{
			t = points[j][0] * (int)sqrt(RAWDATADIM) + points[j][1];
			s[i].feature[j] = s[i].data[t];
		}
	}
	return;
}


/*
int Fisher (serial1,serial2)

serial1第一類的序號(hào),serial2第二類的序號(hào)
1、返回投影向量double dirToMap[FEADIM][1],把多維空間映射到一維空間
2、計(jì)算meanC1,meanC2,即兩類的均值
3、計(jì)算nC1,nC2,兩類的樣本個(gè)數(shù)
*/
int Fisher (serial1, serial2)
int serial1;
int serial2;

{
	struct Sample *s;
	double meanVector1[FEADIM], meanVector2[FEADIM], diffVector[FEADIM];
	double sumC1[FEADIM], sumC2[FEADIM];

	double SW[FEADIM][FEADIM];//樣本總類內(nèi)離散度矩陣
	double tempMtrx[FEADIM][FEADIM];
	double tempV1[FEADIM][1];
	double tempV2[1][FEADIM];
	double tempV[1][1];

	int i, j, k;
	int flag;

	s = trainingSample;

	nC1 = nC2 = 0;//初始化
	
	for (j = 0; j < FEADIM; j++)
	{
		sumC1[j] = 0;
		sumC2[j] = 0;
		for (k = 0; k < FEADIM; k++)
			SW[j][k] = 0;
	}

	for (i = 0; i < TRAININGSNUM; i++)
	{
		if (s[i].trueClass == serial1)
		{
			++nC1;//第一類樣本數(shù)增1
			for (j = 0; j < FEADIM; j++)
			{
				sumC1[j] += s[i].feature[j]; 
			}
		}
		if (s[i].trueClass == serial2) 
		{
			++nC2;//第二類樣本數(shù)增1
			for (j = 0; j < FEADIM; j++)
			{
				sumC2[j] += s[i].feature[j]; 
			}
		}
	}

	if (nC1 == 0 || nC2 == 0)//某一類沒有樣本,返回錯(cuò)誤
	{
		return FAIL;
	}

	for (j = 0; j < FEADIM; j++)
	{
		meanVector1[j] = sumC1[j]/nC1;
		meanVector2[j] = sumC2[j]/nC2;
		diffVector[j] = meanVector1[j] - meanVector2[j];
	}

	for (i = 0; i < TRAININGSNUM; i++)
	{
		if (s[i].trueClass == serial1 || s[i].trueClass == serial2)
		{
			if (s[i].trueClass == serial1)
				for (j = 0; j < FEADIM; j++)
				{
					tempV1[j][0]  = s[i].feature[j] - meanVector1[j];
					tempV2[0][j] = tempV1[j][0];
				}
			if (s[i].trueClass == serial2) 
				for (j = 0; j < FEADIM; j++)
				{
					tempV1[j][0] = s[i].feature[j] - meanVector2[j];
					tempV2[0][j] = tempV1[j][0];
				}

		//向量求積,得一個(gè)樣本的離散度矩陣
		//	tempMtrx[FEADIM][FEADIM] = tempV1 * tempV2 
		
			brmul(tempV1,tempV2,FEADIM,1,FEADIM,tempMtrx);
		
			for (j = 0; j < FEADIM; j++)
				for (k = 0; k < FEADIM; k++)
					SW[j][k] =SW[j][k] + tempMtrx[j][k];
		}

	}

	//歸一化SW矩陣,以免求逆后數(shù)字太小而引起舍入誤差的增加
	for (j = 0; j <FEADIM; j++)
		for (k = 0; k < FEADIM; k++)
			SW[j][k] = SW[j][k] / (nC1 + nC2);


	//下面求dirToMap, meanC1, meanC2
	//dirToMap = SW- * (meanVector1 - meanVector2)
	//meanC1 = T(dirToMap) * meanVector1
	//meanC2 = T(dirToMap) * meanVector2
	for (j = 0; j < FEADIM; j++)
		tempV1[j][0] = diffVector[j];
	
	//矩陣求逆
	flag = brinv(SW,FEADIM);
	if (flag != 1)
		return FAIL;

	brmul(SW, tempV1, FEADIM, FEADIM, 1, dirToMap);//得到dirToMap

	for (j = 0; j < FEADIM; j++)
	{
		tempV2[0][j] = dirToMap[j][0];//轉(zhuǎn)置
		tempV1[j][0] = meanVector1[j];
	}
	brmul(tempV2, tempV1, 1, FEADIM, 1, tempV);
	meanC1 = tempV [0][0];//得到meanC1

	for (j = 0; j < FEADIM; j++)
	{
		tempV1[j][0] = meanVector2[j];
	}
	brmul(tempV2, tempV1, 1, FEADIM, 1, tempV);
	meanC2 = tempV[0][0];//得到meanC2

	return SUCCESSFUL;
}


/*
classifier (s)
s: certain testing sample
classifying using
dirToMap ,meanC1,meanC2, feature
分類時(shí)把多類問題轉(zhuǎn)化為兩類問題,可能性最大的類作為判決結(jié)果
如:0類和1類比較,可能性大的再和3類比較,依次類推
*/
int classifier (s)
struct Sample *s;
{
	
	int serial1;
	int serial2;

	int flag;//成功與否的標(biāo)識(shí)
	double critical;//判決臨界值
	double tempV[1][1];
	double tempV1[FEADIM][1],tempV2[1][FEADIM];
	int count, j;
	
	serial1 =0;//第一類初始化為0

	for (count = 1; count < 10; count++)
	{
		serial2 = count;

		//選出特征點(diǎn)
		flag = selPoints (serial1, serial2);
		if (flag == FAIL)
			return FAIL;

		//提取特征
		genFeature (trainingSample, TRAININGSNUM);
		genFeature (testingSample, TESTINGSNUM);

		//計(jì)算分類器
		if (Fisher (serial1, serial2) != SUCCESSFUL)
			return FAIL;


		//開始判別

		if (nC1 ==0 || nC2 ==0)
			return FAIL;

		critical = (meanC1 * nC1 + meanC2 * nC2) / (nC1 + nC2);

		for (j = 0; j < FEADIM; j++)
		{
			tempV2[0][j] = dirToMap[j][0];//轉(zhuǎn)置
			tempV1[j][0] = (*s).feature[j];
		}

		brmul(tempV2, tempV1, 1, FEADIM, 1, tempV);
	
		if (tempV[0][0] < critical)
			serial1 = serial2;
	}
				
	(*s).isClassified = 1;
	(*s).classifiedClass[serial1] = 1;

	return SUCCESSFUL;
}


/*
void ftestingSample (resultf)
char *resultf:結(jié)果輸出文件名,
調(diào)用classifier (),作判決,輸出結(jié)果
*/
void ftestingSample (resultf)

char *resultf;
{
	struct Sample *s;
	FILE *rf;
	
	int flag;
	int i, j, k, tempClass;
	int rightNum, errorNum;
	double ratio;
		
	s = testingSample;

	if	((rf = fopen (resultf, "a")) == NULL)
	{
		printf ("Can't open file %s\n", resultf);
		return;
	}

	errorNum = 0;
	for (i = 899; i < TESTINGSNUM; i++)
	{	
		flag = classifier (s + i);//判第i個(gè)樣本分類
		if (flag == FAIL)
			return;
			
		fprintf (rf, "Sample %d (%d):\n", i, s[i].trueClass);
		fprintf (rf, "Classified to :");
		
		printf ("Sample %d (%d):\n", i, s[i].trueClass);
		printf ("Classified to :");

		k = 0;

		for (j = 0; j < 10; j++)
		{
			if (s[i].classifiedClass[j] == 1)
			{
				k++;
				tempClass = j;
				fprintf (rf, "%d ", j);
				printf ("%d ", j);
			}
		}
		
		if (k !=1 || tempClass != s[i].trueClass)
		{
			fprintf (rf, "\nError\n\n");
			printf ("Error\n");
			errorNum++;
		}	
		else
		{
			fprintf (rf, "\n\n\n");
			printf ("\n");
		}	
	}
	
	//統(tǒng)計(jì)			
	rightNum = TESTINGSNUM - errorNum;
	ratio =  (double)rightNum/(double)TESTINGSNUM;
	fprintf (rf, "\n\nStatistics\n");
	fprintf (rf, "------------------------------------------\n\n");
	fprintf (rf,"Right :%d		Error:%d	Ratio:%f\n",
		rightNum, errorNum, ratio);

	fclose (rf);
	return;
}


void main (void)
{
	char *dfname1 = "D:\\usps\\trainData.bina";
	char *cfname1 = "D:\\usps\\trainDataResult.bina";
	char *dfname2 = "D:\\usps\\testData.bina";
	char *cfname2 = "D:\\usps\\testDataResult.bina";
	char *resultf = "D:\\usps\\result.txt";

	int flag;

	//提取數(shù)據(jù)
	flag = retrieveSample (
		trainingSample, TRAININGSNUM, dfname1, cfname1);
	if (flag != SUCCESSFUL) return;
	
	flag = retrieveSample (
		testingSample, TESTINGSNUM, dfname2, cfname2);
	if (flag != SUCCESSFUL) return;

	//測(cè)試樣本
	ftestingSample (resultf);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www国产精品av| 日本免费在线视频不卡一不卡二| www激情久久| xnxx国产精品| 久久精品一级爱片| 久久久久九九视频| 久久久久久久综合色一本| 2022国产精品视频| 亚洲精品在线免费观看视频| 精品久久久久一区二区国产| 久久蜜桃一区二区| 国产午夜精品一区二区三区视频| 久久精品在线免费观看| 国产日产欧美精品一区二区三区| 国产日韩综合av| 国产精品网曝门| 亚洲婷婷综合久久一本伊一区| 亚洲男人都懂的| 亚洲一卡二卡三卡四卡无卡久久| 午夜精品影院在线观看| 日本不卡一区二区三区高清视频| 麻豆极品一区二区三区| 国产伦理精品不卡| av中文字幕一区| 91国产免费观看| 日韩一区二区三区四区| 久久久噜噜噜久久中文字幕色伊伊| 蜜臀av在线播放一区二区三区| 肉色丝袜一区二区| 国产一区二区三区观看| 波多野结衣的一区二区三区| 91久久人澡人人添人人爽欧美| 欧美日韩国产首页在线观看| 日韩一区二区三| 国产欧美一区二区精品久导航 | 偷拍一区二区三区四区| 裸体在线国模精品偷拍| 91在线你懂得| 欧美久久久久久久久中文字幕| 精品免费99久久| 中文字幕日韩一区| 日韩精品1区2区3区| 国产一区二区导航在线播放| 91精品福利在线| 26uuu欧美日本| 亚洲自拍偷拍网站| 韩国毛片一区二区三区| 91啪在线观看| 精品理论电影在线| 尤物在线观看一区| 国内精品写真在线观看| 91免费在线视频观看| 欧美一区二区三区免费视频| 国产精品欧美久久久久无广告| 一区二区三区**美女毛片| 韩日av一区二区| 欧美最猛黑人xxxxx猛交| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区在线电影| 国产馆精品极品| 91精品国产综合久久久久| 国产精品家庭影院| 久久99精品久久久久久动态图| 91久久精品国产91性色tv| 久久久国产精品麻豆| 日本亚洲天堂网| 色噜噜夜夜夜综合网| 久久精品国产网站| 一本久道久久综合中文字幕| 精品福利一区二区三区| 午夜电影一区二区三区| 97精品电影院| 久久久久久毛片| 日韩国产欧美在线播放| 色综合激情五月| 国产精品视频麻豆| 久久超碰97人人做人人爱| 欧美日韩精品专区| 亚洲日本丝袜连裤袜办公室| 国产精品一区免费在线观看| 91精品国产高清一区二区三区| 亚洲色图欧美在线| 成人午夜在线视频| 久久综合国产精品| 裸体健美xxxx欧美裸体表演| 欧美二区在线观看| 亚洲一区在线视频观看| 97久久精品人人爽人人爽蜜臀 | 裸体歌舞表演一区二区| 欧美午夜精品久久久久久超碰 | 亚洲成a人在线观看| av高清久久久| 日本一区二区三区久久久久久久久不| 蜜桃视频第一区免费观看| 欧美挠脚心视频网站| 亚洲图片欧美色图| 在线影视一区二区三区| 一区二区三区精品在线| 91网址在线看| 《视频一区视频二区| 成人av在线看| 成人免费小视频| 99精品久久久久久| **欧美大码日韩| 99免费精品在线| 亚洲欧美日韩成人高清在线一区| 99视频有精品| 亚洲另类在线一区| 在线观看视频一区| 亚洲成av人片在线观看无码| 欧美系列亚洲系列| 日韩不卡一区二区三区| 日韩欧美的一区| 韩国成人在线视频| 国产女人18水真多18精品一级做| 国产91在线观看| 综合欧美亚洲日本| 在线视频欧美精品| 日韩高清一区二区| 精品欧美一区二区三区精品久久| 国产一区二区主播在线| 欧美国产精品一区二区| 国产欧美一区二区精品婷婷| 国产高清在线精品| 中文字幕一区不卡| 日本韩国欧美国产| 秋霞影院一区二区| 久久久亚洲精品一区二区三区| 成人一区二区三区在线观看| 亚洲美女在线国产| 91精品国产麻豆| 国产成人精品一区二区三区网站观看| 亚洲国产激情av| 在线亚洲欧美专区二区| 日韩二区三区四区| 久久精品欧美一区二区三区不卡| 99精品一区二区三区| 亚洲国产精品一区二区www在线| 日韩丝袜情趣美女图片| 国产成人免费视频 | 国产成人精品免费| 亚洲女人的天堂| 日韩一级完整毛片| 成人av高清在线| 五月激情综合网| 久久久精品综合| 欧美亚洲综合一区| 国内欧美视频一区二区| 一区二区在线电影| 26uuu国产电影一区二区| 一本色道久久综合精品竹菊| 久久国产免费看| 亚洲精品日日夜夜| 精品国产不卡一区二区三区| 91麻豆自制传媒国产之光| 久久99精品久久久久久国产越南 | 曰韩精品一区二区| xfplay精品久久| 欧美三级一区二区| 大胆亚洲人体视频| 日本午夜精品视频在线观看| 久久久久99精品国产片| 欧美日韩国产片| 成年人网站91| 久久99久久精品| 亚洲主播在线播放| 欧美精彩视频一区二区三区| 欧美日韩第一区日日骚| 99精品视频中文字幕| 久久99九九99精品| 亚洲成人综合在线| 国产精品萝li| 日韩av中文字幕一区二区| 国产精品传媒入口麻豆| 亚洲精品一区二区三区蜜桃下载| 欧美综合欧美视频| bt7086福利一区国产| 国产一区二区三区| 奇米色一区二区三区四区| 亚洲欧美日韩精品久久久久| 久久久综合精品| 日韩午夜激情av| 欧美高清视频www夜色资源网| 97久久超碰精品国产| 国产不卡视频在线观看| 久久国内精品自在自线400部| 亚洲国产精品一区二区www在线| 中文字幕一区二区5566日韩| 国产欧美日韩不卡免费| 精品国产一区二区三区不卡| 欧美一区二区在线播放| 欧美日韩一区二区三区免费看 | 成人精品免费网站| 国产精品一区2区| 久久国产精品区| 美腿丝袜亚洲色图| 青娱乐精品在线视频| 日韩综合小视频| 日韩专区一卡二卡| 日韩成人免费看|