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

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

?? wavelet1ddlg.cpp

?? Good idea, realization wavelet algorithm
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	    if(*(Data+n)==NULL)
		   flag=FALSE;
	}
	DotData=new double[sizeof(double)*(m_nImageWidth+m_nImageHeight)];
	if(DotData==NULL)
		flag=FALSE;
    return flag;
}

// 釋放小波變換所用內存資源
void CWavelet1DDlg::ReleaseMemory()
{
   for(int k=0;k<m_nDecomposeStage;k++)
	   if(*(Data+k))
		     delete *(Data+k);
   if(Data)
   {
	  delete []Data; 
	  Data=NULL;
   }
   if(DotData)
   {
	  delete DotData;	
	  DotData=NULL;
   }
   if(DIB)
   { 
	  ::GlobalFree((HGLOBAL) DIB);
	  DIB=NULL;
   } 
}

// 返回H算子周期化后得值
double CWavelet1DDlg::HH(int i,int m)
{
     return h[i+m];

}

// 返回G算子周期化后的值
double CWavelet1DDlg::GG(int i, int m)
{
     char flag;
	 if(i%2)
		 flag=-1;
	 else
		 flag=1;
	 return HH(-1*i+1,m)*flag;
}

// H算子周期化過程
BOOL CWavelet1DDlg::HHH(int level,int size)
{
     int len,m,i;
	 double temp;
	 int sign;
	 len=size>>level;
	 m=m_nFilterLen/2;
	 if((ph=new double[sizeof(double)*len])==NULL)
	 {
	    AfxMessageBox("H算子內存分配失敗!",MB_OK|MB_ICONINFORMATION);
		return FALSE;
	 }
	 for(sign=0;sign<len;sign++)
	 {
	     temp=0;
		 for(i=(-1*m+1);i<=m;i++)
		 {
		     if(((sign-i)%len)==0)
		     temp+=HH(i-1,m);
		 }
		 ph[sign]=temp;
	 }
	 return TRUE;
}

// G算子周期化過程
BOOL CWavelet1DDlg::GGG(int level,int size)
{
     int len,m,i;
	 double temp;
	 int sign;
	 len=size>>level;
	 m=m_nFilterLen/2;
	 if((pg=new double[sizeof(double)*len])==NULL)
	 {
	    AfxMessageBox("G算子內存分配失敗!",MB_OK|MB_ICONINFORMATION);
		return FALSE;
	 }
	 for(sign=0;sign<len;sign++)
	 {
	     temp=0;
		 for(i=(-1*m+3);i<=m+2;i++)
		 {
		     if(((sign-i)%len)==0)
		     temp+=GG(i-1,m);
		 }
		 pg[sign]=temp;
	 }
	 return TRUE;
}

// H算子作用于一維數據
void CWavelet1DDlg::HOperatorOn(int filterlen, int start, int len,int level)
{
     int i,i2,m,k,len1;
	 double temp1;
	 m=m_nFilterLen/2;
	 len1=len>>1;
	 for(i=0;i<len1;i++)
	 {
	     i2=2*i;
		 Data[level][i+start]=0;
		 if(len>filterlen)
		 {
		    for(k=i2-len;k<=i2-len+m;k++)
			{
			    if((k>=0)&&(k<len))
					if((temp1=ph[(k-i2+len)%len])!=0)
						Data[level][i+start]+=temp1*Data[level-1][k+start];
			}
			for(k=i2-m+1;k<=i2+m;k++)
			{
			    if((k>=0)&&(k<len))
					if((temp1=ph[(k-i2+len)%len])!=0)
						Data[level][i+start]+=temp1*Data[level-1][k+start];
			}
			for(k=i2+len-m+1;k<=i2+len;k++)
			{
			    if((k>=0)&&(k<len))
					if((temp1=ph[(k-i2+len)%len])!=0)
						Data[level][i+start]+=temp1*Data[level-1][k+start];
			}
		 }
		 else
		 {
		    for(k=0;k<len;k++)
			{
			    if((temp1=ph[(k-i2+len)%len])!=0)
					Data[level][i+start]+=temp1*Data[level-1][k+start];
			}
		 }
	 }
}

// G算子作用于一維數據
void CWavelet1DDlg::GOperatorOn(int filterlen, int start, int len,int level)
{
	 int i,i2,m,k,len1;
	 double temp1;
	 m=m_nFilterLen/2;
	 len1=len>>1;
	 for(i=0;i<len1;i++)
	 {
	     i2=2*i;
		 Data[level][i+start+len1]=0;
		 if(len>filterlen)
		 {
		    for(k=i2-len;k<=i2-len+m+2;k++)
			{
			    if((k>=0)&&(k<len))
					if((temp1=pg[(k-i2+len)%len])!=0)
						Data[level][i+start+len1]+=temp1*Data[level-1][k+start];
			}
			for(k=i2-m+3;k<=i2+m+2;k++)
			{
			    if((k>=0)&&(k<len))
					if((temp1=pg[(k-i2+len)%len])!=0)
						Data[level][i+start+len1]+=temp1*Data[level-1][k+start];
			}
			for(k=i2+len-m+3;k<=i2+len;k++)
			{
			    if((k>=0)&&(k<len))
					if((temp1=pg[(k-i2+len)%len])!=0)
						Data[level][i+start+len1]+=temp1*Data[level-1][k+start];
			}
		 }
		 else
		 {
		    for(k=0;k<len;k++)
			{
			    if((temp1=pg[(k-i2+len)%len])!=0)
					Data[level][i+start+len1]+=temp1*Data[level-1][k+start];
			}
		 }
	 }
}

// 對一維數據進行level層小波變換
BOOL CWavelet1DDlg::DecompStage(int level, int filterlen)
{
     int start,len;
	 len=(m_nImageWidth+m_nImageHeight)>>(level-1);
	 start=0;
	 if((!HHH(level-1,m_nImageWidth+m_nImageHeight))||(!GGG(level-1,m_nImageWidth+m_nImageHeight)))
	     return FALSE;
	 HOperatorOn(filterlen,start,len,level);
	 GOperatorOn(filterlen,start,len,level);
	 if(ph&&pg)
	 {
	    delete  ph;
		delete  pg;
		ph=NULL;
		pg=NULL;
	 }
	 return TRUE;     
}

// 繪制m_nDisplayStage指定層次的小波變換結果
void CWavelet1DDlg::DrawWavelet1D()
{
	// 創建繪圖所需資源
	int Ox=0,Oy=0;
	int Ox1=0,Oy1=0,Ox2=0,Oy2=0;
	CString Text=_T("");
	CPen *OldPen,PenWhite,PenGreen,PenBlue,Pen;
	CPen* OldPen2;
	PenWhite.CreatePen(PS_SOLID,1,0x00FFFFFF);
	PenGreen.CreatePen(PS_SOLID,1,0x0000FF00);
	PenBlue.CreatePen(PS_SOLID,1,0x00FF0000);
	Pen.CreatePen(PS_SOLID,1,0x00FFFFFF);
	CDC* pDC=GetDC();
    CRect RectClient,Workarea;
    GetClientRect(RectClient);
	
	// 鎖定DIB
	lpDIB = (LPSTR)::GlobalLock((HGLOBAL) GetHDIB());

    // 在對話框右上部分繪制原始數據圖像及二值化后點陣投影圖像
	int temp;
    int i,j;
	// 創建繪制區
	Workarea.left=RectClient.left+(RectClient.right-RectClient.left)/5*2;
    Workarea.right=RectClient.right-10;
    Workarea.top=RectClient.top+10;
	Workarea.bottom=RectClient.top+(RectClient.bottom-RectClient.top-10)/2+40;
    pDC->Rectangle(Workarea);
    pDC->SetBkColor(0x00FFFFFF);
    // 繪制坐標軸
	Ox = Workarea.left+20;    Oy = Workarea.bottom-20;
	pDC->MoveTo(Ox,Oy);
	pDC->LineTo(Ox,Workarea.top+10);
	pDC->MoveTo(Ox,Oy);
	pDC->LineTo(Workarea.right-10,Oy);
    // 繪制二值化后數據圖像
    Ox1= Ox+m_nImageWidth;           Oy1= Oy-m_nImageHeight;
	pDC->MoveTo(Ox1,Oy1);
	pDC->LineTo(Ox1,Oy1-m_nImageHeight);
	pDC->LineTo(Ox1+m_nImageWidth,Oy1-m_nImageHeight);
	pDC->LineTo(Ox1+m_nImageWidth,Oy1);
	pDC->LineTo(Ox1,Oy1);
	pDC->SetTextColor(0x000000FF);
	pDC->TextOut(Ox,Workarea.top+3,"原始數據圖像二值化及投影圖");
	OldPen=pDC->SelectObject(&PenBlue);
    for(i=0;i<m_nImageHeight;i++)
	   for(j=0;j<m_nImageWidth;j++)
	   {  
           temp=*((unsigned char *)lpDIBBits+m_nImageWidth*i+j);
		   if(temp<=m_nBinGate)
		   {
			  *((unsigned char *)lpDIBBits+m_nImageWidth*i+j)=0;			  
			  pDC->MoveTo(Ox1+j,Oy1-i);
			  pDC->LineTo(Ox1+j,Oy1-i-2);
			  OldPen2=pDC->SelectObject(&PenWhite);
			  pDC->LineTo(Ox1+j,Oy1-i-1);
			  pDC->SelectObject(OldPen2);
		   }
		   else
		   {
			   *((unsigned char *)lpDIBBits+m_nImageWidth*i+j)=255;
		   }
	   }
	// 繪制垂直和水平方向的投影
    for(i=0;i<m_nImageHeight;i++)
	{
	    temp=Data[0][i];
		pDC->MoveTo(Ox,Oy1-i);
		pDC->LineTo(Ox+temp,Oy1-i);
	}
	for(j=0;j<m_nImageWidth;j++)
	{
	    temp=Data[0][m_nImageHeight+j];
		pDC->MoveTo(Ox1+j,Oy);
		pDC->LineTo(Ox1+j,Oy-temp);
	}	
    pDC->SelectObject(OldPen);

	// 在對話框右下部分繪制小波變換后第m_nDisplayStage層數據圖像
	int    DataLen=0;
	double XUnit=1,YUnit=1,tempX=0,tempY=0;
	int    temp1=0,temp2=0;
	double max=0,min=0,scale=0;
    // 創建繪制區
	Workarea.left=RectClient.left+(RectClient.right-RectClient.left)/5*2;
    Workarea.right=RectClient.right-10;
	Workarea.top=RectClient.top+10+(RectClient.bottom-RectClient.top-10)/2+40;
    Workarea.bottom=RectClient.bottom-10; 
    pDC->Rectangle(Workarea);
    pDC->SetBkColor(0x00FFFFFF);
	// 繪制坐標軸
	Ox = Workarea.left+20;    Oy = Workarea.bottom-20;
	pDC->MoveTo(Ox,Oy);
	pDC->LineTo(Ox,Workarea.top+10);
	pDC->MoveTo(Ox,Oy);
	pDC->LineTo(Workarea.right-10,Oy);
	// 歸一化小波變換后數據并繪制
	max=Data[m_nDisplayStage][0];
	min=Data[m_nDisplayStage][0];
	for(j=0;j<m_nImageWidth+m_nImageHeight;j++)
	{   
		if(max<Data[m_nDisplayStage][j])
		   max=Data[m_nDisplayStage][j];
		if(min>Data[m_nDisplayStage][j])
	   	   min=Data[m_nDisplayStage][j];
	}
	scale=max-min;
	XUnit=double(Workarea.right-Workarea.left-30)/double(m_nImageHeight+m_nImageWidth);
    YUnit=double(Workarea.bottom-Workarea.top-30-10)/scale;
	if(min>0)
	   scale=0;
	else
	   scale=(0-min)*YUnit;
	pDC->MoveTo(Ox,Oy-scale);
	pDC->LineTo(Workarea.right-10,Oy-scale);
	pDC->SetTextColor(0x000000FF);
	pDC->TextOut(Ox-10,Oy-scale-6,"O");
	Text.Format("Max:%f  Min:%f",max,min);
	pDC->TextOut(Ox+10,Workarea.top+5,Text);
	pDC->SelectObject(&PenBlue);
	for(j=0;j<m_nImageWidth+m_nImageHeight-1;j++)
	{
	    tempX=j*XUnit;
		tempY=(Data[m_nDisplayStage][j]-min)*YUnit;
        pDC->MoveTo(tempX+Ox,Oy-tempY);
		tempX=(j+1)*XUnit;
		tempY=(Data[m_nDisplayStage][j+1]-min)*YUnit;
		pDC->LineTo(tempX+Ox,Oy-tempY);
	}
    pDC->SelectObject(OldPen);
	// 繪制說明文字如C0,D0等
	DataLen=m_nImageWidth+m_nImageHeight;
	for(j=0;j<=m_nDisplayStage;j++)
	{
	    temp1=temp2;
		temp2=DataLen>>(m_nDisplayStage-j);
		tempX=(temp2-1)*XUnit;
		tempY=(Data[m_nDisplayStage][temp2-1]-min)*YUnit;
		pDC->MoveTo(tempX+Ox,Oy-tempY);
	    pDC->LineTo(tempX+Ox,Oy);
		if(j==0)
			Text.Format("C%d",m_nDisplayStage);
		else
			Text.Format("D%d",m_nDisplayStage+1-j);
		tempX=((temp2-temp1-1)/2+temp1)*XUnit-5;
		pDC->SetTextColor(0x000000FF);
		pDC->TextOut(Ox+tempX,Oy+3,Text);		
	}

	// 釋放資源
	PenWhite.DeleteObject();
	PenGreen.DeleteObject();
	PenBlue.DeleteObject();
	Pen.DeleteObject();
    // 解除鎖定
	::GlobalUnlock((HGLOBAL)GetHDIB());
}

// Hn系數文件產生函數,因為Hn文件只需產生一次,所以程序中并沒有使用此函數。
// 若要重新產生Hn文件,讀者可以調用此函數。
BOOL CWavelet1DDlg::GenerateHnFile()
{
	double Hn[10][20] ={ {0,0},
						{ 0.4829629131445341, 0.8365163037378077, 0.2241438680420134,
	                     -0.1294095225512603 },
						{ 0.3326705529500825, 0.8068915093110924, 0.4598775021184914,
						 -0.1350110200102546,-0.0854412738820267, 0.0352262918857095 },
						{ 0.2303778133088964, 0.7148465705529154, 0.6308807679398587,
						 -0.0279837694168599,-0.1870348117190931, 0.0308413818355607,
						  0.0328830116668852,-0.0105974017850890 },
						{ 0.1601023979741929, 0.6038292697971895, 0.7243085284377726,
						  0.1384281459013203,-0.2422948870663823,-0.0322448695846381,
						  0.0775714938400459,-0.0062414902127983,-0.0125807519990820,
						  0.0033357252854738 },
						{ 0.1115407433501095, 0.4946238903984533, 0.7511339080210959,
						  0.3152503517091982,-0.2262646939654400,-0.1297668675672625,
						  0.0975016055873225, 0.0275228655303053,-0.0315820393174862,
						  0.0005538422011614, 0.0047772575109455, 0.0010773010853085 },
						{ 0.0778520540850037, 0.3965393194818912, 0.7291320908461957,
						  0.4697822874051889,-0.1439060039285212,-0.2240361549938412,
						  0.0713092192668272, 0.0806123091510774,-0.0380299369350104,
						 -0.0165745416306655, 0.0125509985560986, 0.0004295779729214,
						 -0.0018016407040473, 0.0003537137999745 },
						{ 0.0544158422431072, 0.3128715909143166, 0.6756307362973195,
						  0.5852546836542159,-0.0158291052563823,-0.2840155429615824,
						  0.0004724845739124, 0.1287474266204893,-0.0173693010018090,
						 -0.0440882539307971, 0.0139810279174001, 0.0087160940474065,
						 -0.0048703529934520,-0.0003917403733770, 0.0006754494064506,
						 -0.0001174767841248 },
						{ 0.0380779473638778, 0.2438346746125858, 0.6048231236900955,
	  					  0.6572880780512736, 0.1331973858249883,-0.2932737832791663,
	  		     		 -0.0968407832229492, 0.1485407493381256, 0.0307256814793385,
						 -0.0676328290613279, 0.0002509471148340, 0.0223616621236798,
						 -0.0047232047577518,-0.0042815036824635, 0.0018476468830563,
						  0.0002303857645232,-0.0002519631889427, 0.0000393473203163 },
						{ 0.0266700579005473, 0.1881768000776347, 0.5272011889315757,
						  0.6884590394534363, 0.2811723436605715,-0.2498464243271598,
						 -0.1959462743772862, 0.1273693403357541, 0.0930573646035547,
						 -0.0713941471663501,-0.0294575368218399, 0.0332126740593612,
						  0.0036065535669870,-0.0107331754833007, 0.0013953517470688,
						  0.0019924052951925,-0.0006858566949564,-0.001164668551285,
						  0.0000935886703202,-0.0000132642028945 },
	};
	BOOL flag=TRUE;
	FILE *fp;
	int i,j;
	for(i=0;i<10;i++)
	{
	    if((fp=fopen(m_strFilterFile[i],"wb+"))==NULL)
		{
			AfxMessageBox("Hn算子文件生成失敗!",MB_OK|MB_ICONINFORMATION);
		    flag=FALSE;
			break;
		}
	    for(j=0;j<2*(i+1);j++)
			fwrite(&Hn[i][j],sizeof(double),1,fp);
		fclose(fp);
	}
    return flag;
}





void CWavelet1DDlg::OnEditchangeAboutbox() 
{
	// TODO: Add your control notification handler code here
	
}

void CWavelet1DDlg::OnChangeEditBmpfile() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}

void CAboutDlg::OnOK() 
{
	// TODO: Add extra validation here
	
	CDialog::OnOK();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成年人网站91| 精品亚洲免费视频| 中文av一区特黄| 精品久久久影院| 91精品黄色片免费大全| 欧美精品乱人伦久久久久久| 欧美色综合天天久久综合精品| 91色视频在线| 色天天综合久久久久综合片| 色婷婷综合久久久| 在线观看视频一区二区| 欧美色图激情小说| 在线不卡一区二区| 日韩精品最新网址| 久久蜜桃av一区二区天堂| 中文字幕av一区二区三区免费看 | 欧美日韩色综合| 欧美日韩亚洲综合一区| 欧美一区二区三区成人| 精品国产成人系列| 国产三级久久久| 最新国产成人在线观看| 亚洲五月六月丁香激情| 日本中文字幕一区二区视频 | 91视频在线观看| 一本一道波多野结衣一区二区| 在线亚洲一区观看| 欧美一区二区在线观看| 久久综合久久鬼色中文字| 国产精品午夜免费| 亚洲午夜久久久久久久久电影网 | 国产精品99久久久| 99国产欧美另类久久久精品 | 久久久久久久网| 国产精品久久二区二区| 亚洲福利视频一区二区| 九九视频精品免费| 91亚洲精华国产精华精华液| 欧美高清视频一二三区| 亚洲国产岛国毛片在线| 亚洲午夜免费视频| 国产精品一二三在| 欧美午夜理伦三级在线观看| 日韩欧美国产电影| 亚洲欧美综合色| 蜜臀91精品一区二区三区| 国产一区二区三区四区五区美女| 色先锋资源久久综合| 日韩精品中文字幕在线不卡尤物 | 狠狠色丁香久久婷婷综合丁香| 成人av网站免费观看| 欧美日本乱大交xxxxx| 国产欧美一区二区三区在线看蜜臀 | 国产精品资源在线| 日本韩国一区二区| 久久久欧美精品sm网站| 一区二区在线观看免费| 国模套图日韩精品一区二区| 欧美系列日韩一区| 国产精品女同一区二区三区| 麻豆精品新av中文字幕| 欧美视频在线一区二区三区| 久久亚区不卡日本| 视频一区免费在线观看| 99精品视频在线播放观看| 日韩亚洲欧美一区| 亚洲激情图片小说视频| 丁香网亚洲国际| 欧美一区二区久久| 一区二区三区四区激情 | 精品欧美一区二区久久| 一区二区在线观看视频| 成人18精品视频| 国产欧美视频一区二区| 人人精品人人爱| 欧美日韩黄色一区二区| 亚洲色图.com| av一二三不卡影片| 久久久久国产免费免费| 蜜桃精品在线观看| 91精品啪在线观看国产60岁| 一级日本不卡的影视| 成人高清免费观看| 久久久亚洲综合| 精品一二三四区| 日韩精品一区二区在线| 天天亚洲美女在线视频| 在线视频你懂得一区二区三区| 国产精品色呦呦| 成人精品免费看| 中文字幕第一区综合| 国产精品18久久久| 国产日韩高清在线| 国产成人在线视频网址| 久久蜜桃一区二区| 国产成人亚洲综合a∨猫咪| 亚洲精品一区二区三区精华液 | eeuss国产一区二区三区| 国产欧美精品一区二区色综合 | 欧美三级电影一区| 亚洲影视资源网| 在线免费av一区| 亚洲一区二三区| 欧美视频完全免费看| 亚洲成人动漫一区| 欧美日韩精品一区二区天天拍小说 | 精品国产一二三| 看电视剧不卡顿的网站| 日韩免费电影网站| 激情五月婷婷综合| 国产欧美一区二区三区网站| 丰满亚洲少妇av| 中文字幕一区二区三区在线播放 | 欧美日韩一级大片网址| 亚洲国产视频一区二区| 9191成人精品久久| 麻豆精品国产91久久久久久| 欧美精品一区二区三区很污很色的 | 国产日韩一级二级三级| 丰满少妇久久久久久久| 亚洲免费色视频| 欧美日韩一级黄| 九色综合国产一区二区三区| 国产欧美一区二区三区网站| 一本久道久久综合中文字幕 | 欧美亚洲一区三区| 五月婷婷综合激情| 精品国产污污免费网站入口| 国产超碰在线一区| 亚洲视频在线一区观看| 欧美绝品在线观看成人午夜影视| 日本不卡一区二区三区高清视频| 久久夜色精品一区| 99久精品国产| 日韩av电影免费观看高清完整版| 亚洲精品一区二区三区在线观看| 成人福利视频网站| 午夜视频在线观看一区二区| 久久综合资源网| 91在线视频官网| 美女视频网站久久| 国产精品色噜噜| 欧美日韩国产高清一区二区| 国产一区二区免费在线| 亚洲色图制服诱惑| 日韩欧美你懂的| 91免费国产在线观看| 美洲天堂一区二卡三卡四卡视频 | 国产suv精品一区二区三区| 亚洲欧美成人一区二区三区| 日韩免费观看2025年上映的电影| 成人精品小蝌蚪| 日本成人在线不卡视频| 综合色中文字幕| 精品日韩欧美一区二区| 色综合天天综合给合国产| 免费高清不卡av| 怡红院av一区二区三区| 久久人人爽人人爽| 欧美主播一区二区三区美女| 韩国欧美国产1区| 亚洲午夜久久久久久久久电影网| 久久久欧美精品sm网站| 欧美日韩国产免费一区二区| 国产成人av一区二区三区在线| 亚洲国产精品久久艾草纯爱| 欧美国产日本视频| 日韩一级二级三级精品视频| 色哦色哦哦色天天综合| 国产黄色精品网站| 日本成人在线看| 一区二区三区在线免费| 中文字幕乱码一区二区免费| 精品久久久网站| 欧美群妇大交群的观看方式| 国产99久久久久| 麻豆传媒一区二区三区| 亚洲成人激情综合网| 国产精品初高中害羞小美女文| 欧美成人精品福利| 欧美日韩mp4| 在线免费不卡视频| 不卡一区二区三区四区| 激情文学综合插| 免费欧美在线视频| 亚洲18色成人| 一区二区视频在线| 国产精品久久久99| 中文一区二区完整视频在线观看| 精品久久人人做人人爰| 欧美一区欧美二区| 91麻豆精品国产自产在线| 欧美亚州韩日在线看免费版国语版| 成人黄页在线观看| 国产成人免费视频精品含羞草妖精| 久久精品久久久精品美女| 日本成人在线电影网| 日韩电影免费在线观看网站| 亚洲国产综合91精品麻豆| 一区二区三区四区视频精品免费|