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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iprocessd.cpp

?? VC++.net用于圖象處理方面的書籍上面的源代碼
?? CPP
字號:
//   IProcessD.cpp

#include "stdafx.h"
     
#ifndef		_INC_IPROCESSDC
#define		_INC_IPROCESSDC

int		nDirectionNo=0;

void GrayScaleTransfor(CImage *pImgm,int n) 
{
 	struct	IMAGEPARAMENT P;
	BYTE	**list;
	long	pg[256],tab[256];
	RGBQUAD	ColorTab[256];
	int		i,T_gray[256];

 	GetImageParament(pImgm,&P);              
	Histogram(pImgm,0,0,P.nWidth,P.nHeight,pg);
	switch(n) {
		case 1:
			GT_linear(T_gray);
 			break;
		case 2:
			GT_sqrt(T_gray);
 			break;
		case 3:
			GT_log(T_gray);
 			break;
		case 4:
			GT_square(T_gray);
 			break;
		case 5:
			GT_exp(T_gray);
 			break;
		case 6:
			GT_Equal(pg,T_gray);
 			break;
		case 7:
			for (i=0;i<256;i++) tab[i]=i;
			GT_histo_eq(pg,tab,T_gray);
 			break;
		case 8:
			GT_nega(T_gray);
 			break;
		case 9:
			Border_Equal(pg,T_gray);
 			break;
		case 10:
            DensitySegment(ColorTab);
			SetAllPalette(pImgm,ColorTab);
 			break;
		case 11:
			PsendoColor(ColorTab);
			SetAllPalette(pImgm,ColorTab);
  			break;
	}
 	if (n<10) {
		list=(BYTE**) Create2DList(pImgm);
		GT(list,P.nWidth,P.nHeight,T_gray);
		Release2DList(list);
	}
}

void Threshold(CImage *pImgm,int n,double ff)
{
 	struct	IMAGEPARAMENT P;
	BYTE	**list,*lpBuf;
	RGBQUAD	ColorTab[256];
	long	pg[256];
 	int		t,x,y,thre;
	int		tab[256],buf[20],bn;
    
 	GetImageParament(pImgm,&P);              

	list=(BYTE**) Create2DList(pImgm);
	histog(list,pg,0,0,P.nWidth,P.nHeight);
 
	switch(n) {
		case 1:
			thre=FormAnalysis(pg,tab,buf,&bn);
 			break;
		case 2:
			t=GrayImageType(pg);
			if (t==1) ff=1.0-ff;
			thre=Ptile(pg,ff);
			break;
		case 3:
			thre=Otsu(pg);
			break;
		case 4:
			thre=Minimum(pg);
			break;
		case 5:
			thre=KSW_Entropic(pg);
			break;
		case 6:
			thre=BiasNormal(pg);
			break;
		case 7:
			thre=Moment(pg);
			break;
		case 8:
			thre=ColligationThreshold(pg);
			break;
		case 9:
			thre=SimpleThreshold(pg);
			break;
	}

 	for (y=0;y<P.nHeight;y++) {
		lpBuf=(BYTE*) pImgm->GetPixelAddress(0,y);
		for (x=0;x<P.nWidth;x++,lpBuf++) {
			if (*lpBuf>=thre) *lpBuf=1;
			else		      *lpBuf=0;
		}
	}
 	memset(ColorTab,0,1024);
	SetAllPalette(pImgm,ColorTab);
    SetPalette(pImgm,1,255,255,255);

	Release2DList(list);
}

void ExpandImage(CImage *pImgn,CImage *pImgm)
{
 	struct	IMAGEPARAMENT P;
	BYTE	*buf,*buf1;
  	int		k;
 
 	GetImageParament(pImgm,&P);                           
	pImgn->Create(P.nWidth+2,P.nHeight+2,P.nBitCount,0);

	for (int i=0;i<P.nHeight;i++) {
		buf  = (BYTE*) pImgm->GetPixelAddress(0,i);       
		buf1 = (BYTE*) pImgn->GetPixelAddress(1,i+1);
  		memcpy(buf1, buf, P.nBytesPerLine);                         
	}
	buf  = (BYTE*) pImgm->GetPixelAddress(0,0); 
	buf1 = (BYTE*) pImgn->GetPixelAddress(1,0);
  	memcpy(buf1, buf, P.nBytesPerLine);
	buf  = (BYTE*) pImgm->GetPixelAddress(0,P.nHeight-1);
	buf1 = (BYTE*) pImgn->GetPixelAddress(1,P.nHeight+1);
  	memcpy(buf1, buf, P.nBytesPerLine);
	buf=(BYTE*) malloc(P.nHeight);
	GetRectValue(pImgm,0,0,1,P.nHeight,buf);
	SetRectValue(pImgn,0,1,1,P.nHeight,buf);
	GetRectValue(pImgm,P.nWidth-1,0,1,P.nHeight,buf);
	SetRectValue(pImgn,P.nWidth+1,1,1,P.nHeight,buf);
	k=GetPixelValue(pImgm,0,0);
	SetPixelValue(pImgn,0,0,k);
	k=GetPixelValue(pImgm,P.nWidth-1,0);
	SetPixelValue(pImgn,P.nWidth+1,0,k);
	k=GetPixelValue(pImgm,0,P.nHeight-1);
	SetPixelValue(pImgn,0,P.nHeight+1,k);
	k=GetPixelValue(pImgm,P.nWidth-1,P.nHeight-1);
	SetPixelValue(pImgn,P.nWidth+1,P.nHeight+1,k);
	free(buf);
}

void ReduceImage(CImage *pImgn,CImage *pImgm)
{
 	struct	IMAGEPARAMENT P;
	BYTE	*buf,*buf0;
  
 	GetImageParament(pImgn,&P);                           
	for (int i=0;i<P.nHeight;i++) {
		buf0 = (BYTE*) pImgm->GetPixelAddress(1,i+1);
		buf  = (BYTE*) pImgn->GetPixelAddress(0,i);       
  		memcpy(buf, buf0, P.nBytesPerLine);                         
	}
}

void LocalProcess(CImage *pImg,int n)
{
 	struct	IMAGEPARAMENT P;
	BYTE	**list1,**list0;
	RGBQUAD	ColorTab[256];
 	CImage  gImg1,gImg0;

  	ExpandImage(&gImg1,pImg);
 	GetImageParament(&gImg1,&P);
	gImg0.Create(P.nWidth,P.nHeight,P.nBitCount,0);
	ImageCopy(&gImg0,&gImg1);
	list1=(BYTE**) Create2DList(&gImg1);
	list0=(BYTE**) Create2DList(&gImg0);
 
 	GetImageParament(&gImg1,&P); 
    switch(n) {
		case 1:
			Gradiant(list0,list1,P.nWidth,P.nHeight);
			break;
		case 2:
			Roberts(list0,list1,P.nWidth,P.nHeight);
			break;
		case 3:
			Sobel(list0,list1,P.nWidth,P.nHeight);
			break;
		case 4:
			Laplacian(list0,list1,P.nWidth,P.nHeight);
			break;
		case 5:
			Kirsch(list0,list1,P.nWidth,P.nHeight,nDirectionNo);
			break;
		case 6:
			Robinson(list0,list1,P.nWidth,P.nHeight,nDirectionNo);
			break;
		case 7:
			Prewitt(list0,list1,P.nWidth,P.nHeight,nDirectionNo);
			break;
		case 8:
			Smooth5(list0,list1,P.nWidth,P.nHeight);
			break;
		case 9:
			Smooth9(list0,list1,P.nWidth,P.nHeight);
			break;
		case 10:
			Median5(list0,list1,P.nWidth,P.nHeight);
			break;
		case 11:
			Median9(list0,list1,P.nWidth,P.nHeight);
			break;
		case 12:
			BoundEnhance(list0,list1,P.nWidth,P.nHeight);
			break;
		case 13:
			LapSketch(list0,list1,P.nWidth,P.nHeight);
			break;
		case 14:
			LoG(list0,list1,P.nWidth,P.nHeight);
			break;
		case 15:
			OnePWidthW(list0,list1,P.nWidth,P.nHeight);
			break;
		case 16:
			RemoveLineNoise(list0,list1,P.nWidth,P.nHeight);
			break;
		case 17:
			SobelThin(list0,list1,P.nWidth,P.nHeight);
			break;
		case 18:
			LogPrewitt(list0,list1,P.nWidth,P.nHeight,0.5);
			break;
	}
 
	Release2DList(list1);
	Release2DList(list0);

	ReduceImage(pImg,&gImg0);
	if (n==18) {
		memset(ColorTab,0,1024);
		SetAllPalette(pImg,ColorTab);
		SetPalette(pImg,1,255,255,255);
	}

	gImg1.Destroy();
	gImg0.Destroy();
}

void CurveThinning(CImage *pImg0,CImage *pImg1,int n)
{
 	struct	IMAGEPARAMENT P;
	BYTE	**list;
      
	LowTypeToIndex(pImg0,pImg1);
	SetPalette(pImg0,0,0,0,0);
    SetPalette(pImg0,1,255,255,255);
   
 	GetImageParament(pImg0,&P);
	list=(BYTE**) Create2DList(pImg0);
	switch(n) {
		case 1:
			Hilditch(list,P.nBytesPerLine,P.nHeight);
			break;
		case 2:
			Deutch(list,P.nBytesPerLine,P.nHeight);
			break;
		case 3:
			FastThin(list,P.nBytesPerLine,P.nHeight);
			break;
		case 4:
			Naccache(list,P.nBytesPerLine,P.nHeight);
			break;
		case 5:
			Pavlidis1(list,P.nBytesPerLine,P.nHeight);
			break;
		case 6:
			Pavlidis2(list,P.nBytesPerLine,P.nHeight);
			break;
		case 7:
			Rosenfeld4(list,P.nBytesPerLine,P.nHeight);
			break;
		case 8:
			Rosenfeld8(list,P.nBytesPerLine,P.nHeight);
			break;
		case 9:
			RemoveNoise(list,P.nBytesPerLine,P.nHeight);
			break;
	}

	Release2DList(list);
}

void Distancing(CImage *pImg)
{
 	struct	IMAGEPARAMENT P;
	BYTE	**list;
	int		k;
 	CImage  gImg0;
  
	k=ImageType(pImg);
 	if (k==2)
		Threshold(pImg,1,0);
	else if(k!=0) return;
 
 	ExpandImage(&gImg0,pImg);
 
	GetImageParament(&gImg0,&P);
	DrawBox(&gImg0,0,0,P.nWidth,P.nHeight,1,255);
	list=(BYTE**) Create2DList(&gImg0);
 	Distance(list,P.nWidth,P.nHeight);
	Release2DList(list);
 
  	ReduceImage(pImg,&gImg0);
 	gImg0.Destroy();
}

void Projection(CImage *pImg,int* Tab,int flag)
{
 	struct	IMAGEPARAMENT P;
	int		i,j;
	BYTE	*buf;

	GetImageParament(pImg,&P);
    if (flag==0)
	{
		for (i=0;i<P.nHeight;i++) Tab[i]=0;
		for (i=0;i<P.nHeight;i++) {
			buf=(BYTE*) pImg->GetPixelAddress(0,i);
			for (j=0;j<P.nWidth;j++) Tab[i]+=buf[j];
			Tab[i]/=P.nWidth;
		}
 	}
	else
	{
		for (i=0;i<P.nWidth;i++) Tab[i]=0;
		buf=(BYTE*)malloc(P.nHeight);
		for (i=0;i<P.nWidth;i++) {
			GetRectValue(pImg,i,0,1,P.nHeight,buf);
			for (j=0;j<P.nHeight;j++) Tab[i]+=buf[j];
			Tab[i]/=P.nHeight;
		}
		free(buf);
 	}
}

void Histogram(CImage *pImg,int x,int y,int Dx,int Dy,long *pg)
{
 	struct	IMAGEPARAMENT P;
	int		i,j;
	BYTE	*buf;

	GetImageParament(pImg,&P);
  	for (i=0;i<256;i++)  pg[i]=0;
	for(i=y;i<y+Dy;i++) 
	{
		buf=(BYTE*) pImg->GetPixelAddress(0,i);
 		for (j=x;j<x+Dx;j++) pg[buf[j]]++;	
	}
}

void CreateProjection(CImage *pImg,int *Tab,int n,int flag)
{
	CDC		*pDC;
  	int		x,y,m,i,k,d=20;
   
	for (i=0,k=0;i<n;i++) k+=Tab[i];
	k/=n;
  	if (flag==0)
	{
		x=256;		y=n;
	}
	else
	{
		x=n;		y=256;
	}
 	pImg->Destroy();
	pImg->Create(x+2,y+2,24,0);
	RectFillValue(pImg,0,0,x+2,y+2,0xffffff);
 
    m=4;
	pDC = CDC::FromHandle(pImg->GetDC());
 	if (flag==0)
	{
 		pDC->MoveTo(d,0);
		pDC->LineTo(d,n);
		pDC->MoveTo(d+Tab[m],m);
		for(i=m;i<n-m;i++)
			pDC->LineTo(d+Tab[i],i);
	}
	else
	{
 		pDC->MoveTo(0,d);
		pDC->LineTo(n,d);
		pDC->MoveTo(m,d+Tab[m]);
		for(i=m;i<n-m;i++)
			pDC->LineTo(i,d+Tab[i]);
	}
 	pImg->ReleaseDC();
}

void CreateHistogram(CImage *pImg,long *pg,int h,int flag,int t)
{
	CDC		*pDC;
	long	k,m,n,x,y;
 	int		i;
   
	x=10;
	y=h+10;
	pImg->Destroy();
	pImg->Create(256+20,y+10,24,0);
	RectFillValue(pImg,0,0,276,h+20,0xffffff);
 
	m=SearchScale(pg,2);
	k=m/h+1;

	pDC = CDC::FromHandle(pImg->GetDC());
  	pDC->MoveTo(x,y);
	pDC->LineTo(x+256,y);
 	pDC->MoveTo(x,y-pg[0]/k);
	for(i=0;i<256;i++) 
	{
		if (flag==0)
			pDC->MoveTo(x+i,y);
		n=pg[i]/k;
		if (n>h) n=h;
		pDC->LineTo(x+i,y-n);
	}
	if (t>0) {
		t=(256-t);
 		pDC->MoveTo(x+t,y+2);
		pDC->LineTo(x+t,y+12);
	}
	pImg->ReleaseDC();
}

void CreateColorStrip(CImage *pImgn,CImage *pImgm,int Dx,int Dy)
{
	RGBQUAD	ColorTab[256];
	BYTE	buf[2048];
	int		i,k;

	pImgn->Destroy();
	pImgn->Create(Dx+2,Dy+2,8,0);
	GetAllPalette(pImgm,ColorTab);
	SetAllPalette(pImgn,ColorTab);

	k=Dx/256;
	if (k==0)  return;
	Dx=256*k;
	for (i=0;i<Dx;i++) buf[i]=i/k;
	for (i=0;i<Dy;i++) 
		SetRectValue(pImgn,1,1+i,Dx,1,buf);
	DrawBox(pImgn,0,0,Dx+2,Dy+2,1,0);
}

void CreateTransferCurve(CImage *pImg,long *pg,int f)    
{
	CDC		*pDC;
  	CPen	penRed(PS_SOLID,1,RGB(255,0,0)),
		    penGreen(PS_SOLID,1,RGB(0,255,0)),
		    penBlue(PS_SOLID,1,RGB(0,0,255)), *pOldPen=NULL;
	int		i,T_gray[256];
	long	tab[256];
	RGBQUAD	ColorTab[256];
  	BYTE	*buf;
  

 	switch(f) {
		case 1:
			GT_linear(T_gray);
 			break;
		case 2:
			GT_sqrt(T_gray);
 			break;
		case 3:
			GT_log(T_gray);
 			break;
		case 4:
			GT_square(T_gray);
 			break;
		case 5:
			GT_exp(T_gray);
 			break;
		case 6:
			GT_Equal(pg,T_gray);
 			break;
		case 7:
			for (i=0;i<256;i++) tab[i]=i;
			GT_histo_eq(pg,tab,T_gray);
 			break;
		case 8:
			GT_nega(T_gray);
 			break;
		case 9:
			Border_Equal(pg,T_gray);
 			break;
	} 

	pImg->Destroy();
	pImg->Create(130,130,24,0);
	RectFillValue(pImg,0,0,130,130,0xffffff);

	pDC = CDC::FromHandle(pImg->GetDC());
	if (f<10)
	{
		pDC->MoveTo(0,0);
		pDC->LineTo(0,128);
 		pDC->MoveTo(0,128);
		pDC->LineTo(128,128);
  		pDC->MoveTo(0,128-T_gray[1]/2);
		for (i=3;i<256;i+=2) 
 			pDC->LineTo(i/2,128-T_gray[i]/2);
	}
	else if (f==11)
	{
		PsendoColor(ColorTab);

 		pDC->MoveTo(0,0);
		pDC->LineTo(0,128);
 		pDC->MoveTo(0,128);
		pDC->LineTo(128,128);

		buf=(BYTE*) ColorTab;
		pOldPen = pDC->SelectObject(&penBlue);
		pDC->MoveTo(0,128-buf[0]/2);
		for (i=3;i<256;i+=2) 
 			pDC->LineTo(i/2,128-buf[4*i]/2);

		pDC->SelectObject(&penGreen);
		pDC->MoveTo(0,128-buf[1]/2);
		for (i=3;i<256;i+=2) 
 			pDC->LineTo(i/2,128-buf[4*i+1]/2);

		pDC->SelectObject(&penRed);
 		pDC->MoveTo(0,128-buf[2]/2);
		for (i=3;i<256;i+=2) 
 			pDC->LineTo(i/2,128-buf[4*i+2]/2);

		pDC->SelectObject(pOldPen);
		penRed.DeleteObject();
		penGreen.DeleteObject();
		penBlue.DeleteObject();
	}
	pImg->ReleaseDC();
}

void CreateHistogramA(CImage *pImg,CImage *pImg1,int h,int flag)
{
	struct	IMAGEPARAMENT P;
 	long	pg[256];
 	int		i,j,x,y;
	int		thre,tab[256],buf[20];
	CDC		*pDC;
  	CPen	penRed(PS_SOLID,1,RGB(255,0,0)),
		    penGreen(PS_SOLID,1,RGB(0,255,0)),
		    penBlue(PS_SOLID,1,RGB(0,0,255)), *pOldPen=NULL;
	char	Text[20];
  	char	*textbuf[]={"",
		                "單峰直方圖",
	                    "雙峰直方圖",
	                    "多峰直方圖" };
  
	GetImageParament(pImg1,&P);
 	Histogram(pImg1,0,0,P.nWidth,P.nHeight,pg);
	thre=FormAnalysis(pg,tab,buf,&j);

	x=10;
	y=h+40;
	pImg->Destroy();
	pImg->Create(256+20,y+20,24,0);
	RectFillValue(pImg,0,0,276,h+50,0xffffff);
 
	pDC = CDC::FromHandle(pImg->GetDC());
 	pDC->MoveTo(x,y);
	pDC->LineTo(x+256,y);

	pDC->MoveTo(x,y-tab[0]);
	for(i=0;i<256;i++) 
	{
		if (flag%2==0)
			pDC->MoveTo(x+i,y);
 		pDC->LineTo(x+i,y-tab[i]);
	}
	if (j>5)
		pDC->TextOut(90,5,textbuf[3]);
	else if (j>3)
		pDC->TextOut(90,5,textbuf[2]);
	else
		pDC->TextOut(90,5,textbuf[1]);

	pOldPen = pDC->SelectObject(&penRed);

	for (i=1;i<j-1;i+=2) {
		pDC->MoveTo(x+buf[i],y+5);
 		pDC->LineTo(x+buf[i],y-tab[buf[i]]-7);
	}

	pDC->SelectObject(&penBlue);
 	for (i=0;i<j;i+=2) {
		if ((buf[i]==0)||(buf[i]==255)) continue;
		pDC->MoveTo(x+buf[i],y+5);
 		pDC->LineTo(x+buf[i],y-tab[buf[i]]-7);
	}

	pDC->SelectObject(&penGreen);
	pDC->MoveTo(x+thre,y);
	if (flag>2) {
		pDC->LineTo(x+thre,y+10);
		sprintf(Text,"%d",thre);
		pDC->TextOut(210,5,Text);
	}

	pDC->SelectObject(pOldPen);
	penRed.DeleteObject();
	penGreen.DeleteObject();
	penBlue.DeleteObject();
 	pImg->ReleaseDC();
}

#endif  //!_INC_IPROCESSDC
 	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃视频在线一区| 欧美精品色综合| 国产福利一区二区三区在线视频| 午夜av区久久| 日韩有码一区二区三区| 首页国产丝袜综合| 日本91福利区| 久久99精品久久久久| 久久精品72免费观看| 日韩精品免费专区| 免费在线看一区| 久久国产精品72免费观看| 久久99九九99精品| 国产91精品入口| 91丨porny丨蝌蚪视频| 色综合天天综合色综合av| 色先锋aa成人| 欧美熟乱第一页| 日韩午夜激情免费电影| 精品久久人人做人人爱| 国产人久久人人人人爽| ...av二区三区久久精品| 亚洲第一久久影院| 久久成人麻豆午夜电影| 国产69精品一区二区亚洲孕妇| 99在线视频精品| 欧洲人成人精品| 欧美成人一区二区三区在线观看| 国产亚洲污的网站| 一区二区三区在线观看国产| 偷偷要91色婷婷| 国产综合色在线视频区| 92国产精品观看| 欧美美女黄视频| 欧美精彩视频一区二区三区| 亚洲黄色av一区| 精品一区二区av| 91麻豆国产自产在线观看| 在线播放中文一区| 欧美国产日韩一二三区| 亚洲电影视频在线| 国产麻豆成人传媒免费观看| 91国内精品野花午夜精品| 欧美一区二区三区四区高清| 欧美激情在线看| 亚洲成av人在线观看| 国产河南妇女毛片精品久久久| 91视频一区二区| 日韩精品一区二区三区四区| 亚洲摸摸操操av| 久久99精品国产麻豆婷婷| 色一区在线观看| 久久久久久久精| 天天做天天摸天天爽国产一区| 国产激情偷乱视频一区二区三区| 欧美亚洲高清一区二区三区不卡| 久久伊人蜜桃av一区二区| 亚洲激情自拍视频| 国产精品一区二区久激情瑜伽 | 在线免费观看日本一区| 精品久久久久久久久久久久久久久久久 | 51精品秘密在线观看| 亚洲欧洲性图库| 精彩视频一区二区三区| 欧美日韩在线播放三区四区| 国产精品九色蝌蚪自拍| 久久精品噜噜噜成人av农村| 色婷婷av一区二区三区大白胸| 国产偷v国产偷v亚洲高清| 免费美女久久99| 色综合欧美在线视频区| 久久久不卡网国产精品一区| 免费精品视频在线| 欧美撒尿777hd撒尿| 国产精品国产成人国产三级| 久久99国产精品尤物| 717成人午夜免费福利电影| 亚洲黄色小视频| 99久久综合精品| 国产欧美日韩在线看| 紧缚捆绑精品一区二区| 51精品视频一区二区三区| 亚洲国产精品久久久男人的天堂| 暴力调教一区二区三区| 国产欧美中文在线| 国产专区综合网| 精品日韩欧美在线| 麻豆极品一区二区三区| 欧美一区日本一区韩国一区| 婷婷久久综合九色综合绿巨人 | 91九色02白丝porn| 一色屋精品亚洲香蕉网站| 国产99久久精品| 国产亚洲精品福利| 国产成人激情av| 欧美激情一区二区三区全黄| 国产成人免费av在线| 久久蜜臀中文字幕| 国产精品1区2区| 国产亚洲欧美色| 国产宾馆实践打屁股91| 国产亚洲短视频| www.欧美亚洲| 亚洲人123区| 欧美午夜精品久久久| 亚洲成人久久影院| 日韩一卡二卡三卡国产欧美| 男女性色大片免费观看一区二区| 日韩午夜在线播放| 国产一区二区不卡老阿姨| 久久久久久久久久久久久久久99| 极品销魂美女一区二区三区| 2021国产精品久久精品| 国产成人综合网| 亚洲丝袜另类动漫二区| 欧美在线影院一区二区| 婷婷中文字幕综合| 欧美大片在线观看| 国产精品一二三| ●精品国产综合乱码久久久久| 色婷婷久久久久swag精品| 亚洲成a人片在线观看中文| 欧美一区二区三区男人的天堂| 久久电影网电视剧免费观看| 国产午夜精品一区二区三区四区| 成人黄色av电影| 一区2区3区在线看| 欧美一卡二卡在线观看| 国产电影一区在线| 亚洲男女一区二区三区| 4hu四虎永久在线影院成人| 韩国成人精品a∨在线观看| 国产无一区二区| 日本伦理一区二区| 男男gaygay亚洲| 国产精品久久久久久久蜜臀| 欧美特级限制片免费在线观看| 奇米四色…亚洲| 国产精品高潮呻吟| 欧美理论在线播放| 国产成人精品三级| 亚洲第一狼人社区| 蜜臀久久久久久久| 91麻豆高清视频| 日本免费在线视频不卡一不卡二| 精品国产第一区二区三区观看体验| 国产精品小仙女| 一区二区三区中文字幕| 日韩视频一区在线观看| 成人短视频下载| 日韩国产欧美三级| 亚洲欧洲成人av每日更新| 欧美日本韩国一区| 大桥未久av一区二区三区中文| 亚洲成人免费视频| 中文字幕第一区| 欧美一级精品大片| 色一情一伦一子一伦一区| 国产中文字幕一区| 亚洲自拍与偷拍| 久久久五月婷婷| 欧美日韩电影在线| 99免费精品在线| 久久er99精品| 亚洲国产欧美在线人成| 欧美经典三级视频一区二区三区| 欧美日韩国产综合一区二区三区| 成人三级伦理片| 黄色小说综合网站| 午夜不卡在线视频| 一区二区三区在线高清| 日本一区二区综合亚洲| 欧美一区二区福利在线| 色综合久久综合网97色综合| 国产成人在线网站| 久久成人久久爱| 视频一区二区不卡| 亚洲一区二区在线免费看| 国产精品久久久久久一区二区三区 | 国产激情91久久精品导航| 免费在线观看一区二区三区| 亚洲午夜在线视频| 亚洲精品中文字幕在线观看| 国产精品国产自产拍高清av | 香蕉av福利精品导航| 亚洲欧美在线视频| 欧美激情综合网| www久久精品| 26uuu色噜噜精品一区二区| 日韩久久久精品| 91精品欧美综合在线观看最新| 欧美在线视频全部完| 91蜜桃婷婷狠狠久久综合9色| thepron国产精品| 成人午夜免费视频| 不卡的av中国片| yourporn久久国产精品| 白白色亚洲国产精品| 99re热这里只有精品免费视频| 成人美女视频在线观看18|