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

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

?? atrplant.cpp

?? 圖像處理軟件,功能比較基礎
?? CPP
字號:
#include <stdio.h>
#include <process.h>
#include <stdlib.h>
#include <math.h>

#include "imgproc.h"

/*
main(int argc,char *argv[])
   {unsigned char  **InImg,**ReferImg,**IniImg;
    FILE           *fp;
    int            i;
    int            InImgRow,InImgCol,ReferImgRow,ReferImgCol,type;
    time_t         BeginTime,EndTime;
    COORDINATE* Left_Up = (COORDINATE *)calloc(1,sizeof(COORDINATE));
    COORDINATE* Right_Down = (COORDINATE*)calloc(1,sizeof(COORDINATE));

   if(argc!=5)
    {printf("\nError Format");
     printf("\n Usage Format:MomRec SegImg ReferImg  ResultImg IniImg");

  exit(1);
    }

   fp=wfread1(&InImgRow,&InImgCol,&type,argv[1]);
   InImg=(unsigned char**)fspace_2d(InImgRow,InImgCol,sizeof(unsigned char));
   for(i=0;i<InImgRow;i++)  fread(InImg[i],1,InImgCol,fp);
   fclose(fp);
*/
   /*fp=wfread1(&ReferImgRow,&ReferImgCol,&type,argv[2]);
   ReferImg=(unsigned char**)fspace_2d(ReferImgRow,ReferImgCol,sizeof(unsigned char));
   for(i=0;i<ReferImgRow;i++)  fread(ReferImg[i],1,ReferImgCol,fp);
   fclose(fp);*/
/*
   fp=wfread1(&InImgRow,&InImgCol,&type,argv[4]);
   IniImg=(unsigned char**)fspace_2d(InImgRow,InImgCol,sizeof(unsigned char));
   for(i=0;i<InImgRow;i++)  fread(IniImg[i],1,InImgCol,fp);
   fclose(fp);

   BeginTime=time(NULL);
   //Recognition(InImg,InImgRow,InImgCol,ReferImg,ReferImgRow,ReferImgCol,argv[3],IniImg);
   ShapeRec( InImgRow,InImgCol,InImg, Left_Up,Right_Down);
   EndTime=time(NULL);
   printf("\nIt spent %d seconds to recognize",EndTime-BeginTime);

  for(i=Left_Up->y;i<Right_Down->y;i++)
	{
       IniImg[i][Left_Up->x]=255;
	   IniImg[i][Right_Down->x]=255;
	}

   for(i=Left_Up->x;i<Right_Down->x;i++)
   {
	   IniImg[Left_Up->y][i]=255;
	   IniImg[Right_Down->y][i]=255;
	}

   OutputImageWithName(IniImg,InImgRow,InImgCol,argv[3]);


   free(Left_Up);free(Right_Down);
   ffree_2d((void **)InImg,InImgRow);
   ffree_2d((void **)IniImg,InImgRow);
   //ffree_2d((void **)ReferImg,ReferImgRow);
   return;
  }
*/
void  Recognition(unsigned char **InImg,short InImgRow,short InImgCol,
		  unsigned char **ReferImg,short ReferImgRow,short ReferImgCol,
		  COORDINATE *RecArea_LeftUp, COORDINATE *RecArea_RightDown)
//		 /* char ResultImgName[20],unsigned char **IniImg*/)

    {COORDINATE     Left_Up,Right_Down/*,RecArea_LeftUp,RecArea_RightDown*/;
     double          AreaB[7],ReferB[7];//the moment  of the refer image and the area
     double          MomDvar,MinMomDvar;
     unsigned char  Gray,**AreaImg;
     short            i,j,AreaImgRow,AreaImgCol,LabelNum;

     Moment(ReferB,ReferImg,ReferImgRow,ReferImgCol);

     LabelNum=Label(InImg,InImgRow,InImgCol,LABELMODE_1,50);
//     printf("LabelNum=%d\n",LabelNum);

     MinMomDvar=1000.0;
     RecArea_LeftUp->x=0;
     RecArea_LeftUp->y=0;
     RecArea_RightDown->x=InImgCol;
     RecArea_RightDown->y=InImgRow;
     for(Gray=MAXLEVEL;Gray>(MAXLEVEL-LabelNum);Gray--)
     {
		Right_Down.x=0;
		Right_Down.y=0;
		Left_Up.x=InImgCol;
		Left_Up.y=InImgRow;

		for(i=0;i<InImgRow;i++)
		 for(j=0;j<InImgCol;j++)
		{
			if(InImg[i][j]==Gray)
			{
			if(i<Left_Up.y)       Left_Up.y=i;

			if(i>Right_Down.y)    Right_Down.y=i;

			if(j<Left_Up.x)       Left_Up.x=j;

			if(j>Right_Down.x)    Right_Down.x=j;
			}
		}

		AreaImgRow=Right_Down.y-Left_Up.y+1;
		AreaImgCol=Right_Down.x-Left_Up.x+1;

		AreaImg=(unsigned char**)fspace_2d(AreaImgRow,AreaImgCol,sizeof(unsigned char));

		for(i=0;i<AreaImgRow;i++)
		for(j=0;j<AreaImgCol;j++)
			if(InImg[Left_Up.y+i][Left_Up.x+j]==Gray)  AreaImg[i][j]=255;

		Moment(AreaB,AreaImg,AreaImgRow,AreaImgCol);

		MomDvar=0.0;
		for( i=1;i<7;i++)
			MomDvar += (AreaB[i]-ReferB[i]);
//      printf("MomDvar=",MomDvar);
//      printf("MomDvar=%f\n",MomDvar);

		if(fabs(MomDvar)<MinMomDvar)
		{
			MinMomDvar=MomDvar;
			RecArea_LeftUp->x=Left_Up.x;
			RecArea_LeftUp->y=Left_Up.y;
			RecArea_RightDown->x=Right_Down.x;
			RecArea_RightDown->y=Right_Down.y;
		}
	}

/*
  for(i=RecArea_LeftUp.y;i<RecArea_RightDown.y;i++)
      {IniImg[i][RecArea_LeftUp.x]=255;
       IniImg[i][RecArea_RightDown.x]=255;
      }
   for(i=RecArea_LeftUp.x;i<RecArea_RightDown.x;i++)
      {IniImg[RecArea_LeftUp.y][i]=255;
       IniImg[RecArea_RightDown.y][i]=255;
      }

  OutputImageWithName(IniImg,InImgRow,InImgCol,ResultImgName);
*/
	ffree_2d((void **)AreaImg,AreaImgRow);
  }

void  Moment(double B[7],unsigned char **Image,short Row,short Col)
{
  double m00,m01,m11,m02,m03,m10,m12,m20,m21,m30;
  double u00,u01,u11,u02,u03,u10,u12,u20,u21,u30;
  double l1,l2,l3,l4,Bmax;
  double M[8];
  double XC,YC,t;
  short i,j;

  /* Computing CenterPoint */
  m00=0.0;m10=0.0;m01=0.0;
  for(i=0;i<Row;i++)
    for(j=0;j<Col;j++)
      {t=(double)Image[i][j];
       m00=m00+t;
       m01=m01+i*t;
       m10=m10+j*t;
      }
  XC=m10/m00; YC=m01/m00;

  /*Computing CenterMoment */
  m11=0.0;
  m10=0.0;m01=0.0;m02=0.0;m20=0.0;
  m03=0.0;m30=0.0;m21=0.0;m12=0.0;
  for(i=0;i<Row;i++)
    for(j=0;j<Col;j++)
      {
      t=(double)Image[i][j];
      m01=m01+(-YC+i)*t;
      m10=m10+(-XC+j)*t;
      m11=m11+(-XC+j)*(-YC+i)*t;
      m02=m02+(-YC+i)*(-YC+i)*t;
      m20=m20+(-XC+j)*(-XC+j)*t;
      m03=m03+(-YC+i)*(-YC+i)*(-YC+i)*t;
      m30=m30+(-XC+j)*(-XC+j)*(-XC+j)*t;
      m12=m12+(-XC+j)*(-YC+i)*(-YC+i)*t;
      m21=m21+(-XC+j)*(-XC+j)*(-YC+i)*t;
      }

  /* Computing Hu Normalize Moment */
  u00=m00;
  u01=m01/sqrt(m00);
  u02=m02/sqrt(m00*m00);
  u03=m03/sqrt(m00*m00*m00);
  u10=m10/sqrt(m00);
  u11=m11/sqrt(m00*m00);
  u12=m12/sqrt(m00*m00*m00);
  u20=m20/sqrt(m00*m00);
  u21=m21/sqrt(m00*m00*m00);
  u30=m30/sqrt(m00*m00*m00);

  l1=u30-3*u12;
  l2=u03-3*u21;
  l3=u30+u12;
  l4=u03+u21;

  M[1]=u20+u02;
  M[2]=(u20-u02)*(u20-u02)+4*u11*u11;
  M[3]=l1*l1+l2*l2;
  M[4]=l3*l3+l4*l4;
  M[5]=l1*l3*(l3*l3-3*l4*l4)-l2*l4*(3*l3*l3-l4*l4);
  M[6]=(u20-u02)*(l3*l3-l4*l4)+4*u11*l3*l4;
  M[7]=l2*l3*(3*l4*l4-l3*l3)+l1*l4*(3*l3*l3-l4*l4);


  /* Computing Maitra Moment */
  B[1]=sqrt(M[2])/M[1];
  B[2]=M[3]*u00/(M[1]*M[2]);
  B[3]=M[4]/M[3];
  B[4]=sqrt(fabs(M[5]))/M[4];
  B[5]=M[6]/(M[1]*M[4]);
  B[6]=M[7]/M[5];


  for(i=0;i<8;i++)
    printf("B[%d]=%f  ",i,B[i]);
  printf("\n");

  Bmax=0.0;
  for(i=1;i<=6;i++)
   if(fabs(B[i])>Bmax) Bmax=fabs(B[i]);

  for(i=1;i<=6;i++)
   B[i]=B[i]/Bmax;
   }



void ShapeRec(short Row, short Col, unsigned char** InputImg, COORDINATE * Left_Up, COORDINATE* Right_Down)
{
  short   LabelNumber,AreaNumber,i,j,l;
  AREA  *LabelArea;
  COORDINATE *LocalMaxPoint,*LocalMinPoint;
  short    LocalMaxPointNumber,LocalMinPointNumber;
  short    Distance1,Distance2,Distance3,Distance4,Mean;
  double  RecognitCoe,MinRecognitCoe;


  Left_Up->y = 0;
  Left_Up->x = 0;
  Right_Down->y = Row - 1 ;
  Right_Down->x = Col - 1;


  LabelNumber = Label(InputImg,Row,Col,LABELMODE_1,50);

  AreaNumber = LabelNumber;

  LabelArea = (AREA*)calloc(AreaNumber,sizeof(AREA));

  GetAreaInfo(AreaNumber,InputImg,Row,Col,LabelArea);

  LocalMaxPoint =  (COORDINATE*)calloc(MAX_POINT_NUMBER,sizeof(COORDINATE));
  LocalMinPoint = (COORDINATE*)calloc(MAX_POINT_NUMBER,sizeof(COORDINATE));


  MinRecognitCoe = 1000;

  for(l=0;l<AreaNumber;l++)
  {
    LocalMaxPointNumber=LocalMinPointNumber=0;

    Find_Peak(l,InputImg,LabelArea[l].Left_Up,LabelArea[l].Right_Down,
	      LocalMaxPoint,&LocalMaxPointNumber,LocalMinPoint,&LocalMinPointNumber);


    if((LocalMaxPointNumber>=3)&&(LocalMinPointNumber>=2))
	{
       for(i=0;i<LocalMaxPointNumber-2;i++)
       for(j=0;j<LocalMinPointNumber-1;j++)
	   {
		   if((LocalMinPoint[j].x<LocalMaxPoint[i].x)
	       &&(LocalMinPoint[j].x>LocalMaxPoint[i+1].x)
	       &&(LocalMinPoint[j+1].x<LocalMaxPoint[i+1].x)
	       &&(LocalMinPoint[j+1].x>LocalMaxPoint[i+2].x)
	       &&(LocalMaxPoint[i].y+1<LocalMinPoint[j].y)    //3->1
	       &&(LocalMaxPoint[i+1].y+1<LocalMinPoint[j].y)
	       &&(LocalMaxPoint[i+2].y+1<LocalMinPoint[j].y)
	       &&(LocalMaxPoint[i].y+1<LocalMinPoint[j+1].y)
	       &&(LocalMaxPoint[i+1].y+1<LocalMinPoint[j+1].y)
	       &&(LocalMaxPoint[i+2].y+1<LocalMinPoint[j+1].y)
	       &&(LocalMaxPoint[i+1].y<=LocalMaxPoint[i+2].y))
		   {
			   Distance1 = abs(LocalMaxPoint[i].x - LocalMinPoint[j].x);
			   Distance2 = abs(LocalMaxPoint[i+1].x - LocalMinPoint[j].x);
			   Distance3 = abs(LocalMaxPoint[i+1].x - LocalMinPoint[j+1].x);
			   Distance4 = abs(LocalMaxPoint[i+2].x - LocalMinPoint[j+1].x);
			   Mean = (Distance1 + Distance2 + Distance3 + Distance4) / 4;
			   RecognitCoe = sqrt(((double)Distance1*Distance1+(double)Distance2*Distance2
				   +(double)Distance3*Distance3+(double)Distance4*Distance4-4*(double)Mean*Mean)/(4-1.0));

		   //printf("RecognitCoe = %f",RecognitCoe);
			   if(RecognitCoe < MinRecognitCoe)
			   {
				   MinRecognitCoe = RecognitCoe;
				   Left_Up->y = (LocalMaxPoint[i].y < LocalMaxPoint[i+1].y)?LocalMaxPoint[i].y:LocalMaxPoint[i+1].y;
				   Left_Up->y = (Left_Up->y < LocalMaxPoint[i+2].y)?Left_Up->y:LocalMaxPoint[i+2].y ;
				   if((LocalMaxPoint[i+2].x - Distance3)> 0 ) Left_Up->x = LocalMaxPoint[i+2].x - Distance3;
				   else Left_Up->x = 0 ;
				   Right_Down->y = (LocalMinPoint[j].y > LocalMinPoint[j+1].y)?	LocalMinPoint[j].y:LocalMinPoint[j+1].y ;
				   if((LocalMaxPoint[i].x + Distance1)<Col)
					   Right_Down->x = LocalMaxPoint[i].x + Distance1;
				   else Right_Down->x = Col-1;
//				   Left_Up->y = LabelArea[l].Left_Up.y;
//				   Right_Down->y = LabelArea[l].Right_Down.y;
			   }
		   }
	   }
    }
  }

  free (LabelArea);
  free (LocalMaxPoint);
  free (LocalMinPoint);

}

void Find_Peak(short AreaNo, unsigned char* * InputImg, COORDINATE StartPoint, COORDINATE EndPoint, COORDINATE * LocalMaxPoint, short * LocalMaxPointNumber, COORDINATE * LocalMinPoint, short * LocalMinPointNumber)
{
 short i,j;
 //int EqualPointNumber;
 short Flag,Direction,OutsideFlag,LocalMaxPointFlag,LocalMinPointFlag;

     //Direction is the direction of the last track,align with the
     //anticlockwise. Its value is from 0...7;
 COORDINATE FirstPoint,ThisPoint,NextPoint;


 Flag = 0;
 for(j = StartPoint.x;j <= EndPoint.x;j++)
 {
	 for(i = StartPoint.y;i <= EndPoint.y;i++)
	 {
		 if(InputImg[i][j] == MAXLEVEL - AreaNo)
		 {
			 FirstPoint.y = i;
			 FirstPoint.x = j;
			 Flag = 1;
			 break;
		 }
	 }
	 if(Flag==1) break;
 }


 LocalMaxPointFlag = 0;
 LocalMinPointFlag = 0;
 Direction = 0;
 ThisPoint = FirstPoint;
 do
 {
	 for(i=0;i<8;i++)
	 {
		 OutsideFlag = 0;
		 NextTrackPoint(&OutsideFlag,StartPoint,EndPoint,Direction,ThisPoint,&NextPoint);

	 if(OutsideFlag == 0)
		 {
			 if(InputImg[NextPoint.y][NextPoint.x] != MAXLEVEL - AreaNo)
			 {
				 Direction++;
				 Direction = Direction % DIRECTION_NUMBER;
			 }
			 else break;
		 }
		 else
		 {
			 Direction++;
			 Direction = Direction % DIRECTION_NUMBER;
		 }
	 }

	 Direction = (Direction + 5) % DIRECTION_NUMBER;//get the direction of this track

     //ContourImg[NextPoint.y][NextPoint.x] = 255;

     if(LocalMaxPointFlag == 0)
     {
		 if(NextPoint.y < ThisPoint.y)  LocalMaxPointFlag = 1;
     }

	 else if(LocalMaxPointFlag == 1)
     {
		 if(NextPoint.y > ThisPoint.y)
		 {
			 LocalMaxPointFlag = 0;
			 LocalMaxPoint[*LocalMaxPointNumber].y = ThisPoint.y;
			 LocalMaxPoint[*LocalMaxPointNumber].x = ThisPoint.x;
			 (*LocalMaxPointNumber)++;
			 //PeakImg1[ThisPoint.y][ThisPoint.x] = 255;
		 }
     }

	 if(LocalMinPointFlag == 0)
     {
		 if(NextPoint.y > ThisPoint.y)    LocalMinPointFlag = 1;
     }

	 else if(LocalMinPointFlag == 1)
     {
		 if(NextPoint.y < ThisPoint.y)
		 {
			 LocalMinPointFlag = 0;
			 LocalMinPoint[*LocalMinPointNumber].y = ThisPoint.y;
			 LocalMinPoint[*LocalMinPointNumber].x = ThisPoint.x;
			 (*LocalMinPointNumber)++;
			 //PeakImg2[ThisPoint.y][ThisPoint.x] = 255;
		 }
     }

	 ThisPoint = NextPoint;
 }while((NextPoint.y != FirstPoint.y)||(NextPoint.x != FirstPoint.x));
}


void GetAreaInfo(short AreaNumber, unsigned char** LabelImg, short Row, short Col, AREA * Area)
{
short i,j,l;

  for(l = 0 ;l < AreaNumber;l++)
  {
    Area[l].Value = MAXLEVEL - l;

    Area[l].Right_Down.x=0;
    Area[l].Right_Down.y=0;
    Area[l].Left_Up.x=Col-1;
    Area[l].Left_Up.y=Row-1;

    for(i = 0;i < Row;i++)
		for(j = 0;j < Col;j++)
		{
			if(LabelImg[i][j]==Area[l].Value)
			{
				if(i<Area[l].Left_Up.y)       Area[l].Left_Up.y = i;
				if(i>Area[l].Right_Down.y)    Area[l].Right_Down.y = i;
				if(j<Area[l].Left_Up.x)       Area[l].Left_Up.x = j;
				if(j>Area[l].Right_Down.x)    Area[l].Right_Down.x = j;
			}
		}
		Area[l].Height = Area[l].Right_Down.y - Area[l].Left_Up.y + 1;
		Area[l].Width = Area[l].Right_Down.x - Area[l].Left_Up.x + 1;
  }
}


void NextTrackPoint(short * OutsideFlag, COORDINATE StartPoint, COORDINATE EndPoint, short Direction, COORDINATE ThisPoint, COORDINATE * NextPoint)
{
 switch(Direction)
 {
    case 0:
		{
			NextPoint->y = ThisPoint.y + 1;
			NextPoint->x = ThisPoint.x - 1;
			if((NextPoint->y<=EndPoint.y)&&(NextPoint->x>=StartPoint.x)) break;
			else
			{
				*OutsideFlag = 1;
				break;
			}
		}
    
	case 1:
		{
			NextPoint->y = ThisPoint.y + 1;
			NextPoint->x = ThisPoint.x;
			if(NextPoint->y<=EndPoint.y) break;
			else
			{
				*OutsideFlag = 1;
				break;
			}
		}
    case 2:
       {
		   NextPoint->y = ThisPoint.y + 1;
		   NextPoint->x = ThisPoint.x + 1;
		   if((NextPoint->y<=EndPoint.y)&&(NextPoint->x<=EndPoint.x)) break;
		   else
		   {
			   *OutsideFlag = 1;
			   break;
		   }
	   }
    
	case 3:
		{
			NextPoint->y = ThisPoint.y;
			NextPoint->x = ThisPoint.x + 1;
			if(NextPoint->x<=EndPoint.x) break;
			else
			{
				*OutsideFlag = 1;
				break;
			}
		}

    case 4:
       {
		   NextPoint->y = ThisPoint.y - 1;
		   NextPoint->x = ThisPoint.x + 1;
		   if((NextPoint->y>=StartPoint.y)&&(NextPoint->x<=EndPoint.x)) break;
		   else
		   {
			   *OutsideFlag = 1;
			   break;
		   }
       }

    case 5:
		{
			NextPoint->y = ThisPoint.y - 1;
			NextPoint->x = ThisPoint.x;
			if(NextPoint->y>=StartPoint.y) break;
			else
			{
				*OutsideFlag = 1;
				break;
			}
		}

    case 6:
		{
			NextPoint->y = ThisPoint.y - 1;
			NextPoint->x = ThisPoint.x - 1;
			if((NextPoint->y>=StartPoint.y)&&(NextPoint->x>=StartPoint.x)) break;
			else
			{
				*OutsideFlag = 1;
				break;
			}
       }
    case 7:
		{
		   NextPoint->y = ThisPoint.y;
		   NextPoint->x = ThisPoint.x - 1;
		   if(NextPoint->x>=StartPoint.x) break;
		   else
		   {
			   *OutsideFlag = 1;
			   break;
		   }
		}
    default:break;
 }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡二卡三卡| 福利视频网站一区二区三区| 日本韩国精品一区二区在线观看| 国产欧美一区二区精品秋霞影院| 粉嫩av亚洲一区二区图片| 亚洲国产精品黑人久久久| 国产成人免费av在线| 国产精品午夜在线| 日本道色综合久久| 日本亚洲天堂网| 欧美本精品男人aⅴ天堂| 国产真实乱偷精品视频免| 久久亚洲一级片| 99久久久免费精品国产一区二区 | 不卡的电影网站| 亚洲精品成人少妇| 欧美日产国产精品| 国内成人免费视频| 亚洲女与黑人做爰| 欧美一级国产精品| 本田岬高潮一区二区三区| 亚洲国产精品视频| 欧美精品一区在线观看| 99视频精品免费视频| 亚洲成人高清在线| 久久久高清一区二区三区| thepron国产精品| 日本怡春院一区二区| 国产精品婷婷午夜在线观看| 欧美色视频在线观看| 国产成人综合亚洲91猫咪| 一区二区三区不卡视频| 久久综合九色综合97婷婷| 欧美写真视频网站| 国产一二三精品| 性欧美疯狂xxxxbbbb| 欧美国产日韩在线观看| 欧美日韩国产一区| 成人综合婷婷国产精品久久免费| 亚洲成人免费电影| 国产精品乱人伦一区二区| 日韩精品一区二区三区在线| 色综合色狠狠综合色| 国产乱码精品一区二区三区av | 日韩欧美中文字幕一区| av在线不卡电影| 久久精品久久综合| 一区二区免费视频| 国产精品青草综合久久久久99| 91精品国产一区二区人妖| 91啪九色porn原创视频在线观看| 国内精品写真在线观看| 日产国产欧美视频一区精品| 亚洲欧美电影一区二区| 中文字幕 久热精品 视频在线| 欧美一区二区视频观看视频| 日本高清不卡一区| 99久久综合99久久综合网站| 国产在线精品免费| 日本不卡高清视频| 亚洲不卡一区二区三区| 亚洲女爱视频在线| 国产精品初高中害羞小美女文| 日韩欧美一二三区| 欧美精选在线播放| 欧美特级限制片免费在线观看| 波多野结衣中文字幕一区二区三区| 国产一区二区精品久久| 麻豆freexxxx性91精品| 日本视频中文字幕一区二区三区| 亚洲伊人色欲综合网| 一区二区三区四区激情 | 88在线观看91蜜桃国自产| 欧美综合一区二区| 欧洲精品视频在线观看| 色哟哟精品一区| 99国产一区二区三精品乱码| 丁香六月综合激情| 99精品一区二区三区| 99精品黄色片免费大全| 91美女片黄在线| 欧美综合亚洲图片综合区| 欧美日韩国产综合久久| 欧美一区二区免费观在线| 欧美一区二区三区在线观看| 日韩一区二区三区精品视频| 日韩午夜激情电影| 久久久久九九视频| 国产精品毛片久久久久久久| 综合激情成人伊人| 亚洲成人免费观看| 久久国产精品一区二区| 国产成人免费高清| 色屁屁一区二区| 欧美乱妇20p| 26uuu精品一区二区| 国产精品久久久久久久久快鸭| 国产精品灌醉下药二区| 亚洲视频在线一区二区| 夜夜揉揉日日人人青青一国产精品| 国产精品国产成人国产三级| 国产片一区二区| 亚洲午夜免费视频| 午夜电影一区二区| 日韩精品乱码免费| 九九精品视频在线看| 国产成人综合自拍| 日本美女一区二区三区视频| 国产精品夜夜嗨| 成人午夜免费av| 国产精品一区不卡| 9i在线看片成人免费| 91蜜桃在线观看| 欧美三级电影网站| 日韩一区二区在线免费观看| 国产欧美日韩另类一区| 亚洲视频一区在线| 偷偷要91色婷婷| 精品影视av免费| 成人国产精品免费观看视频| 不卡免费追剧大全电视剧网站| 欧美日韩三级一区| 欧美大片拔萝卜| 国产精品久久久久影视| 亚洲国产视频网站| 国产真实乱子伦精品视频| 欧美三级视频在线| 久久久美女艺术照精彩视频福利播放| 国产精品你懂的在线| 亚洲伦理在线精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 国内精品视频一区二区三区八戒| 欧美在线观看视频一区二区三区 | 欧美一级理论性理论a| 久久久久久麻豆| 一区二区三区在线免费播放| 裸体在线国模精品偷拍| 91在线一区二区| 91精品国产免费| 一区在线中文字幕| 日本美女一区二区三区| va亚洲va日韩不卡在线观看| 精品视频1区2区3区| 国产精品超碰97尤物18| 天堂一区二区在线| 成人免费视频网站在线观看| 91精品国产高清一区二区三区蜜臀| 亚洲国产高清不卡| 另类人妖一区二区av| 在线观看欧美日本| 亚洲欧美日韩精品久久久久| 奇米一区二区三区| 91猫先生在线| 精品国产免费久久| 麻豆91在线观看| 欧美日本在线一区| 亚洲黄色av一区| 成a人片国产精品| 亚洲精品一区二区三区四区高清| 一区二区三区不卡在线观看 | 国产成人亚洲综合a∨猫咪| 欧美日韩一区二区三区高清| 综合电影一区二区三区| 韩日欧美一区二区三区| 91精品国产免费| 亚洲电影一级片| 欧美日韩精品一区二区在线播放| 国产精品青草综合久久久久99| 国产一区高清在线| 日韩精品一区二区三区蜜臀 | 欧美国产日韩a欧美在线观看| 日本最新不卡在线| 欧美日韩精品免费| 国产女同性恋一区二区| 国产成人精品综合在线观看| 日韩免费观看高清完整版在线观看| 亚洲成人免费av| 欧美中文一区二区三区| 一个色综合av| 91精品国产一区二区三区蜜臀| 亚洲va欧美va天堂v国产综合| 欧美在线免费观看亚洲| 亚洲一区免费观看| 欧美亚洲国产怡红院影院| 五月天国产精品| 欧美日本韩国一区| 青青草伊人久久| 精品三级av在线| 成人教育av在线| 国产精品久久99| 色妹子一区二区| 亚洲黄色免费网站| 成人av午夜电影| 午夜精品久久久久久久蜜桃app| 91搞黄在线观看| 午夜精品久久久久久不卡8050| 欧美精选一区二区| 日产欧产美韩系列久久99| 国产午夜亚洲精品羞羞网站| 国产成人av福利|