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

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

?? iprocessd.cpp

?? 這是VC++ 2003.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电影| 欧美另类z0zxhd电影| 日韩av电影免费观看高清完整版| 欧美一级二级在线观看| 国产一区二区三区在线观看免费视频| 久久久蜜臀国产一区二区| 国产99久久精品| 一区二区视频免费在线观看| 欧美日本在线一区| 国产成人精品午夜视频免费| 中文字幕一区二区三中文字幕| 欧美主播一区二区三区| 久久av资源网| 亚洲啪啪综合av一区二区三区| 欧美系列亚洲系列| 国产一区二区三区在线观看精品 | 不卡视频一二三四| 一区二区视频免费在线观看| 日韩女优电影在线观看| 99在线精品免费| 首页欧美精品中文字幕| 中文字幕欧美日韩一区| 欧美日韩一二三| 亚洲色图清纯唯美| 久久久精品2019中文字幕之3| 亚洲欧美电影院| 久88久久88久久久| 中文字幕日韩一区二区| 亚洲精品视频在线看| 国产suv精品一区二区三区| 亚洲自拍偷拍网站| 精品国产乱码久久| 欧美三级日韩三级| 国产91精品露脸国语对白| 亚洲成在线观看| 久久久99免费| 制服丝袜av成人在线看| 99久久免费视频.com| 久久成人羞羞网站| 亚洲成人资源在线| 中文字幕亚洲不卡| 国产视频一区在线观看| 5858s免费视频成人| 色婷婷精品大在线视频| 国产成人精品免费一区二区| 蜜桃久久久久久| 亚洲一区二区三区视频在线播放 | 美洲天堂一区二卡三卡四卡视频 | 天天av天天翘天天综合网色鬼国产 | 欧美一区欧美二区| 色婷婷av一区二区三区之一色屋| 国产剧情一区二区三区| 美女mm1313爽爽久久久蜜臀| 亚洲黄色在线视频| 一区在线观看视频| 国产午夜精品久久| 久久久久久久久久久久电影| 日韩三级av在线播放| 欧美日韩你懂得| 欧美午夜一区二区三区| 91高清在线观看| 日本福利一区二区| 91麻豆国产在线观看| a亚洲天堂av| 菠萝蜜视频在线观看一区| 丁香六月久久综合狠狠色| 国产精品1区2区| 国产成人一级电影| 国产999精品久久久久久| 国产成人免费av在线| 国产成人av影院| 大白屁股一区二区视频| 成人免费视频视频| 不卡视频免费播放| 色悠悠久久综合| 欧美性视频一区二区三区| 欧美日韩一区中文字幕| 欧美日韩三级一区| 日韩欧美国产精品一区| 精品美女一区二区| 欧美国产精品一区二区三区| 国产精品久线观看视频| 亚洲女与黑人做爰| 亚洲夂夂婷婷色拍ww47| 日韩专区中文字幕一区二区| 蜜桃av噜噜一区| 成人一级片在线观看| 91啪九色porn原创视频在线观看| 在线国产亚洲欧美| 91精品国产全国免费观看| 26uuuu精品一区二区| 日本一区二区电影| 一区二区三区免费观看| 日韩av高清在线观看| 国产精品夜夜嗨| 色综合中文字幕| 日韩亚洲欧美成人一区| 国产亚洲综合性久久久影院| 中文字幕在线免费不卡| 亚洲一区在线观看视频| 黑人巨大精品欧美黑白配亚洲| 成人精品免费看| 欧美喷潮久久久xxxxx| 久久久亚洲精华液精华液精华液 | 国产婷婷一区二区| 亚洲美女在线一区| 日本三级韩国三级欧美三级| 成人永久看片免费视频天堂| 欧美日韩你懂的| 国产欧美日韩一区二区三区在线观看| 亚洲免费高清视频在线| 国产最新精品免费| 91官网在线免费观看| 久久久久久**毛片大全| 亚洲一区在线观看网站| 国产精品一二三四| 91精品国产全国免费观看| 国产精品久久久久久户外露出| 奇米影视一区二区三区| 91丨九色丨尤物| 久久免费电影网| 婷婷综合五月天| 色综合久久久久网| 久久九九国产精品| 免费人成黄页网站在线一区二区| 91免费版在线| 国产日韩欧美一区二区三区乱码| 亚洲线精品一区二区三区| 国产aⅴ综合色| 日韩欧美一级精品久久| 亚洲精选视频在线| 懂色av中文字幕一区二区三区| 欧美日韩成人综合| 亚洲综合清纯丝袜自拍| 白白色 亚洲乱淫| 久久精品水蜜桃av综合天堂| 日韩国产在线观看| 欧美日韩精品二区第二页| 国产精品美女视频| 国产精品一区二区三区乱码| 日韩一区二区三| 日韩av二区在线播放| 欧美精品久久久久久久多人混战 | 亚洲成人手机在线| 91丨国产丨九色丨pron| 中文字幕电影一区| 国产成人鲁色资源国产91色综| 日韩欧美色综合网站| 天天影视涩香欲综合网| 欧美性猛片aaaaaaa做受| 亚洲视频电影在线| a级高清视频欧美日韩| 国产精品毛片久久久久久| 成人性生交大片免费看视频在线| 久久久精品影视| 国产成+人+日韩+欧美+亚洲| www成人在线观看| 狠狠色丁香久久婷婷综| 欧美精品一区二区精品网| 奇米一区二区三区av| 日韩女优av电影在线观看| 久久精品久久久精品美女| 精品精品国产高清a毛片牛牛| 久久成人18免费观看| 日韩久久免费av| 国产在线精品一区二区不卡了| 精品欧美久久久| 国产白丝网站精品污在线入口| 欧美激情一区二区三区四区| 大胆欧美人体老妇| 亚洲精品成人精品456| 欧美系列日韩一区| 美女尤物国产一区| 国产午夜精品一区二区| av在线一区二区三区| 亚洲综合免费观看高清完整版在线| 欧洲精品中文字幕| 日本午夜一区二区| 久久精品视频在线免费观看| 波波电影院一区二区三区| 亚洲精品va在线观看| 欧美一区二区三区婷婷月色 | 日韩码欧中文字| 欧美亚一区二区| 麻豆精品久久久| 中文字幕成人在线观看| 日本韩国一区二区| 日本成人在线电影网| 欧美韩日一区二区三区| 在线亚洲一区观看| 裸体在线国模精品偷拍| 国产精品麻豆视频| 欧美日韩dvd在线观看| 国产一区二区三区av电影|