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

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

?? imageprocessing.cpp

?? 車(chē)牌定位c++源碼,本人編輯的地方車(chē)輛號(hào)牌識(shí)別.
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
				weight+=mask[xk+radius];
			}
			Mediate(x,y)=temp/weight;
		}
		Progress(y/2);
	}
//column process
	double* Column = new double[nHeight];
	for(x=0;x<nWidth;x++)
	{
		for(y=radius;y<nHeight-radius;y++)
		{
			temp=0;
			for(yk=-radius;yk<radius+1;yk++)
				temp+=Mediate(x,y+yk)*mask[yk+radius];
			Column[y]=temp;
		}
		for(y=0;y<radius;y++)
		{
			temp=0;
			weight=0;
			for(yk=-y;yk<radius+1;yk++)
			{
				temp+=Mediate(x,y+yk)*mask[yk+radius];
				weight+=mask[yk+radius];
			}
			Column[y]=temp/weight;
		}
        for(y=nHeight-radius;y<nHeight;y++)
		{
			temp=0;
			weight=0;
			for(yk=-radius;yk<nHeight-y;yk++)
			{
				temp+=Mediate(x,y+yk)*mask[yk+radius];
				weight+=mask[yk+radius];
			}
			Column[y]=temp/weight;
		}

		for(y=0;y<nHeight;y++)
		{
			Out(x,y)=(int)Column[y];
		}
		Progress(nHeight/2+x*nHeight/2/nWidth);
	}
	delete []Column;
	delete []mask;
//    Laplacian(nWidth,nHeight,lpOutput,lpMediate);
	delete []lpMediate;
//general method(hide)
	PutPoints(nWidth,nHeight,lpOut,lpOutput);
	delete lpInput;
	delete lpOutput;
}

int Conv2(int nWidth,int nHeight,double *lpOutput,BYTE *lpInput,double mask[],int windowX,int windowY)
{
	int x,y,xk,yk;
	int radiusX=windowX/2;
	int radiusY=windowY/2;
	double temp;
    for(y=radiusY;y<nHeight-radiusY;y++)
	{
		for(x=radiusX;x<nWidth-radiusX;x++)
		{
			temp=0;
			for(xk=-radiusX;xk<radiusX+1;xk++)
				for(yk=-radiusY;yk<radiusY+1;yk++)
					temp+=In(x+xk,y+yk)*mask[xk+radiusX+(yk+radiusY)*windowX];
			Out(x,y)=temp;
		}
	}    
	return 0;
}

int Zerocross(int nWidth,int nHeight,BYTE *lpOutput,double *lpInput,double thresh)
{
	int x,y;
//zerocross cal
	for(y=1;y<nHeight-1;y++)
	{
		for(x=1;x<nWidth-1;x++)
		{
			if(In(x,y)<0 && In(x+1,y)>0 &&
				fabs(In(x,y)-In(x+1,y))>thresh)
			{
				Out(x,y)=255;
			}
			else if(In(x-1,y)>0 && In(x,y)<0 &&
				fabs(In(x-1,y)-In(x,y))>thresh)
			{
				Out(x,y)=255;
			}
			else if(In(x,y)<0 && In(x,y+1)>0 &&
				fabs(In(x,y)-In(x,y+1))>thresh)
			{
				Out(x,y)=255;
			}
			else if(In(x,y-1)>0 && In(x,y)<0 &&
				fabs(In(x,y)-In(x,y-1))>thresh)
			{
				Out(x,y)=255;
			}
		/*	if((In(x,y)<0 && In(x+1,y)>0)||
			   (In(x,y)<0 && In(x,y+1)>0)||
			   (In(x,y)>0 && In(x+1,y)<0)||
			   (In(x,y)>0 && In(x,y+1)<0))
			{
				Out(x,y)=255;
			}
		*/	else if(In(x,y)==0)
			{
				if(In(x-1,y)<0 && In(x+1,y)>0 &&
				   fabs(In(x-1,y)-In(x+1,y))>2*thresh)
				{
					Out(x,y)=255;
				}
			    else if(In(x-1,y)>0 && In(x+1,y)<0 &&
				    fabs(In(x-1,y)-In(x+1,y))>2*thresh)
				{
				    Out(x,y)=255;
				}
			    else if(In(x,y-1)>0 && In(x,y+1)<0 &&
			    	fabs(In(x,y-1)-In(x,y+1))>2*thresh)
				{
				    Out(x,y)=255;
				}
			    else if(In(x,y+1)>0 && In(x,y-1)<0 &&
				    fabs(In(x,y+1)-In(x,y-1))>2*thresh)
				{
				    Out(x,y)=255;
				}
				else 
				{
				    Out(x,y)=0;
				}
			}
			else 
			{
				Out(x,y)=0;
			}
		}
	}
	return 0;
}

void LoG(int nWidth,int nHeight,BYTE *lpIn,BYTE *lpOut,void (* Progress)(int Pos))
{

	BYTE *lpInput=new BYTE[nWidth*nHeight];
	BYTE *lpOutput=new BYTE[nWidth*nHeight];
	GetPoints(nWidth,nHeight,lpIn,lpInput);
	double thresh=0,sigma=1;

    int x,y,xx,yy;
	int radius,window; //window of the converlutin kernel(window=2*radius+1)
	double dev_inv=0.5/(sigma*sigma);  //1/(2*sigma^2)
	radius = (int)ceil(3*sigma);
	window = radius*2+1;
    //generate mask of convolution (matlab code)
	//std2 = std*std;
    //h1 = exp(-(x.*x + y.*y)/(2*std2));
    
	double* mask = new double [window*window];
	double sum=0;
	double std2=2*sigma*sigma;
    for(y=0;y<radius;y++)
	{
		for(x=0;x<radius;x++)
		{
			yy=(y-radius)*(y-radius);
			xx=(x-radius)*(x-radius);
			mask[x+y*window]=exp(-(xx+yy)*dev_inv);
//			mask[window-1-x+y*window]=mask[x+y*window];
//			mask[window-1-x+(window-1-y)*window]=mask[x+y*window];
//			mask[x+(window-1-y)*window]=mask[x+y*window];
			sum=sum+4*mask[x+y*window];
		}
	}
	x=radius;
	for(y=0;y<radius;y++)
	{
		yy=(y-radius)*(y-radius);
		mask[x+y*window]=exp(-yy*dev_inv);
//		mask[x+(window-1-y)*window]=mask[x+y*window];
		sum=sum+2*mask[x+y*window];
	}
	y=radius;
	for(x=0;x<radius;x++)
	{
		xx=(x-radius)*(x-radius);
		mask[x+y*window]=exp(-xx*dev_inv);
//		mask[window-1-x+y*window]=mask[x+y*window];
		sum=sum+2*mask[x+y*window];
	}
	mask[radius+radius*window]=1;
	sum=sum+mask[radius+radius*window];
//h = h1.*(x.*x + y.*y - 2*std2)/(2*pi*(std^6));	
	double denominator=2*3.14159265*pow(sigma,6)*sum;
	sum=0;
	for(x=0;x<radius;x++)
	{
		for(y=0;y<radius;y++)
		{
			yy=(y-radius)*(y-radius);
			xx=(x-radius)*(x-radius);
			mask[x+y*window]=mask[x+y*window]*(xx+yy-2*std2)/denominator;
//			mask[window-1-x+y*window]=mask[x+y*window];
//			mask[window-1-x+(window-1-y)*window]=mask[x+y*window];
//			mask[x+(window-1-y)*window]=mask[x+y*window];
			sum=sum+4*mask[x+y*window];
		}
	}
	x=radius;
	for(y=0;y<radius;y++)
	{
		yy=(y-radius)*(y-radius);
		mask[x+y*window]=mask[x+y*window]*(yy-2*std2)/denominator;
//		mask[x+(window-1-y)*window]=mask[x+y*window];
		sum=sum+2*mask[x+y*window];
	}
	y=radius;
	for(x=0;x<radius;x++)
	{
		xx=(x-radius)*(x-radius);
		mask[x+y*window]=mask[x+y*window]*(xx-2*std2)/denominator;
//		mask[window-1-x+y*window]=mask[x+y*window];
		sum=sum+2*mask[x+y*window];
	}
	mask[radius+radius*window]=mask[radius+radius*window]*(-2*std2)/denominator;
	sum=sum+mask[radius+radius*window];
//h = h - sum(h(:))/prod(size(h)); % make the filter sum to zero
	double average=sum/(window*window);
	for(x=0;x<radius;x++)
	{
		for(y=0;y<radius;y++)
		{
			mask[x+y*window]=mask[x+y*window]-average;
			mask[window-1-x+y*window]=mask[x+y*window];
			mask[window-1-x+(window-1-y)*window]=mask[x+y*window];
			mask[x+(window-1-y)*window]=mask[x+y*window];
		}
	}
	x=radius;
	for(y=0;y<radius;y++)
	{
		mask[x+y*window]=mask[x+y*window]-average;
		mask[x+(window-1-y)*window]=mask[x+y*window];
	}
	y=radius;
	for(x=0;x<radius;x++)
	{
		mask[x+y*window]=mask[x+y*window]-average;
		mask[window-1-x+y*window]=mask[x+y*window];
	}
	mask[radius+radius*window]=mask[radius+radius*window]-average;

    double* lpMediate = new double[nWidth*nHeight];
	//2D convolution
	if(Conv2(nWidth,nHeight,lpMediate,lpInput,mask,window,window))
	{
		TRACE("error in Conv2");
		return;
	};
//calcaulate the thresh for default
//  thresh = .75*mean2(abs(b(rr,cc)));
	sum = 0;
    for(y=radius;y<nHeight-radius;y++)
	{
		for(x=radius;x<nWidth-radius;x++)
		{
			sum = sum + fabs(Mediate(x,y));
		}
	}
	thresh=0.5*sum/((nWidth-2*radius)*(nHeight-2*radius));
//zerocross cal
    if(Zerocross(nWidth,nHeight,lpOutput,lpMediate,thresh))
	{
		TRACE("error in Zerocross");
		return;
	}
	delete mask;
	PutPoints(nWidth,nHeight,lpOut,lpOutput);
	delete lpInput;
	delete lpOutput;
}


void BiValue1(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput)
{
	BYTE *lpPoints=new BYTE[nWidth*nHeight];
	GetPoints(nWidth,nHeight,lpInput,lpPoints);
	double t=GetNumber("請(qǐng)輸入閾值",128,255);
	BYTE threshold=(BYTE)t;
	int x,y;
	for(y=0;y<nHeight;y++)
	{
		for(x=0;x<nWidth;x++)
		{
			if (Point(x,y)>threshold) Point(x,y)=255;
			else Point(x,y)=0;
		}
	}

	PutPoints(nWidth,nHeight,lpOutput,lpPoints);
	delete lpPoints;
}



void Sobel(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput,void (* Progress)(int Pos))
{
	int x,y,x1,y1,i;
	BYTE *lpPoints=new BYTE[nWidth*nHeight];
	BYTE *lpPoints1=new BYTE[nWidth*nHeight];
	memset(lpPoints1,0,nWidth*nHeight);
	GetPoints(nWidth,nHeight,lpInput,lpPoints);

	int d,max;
	static s[8][9]={
		{-1,-2,-1,0,0,0,1,2,1},
		{0,-1,-2,1,0,-1,2,1,0},
		{1,0,-1,2,0,-2,1,0,-1},
		{2,1,0,1,0,-1,0,-1,-2},
		{1,2,1,0,0,0,-1,-2,-1},
		{0,1,2,-1,0,1,-2,-1,0},
		{-1,0,1,-2,0,2,-1,0,1},
		{-2,-1,0,-1,0,1,0,1,2}
	};
	for(y=1;y<nHeight-1;y++)
	{
		for(x=1;x<nWidth-1;x++)
		{
			max=0;
			for(i=0;i<8;i++)
			{
				d=0;
				for(y1=0;y1<3;y1++)
				for(x1=0;x1<3;x1++)
				{
					d+=s[i][x1+y1*3]*Point(x+x1-1,y+y1-1);
				}
				if (d>max) max=d;
			}
			if (max>255) max=255;
			Point1(x,y)=(BYTE)max;
		}
		Progress(y);
	}
	PutPoints(nWidth,nHeight,lpOutput,lpPoints1);
	delete lpPoints;
	delete lpPoints1;
}

void Prewitte(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput,void (* Progress)(int Pos))
{
	int x,y,x1,y1,i;
	BYTE *lpPoints=new BYTE[nWidth*nHeight];
	BYTE *lpPoints1=new BYTE[nWidth*nHeight];
	memset(lpPoints1,0,nWidth*nHeight);
	GetPoints(nWidth,nHeight,lpInput,lpPoints);

	int d,max;
	static s[8][9]={
		{-1,-1,-1,0,0,0,1,1,1},
		{0,-1,-1,1,0,-1,1,1,0},
		{1,0,-1,1,0,-1,1,0,-1},
		{1,1,0,1,0,-1,0,-1,-1},
		{1,1,1,0,0,0,-1,-1,-1},
		{0,1,1,-1,0,1,-1,-1,0},
		{-1,0,1,-1,0,1,-1,0,1},
		{-1,-1,0,-1,0,1,0,1,1}
	};
	for(y=1;y<nHeight-1;y++)
	{
		for(x=1;x<nWidth-1;x++)
		{
			max=0;
			for(i=0;i<8;i++)
			{
				d=0;
				for(y1=0;y1<3;y1++)
				for(x1=0;x1<3;x1++)
				{
					d+=s[i][x1+y1*3]*Point(x+x1-1,y+y1-1);
				}
				if (d>max) max=d;
			}
			if (max>255) max=255;
			Point1(x,y)=(BYTE)max;
		}
		Progress(y);
	}
	PutPoints(nWidth,nHeight,lpOutput,lpPoints1);
	delete lpPoints;
	delete lpPoints1;
}

void Roberts(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput,void (* Progress)(int Pos))
{
	int x,y;
	BYTE *lpPoints=new BYTE[nWidth*nHeight];
	BYTE *lpPoints1=new BYTE[nWidth*nHeight];
	memset(lpPoints1,0,nWidth*nHeight);
	GetPoints(nWidth,nHeight,lpInput,lpPoints);

	int d;
	for(y=0;y<nHeight-1;y++)
	{
		for(x=0;x<nWidth-1;x++)
		{
			d=2*(abs(Point(x,y)-Point(x+1,y+1))+abs(Point(x+1,y)-Point(x,y+1)));
			if (d>255) d=255;
			Point1(x,y)=(BYTE)d;
		}
		Progress(y);
	}
	PutPoints(nWidth,nHeight,lpOutput,lpPoints1);
	delete lpPoints;
	delete lpPoints1;
}

void PseudoColor1(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput,void (* Progress)(int Pos))
{
	int x,y;
	BYTE *lpPoints=new BYTE[nWidth*nHeight];
	int nByteWidth=nWidth*3;
	if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);
	GetPoints(nWidth,nHeight,lpInput,lpPoints);
	BYTE b,R,G,B;
	for(y=0;y<nHeight;y++)
	{
		for(x=0;x<nWidth;x++)
		{
			b=Point(x,y);
			if (b<64)
			{
				B=255;
				G=4*b;
				R=0;
			}
			else if (b<128)
			{
				B=(127-b)*4;
				G=255;
				R=0;
			}
			else if (b<192)
			{
				B=0;
				G=255;
				R=(b-128)*4;
			}
			else
			{
				B=0;
				G=(255-b)*4;
				R=255;
			}

			lpOutput[x*3+nByteWidth*y]=B;
			lpOutput[x*3+1+nByteWidth*y]=G;
			lpOutput[x*3+2+nByteWidth*y]=R;
		}
		Progress(y);
	}
	delete lpPoints;
}

BYTE psf2(BYTE x)
{
	double x1=x;
	return (BYTE)((5-x1/42.5)*x1);
}

void PseudoColor2(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput,void (* Progress)(int Pos))
{
	int x,y;
	BYTE *lpPoints=new BYTE[nWidth*nHeight];
	int nByteWidth=nWidth*3;
	if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);
	GetPoints(nWidth,nHeight,lpInput,lpPoints);
	BYTE b,R,G,B;
	for(y=0;y<nHeight;y++)
	{
		for(x=0;x<nWidth;x++)
		{
			b=Point(x,y);
			if (b<85)
			{
				B=psf2(84-b);
				G=psf2(b);
				R=0;
			}
			else if (b<170)
			{
				B=0;
				G=psf2(169-b);
				R=psf2(b-85);
			}
			else
			{
				B=psf2(b-170);
				G=0;
				R=psf2(255-b);
			}

			lpOutput[x*3+nByteWidth*y]=B;
			lpOutput[x*3+1+nByteWidth*y]=G;
			lpOutput[x*3+2+nByteWidth*y]=R;
		}
		Progress(y);
	}
	delete lpPoints;
}



typedef struct MaxValue{
	int Value;
	int Dist;
	int AngleNumber;
}MaxValue;

//////////////////////////////////////////////////////////////
bool HoughTF(long lWidth,long lHeight,BYTE *lpInput,BYTE *lpOutput)
{
	BYTE *lpDIBBits;

	BYTE *lpSrc; //point to the source bitmap
	BYTE *lpDst;  //point to the template bitmap
	BYTE *lpTrans; //point to the the transforming bitmap
	BYTE *lpNewDIBBits; //point to the memory bitmap

	int *lpTransArea; //point to the transforming area
	int iMaxDist; //the maximize distance of the transforming area
	int iMaxAngleNumber;// the maximize angle of the transforming area

	int iDist; //the transforming coordinate distance
	int iAngleNumber;// the transforming coordinate angle

	BYTE pixel;

	MaxValue MaxValue1; //store the first two biggest (r,a)
	MaxValue MaxValue2;
 

	lpDIBBits=(BYTE *)malloc(lWidth*lHeight);
	BiValue1(lWidth,lHeight,lpInput,lpOutput);
	GetPoints(lWidth,lHeight,lpOutput,lpDIBBits);
	

	lpNewDIBBits=(BYTE *)malloc(lWidth*lHeight);
	if(lpNewDIBBits==NULL)
		return false;

	//initialize the allocated memory with value 255
	lpDst=(BYTE *)lpNewDIBBits;
	//memset(lpDst,(BYTE)255,lWidth*lHeight);
	memcpy(lpDst,lpDIBBits,lWidth*lHeight);

	//calculate the transforming area
	iMaxDist=(int)(sqrt((double)lWidth*lWidth+lHeight*lHeight)+0.5);
    //angle from 0 to 180 degree,2 degree per grid
	iMaxAngleNumber=90;

	//allocate memory for the transforming area and initialized with 0
	lpTransArea=(int *)malloc(iMaxAngleNumber*iMaxDist*sizeof(int));
	if(lpTransArea==NULL)
		return false;
	lpTrans=(BYTE *)lpTransArea;
	memset(lpTrans,0,iMaxAngleNumber*iMaxDist*sizeof(int));

	for(int j=0;j<lHeight;j++)
	{
		for(int i=0;i<lWidth;i++)
		{
			lpSrc=(BYTE *)lpDIBBits+lWidth*j+i;
			pixel=(BYTE)*lpSrc;

			if(pixel!=255 && *lpSrc!=0)//the grey value is supposed  to be 0 or 255
				return false;
			if(pixel==255)//the white point
			{
				for(iAngleNumber=0;iAngleNumber<iMaxAngleNumber;iAngleNumber++)
				{
					iDist=(int)fabs(i*cos(iAngleNumber*2*pi/180.0)+j*sin(iAngleNumber*2*pi/180.0));
					if(iDist>0)
					  *(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)=\
					   *(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)+1;
				}
			}
		}
	}

	//find out the first two biggest points
	MaxValue1.Value=0;
	MaxValue2.Value=0;

	for(iDist=0;iDist<iMaxDist;iDist++)
	{
		for(iAngleNumber=0;iAngleNumber<iMaxAngleNumber;iAngleNumber++)
		{
			if((int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)>MaxValue1.Value)
			{
				MaxValue1.Value=(int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber);
				MaxValue1.Dist=iDist;
				MaxValue1.AngleNumber=iAngleNumber;
			}


		}
	}

	//clear the nearby points
	for(iDist=-9;iDist<10;iDist++)
	{
		for(iAngleNumber=-1;iAngleNumber<2;iAngleNumber++)
			if(iDist+MaxValue1.Dist>0 && iDist+MaxValue1.Dist<iMaxDist \
				&& iAngleNumber+MaxValue1.AngleNumber>=0\
				&&iAngleNumber+MaxValue1.AngleNumber<iMaxAngleNumber)
			{
				*(lpTransArea+(iDist+MaxValue1.Dist)*iMaxAngleNumber+\
					(iAngleNumber + MaxValue1.AngleNumber))=0;
			}
	}
	

	for(iDist=0;iDist<iMaxDist;iDist++)
	{
		for(iAngleNumber=0;iAngleNumber<iMaxAngleNumber;iAngleNumber++)
		{
			if((int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber)>MaxValue2.Value\
				&&iDist!=MaxValue1.Dist )
			{
				MaxValue2.Value=(int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber);
				MaxValue2.Dist=iDist;
				MaxValue2.AngleNumber=iAngleNumber;
			}


		}
	}

	if(abs(MaxValue1.AngleNumber-MaxValue2.AngleNumber)<=2)
	{
		for(long j=0;j<lHeight;j++)
		{
			for(long i=0;i<lWidth;i++)
			{
				lpDst=(BYTE *)lpNewDIBBits+lWidth*j+i;
				//set the color value white if the pixel in the first line
				iDist=(int)fabs(i*cos(MaxValue1.AngleNumber*2*pi/180.0)+\
					j*sin(MaxValue1.AngleNumber*2*pi/180.0));
				if(iDist==MaxValue1.Dist)
					*lpDst=(BYTE)255;
				//set the color value white if the pixel in the second line
				iDist=(int)fabs(i*cos(MaxValue2.AngleNumber*2*pi/180.0)+\
					j*sin(MaxValue1.AngleNumber*2*pi/180.0));
				if(iDist==MaxValue2.Dist)
					*lpDst=(BYTE)255;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲二区在线观看| 亚洲国产一区二区三区青草影视| 亚洲午夜一区二区| 成人免费视频视频| 日韩精品一区二区三区中文不卡| 一区二区三区免费网站| 成人免费视频一区二区| 精品国产一区二区亚洲人成毛片| 亚洲一区中文日韩| eeuss鲁一区二区三区| 精品剧情v国产在线观看在线| 亚洲国产美女搞黄色| 97久久精品人人做人人爽| 国产清纯白嫩初高生在线观看91 | 欧美日韩在线三级| 国产精品久久一卡二卡| 国产毛片精品视频| 欧美大片一区二区| 日本三级韩国三级欧美三级| 日本丶国产丶欧美色综合| 久久久久久久精| 久久99精品久久久久久国产越南 | 色88888久久久久久影院野外| 国产午夜精品美女毛片视频| 精品午夜一区二区三区在线观看| 日韩一区二区精品| 日韩国产欧美一区二区三区| 欧美亚男人的天堂| 亚洲在线观看免费| 欧美在线|欧美| 一区二区激情小说| 日本乱人伦aⅴ精品| 一区二区视频在线看| 99国产精品99久久久久久| 中文字幕在线不卡| 99re热视频精品| 亚洲视频一区在线观看| 91蜜桃免费观看视频| 亚洲人快播电影网| 91国在线观看| 亚洲成人免费在线| 这里只有精品视频在线观看| 久久精品一区二区三区不卡| 制服丝袜中文字幕一区| 亚洲成人激情自拍| 欧美精品123区| 丝袜诱惑亚洲看片| 91麻豆精品国产91久久久| 青娱乐精品视频在线| 欧美肥妇free| 毛片一区二区三区| 久久麻豆一区二区| caoporen国产精品视频| 国产精品久久久久久久久免费桃花 | 久久99国产精品麻豆| 26uuu国产一区二区三区| 国产成人综合视频| 亚洲欧洲精品天堂一级| 色偷偷成人一区二区三区91| 亚洲一区在线免费观看| 3d成人h动漫网站入口| 九色综合国产一区二区三区| 国产婷婷色一区二区三区四区| 国产·精品毛片| 亚洲色欲色欲www| 欧美日韩亚洲综合在线| 狠狠色丁香婷综合久久| 日韩在线播放一区二区| 日欧美一区二区| 日韩一区二区电影| 国产真实精品久久二三区| 国产婷婷色一区二区三区四区| 成人一区在线观看| 亚洲一区二区在线视频| 91麻豆精品国产自产在线观看一区| 另类小说综合欧美亚洲| 久久品道一品道久久精品| 成人免费观看视频| 亚洲国产精品人人做人人爽| 日韩一区二区在线免费观看| 国产精一区二区三区| 亚洲欧美一区二区三区极速播放| 欧美日韩一级视频| 国产一区二区主播在线| 日韩码欧中文字| 日韩网站在线看片你懂的| 成人av午夜电影| 亚洲第一久久影院| 国产日韩欧美a| 欧洲亚洲精品在线| 经典一区二区三区| 一区二区激情视频| 久久久久国产一区二区三区四区| 日本高清成人免费播放| 韩国一区二区在线观看| 一区二区三区在线不卡| 精品国产免费久久| 91精品办公室少妇高潮对白| 精品无码三级在线观看视频| 日本vs亚洲vs韩国一区三区二区| 欧美aaaaaa午夜精品| 国产日韩在线不卡| 欧美性大战xxxxx久久久| 国产美女主播视频一区| 亚洲一区精品在线| 国产欧美日韩三级| 日韩一区二区三区在线| 一本一本大道香蕉久在线精品 | 亚洲欧洲国产专区| 欧美成人一区二区三区| 在线欧美小视频| 国模一区二区三区白浆| 亚洲aⅴ怡春院| 亚洲欧美视频在线观看| 精品成人私密视频| 91麻豆精品国产自产在线观看一区| 99久久99久久精品免费观看 | 亚洲成a人片在线不卡一二三区| 国产日韩欧美在线一区| 欧美一级欧美一级在线播放| 色婷婷精品大视频在线蜜桃视频| 国产成人综合自拍| 九色|91porny| 免费成人小视频| 亚洲国产综合在线| 亚洲人成精品久久久久| 欧美国产日韩在线观看| 欧美成人性战久久| 欧美一区二区网站| 婷婷国产在线综合| 亚洲精品亚洲人成人网在线播放| 国产亚洲污的网站| 精品久久免费看| 日韩欧美123| 欧美一区二区三区四区久久| 欧美日韩美少妇| 欧美三级电影在线看| 91社区在线播放| 99re视频精品| eeuss鲁片一区二区三区在线看| 国产成人在线观看免费网站| 久久99久久久久| 捆绑调教美女网站视频一区| 免费人成黄页网站在线一区二区| 亚洲福利视频一区| 亚洲成av人片观看| 亚洲va国产va欧美va观看| 亚洲国产精品久久不卡毛片| 一区二区三区日韩欧美| 一区二区在线观看视频| 洋洋av久久久久久久一区| 亚洲啪啪综合av一区二区三区| 国产精品国产三级国产普通话三级| 国产网站一区二区| 国产女人aaa级久久久级 | 欧美日韩激情一区| 欧美日韩高清一区二区| 欧美日韩午夜在线视频| 欧美日韩在线播放| 91精品婷婷国产综合久久| 日韩一区和二区| 日韩欧美中文字幕一区| 欧美成人一区二区三区片免费 | 欧美三级蜜桃2在线观看| 欧美午夜精品一区| 欧洲视频一区二区| 欧美人与性动xxxx| 日韩精品中午字幕| 久久九九全国免费| 国产精品久久久久永久免费观看| 亚洲视频你懂的| 亚洲国产日韩a在线播放| 石原莉奈一区二区三区在线观看| 日韩在线一区二区| 精久久久久久久久久久| 成人影视亚洲图片在线| 一本高清dvd不卡在线观看| 欧美性受xxxx黑人xyx性爽| 欧美日韩国产综合视频在线观看| 91麻豆精品国产无毒不卡在线观看| 日韩精品一区二区三区在线 | 久久综合色一综合色88| 国产午夜久久久久| 亚洲人成网站在线| 日韩电影免费一区| 国产精品系列在线观看| 色拍拍在线精品视频8848| 欧美美女直播网站| 精品久久一区二区| 亚洲丝袜另类动漫二区| 日韩电影在线观看电影| 国产精品一品视频| 91久久精品日日躁夜夜躁欧美| 欧美一区二区三区视频免费| 国产日韩欧美精品电影三级在线| 一区二区在线免费| 久久se这里有精品| 97精品久久久午夜一区二区三区 | 日韩欧美一区二区久久婷婷| 国产女人aaa级久久久级|