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

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

?? edgecontour.cpp

?? 《VC++數字圖像處理》人民郵電大學出版社 何斌 馬天予 王遠堅 朱紅蓮
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

	// 返回
	return TRUE;

}

/*************************************************************************
 *
 * 函數名稱:
 *   Fill2DIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 種子填充成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用于對圖像進行種子填充運算。
 * 
 * 要求目標圖像為只有0和255兩個灰度值的灰度圖像。
 ************************************************************************/

BOOL WINAPI Fill2DIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向源圖像的指針
	LPSTR	lpSrc;

	//循環變量
	long i;

	//像素值
	unsigned char pixel;

	//左右邊界像素位置
	int xl,xr;

	//是否已填充至邊界
	BOOL bFilll,bFillr;

	//種子堆棧及指針
	Seed Seeds[10];
	int StackPoint;

	//當前像素位置
	int iCurrentPixelx,iCurrentPixely;
	int iBufferPixelx,iBufferPixely;

	//初始化種子
	Seeds[1].Height = lHeight / 2;
	Seeds[1].Width = lWidth / 2;
	StackPoint = 1;

	while( StackPoint != 0)
	{
		//取出種子
		iCurrentPixelx = Seeds[StackPoint].Width;
		iCurrentPixely = Seeds[StackPoint].Height;
		StackPoint--;
//		if(Seed2.Height== 75)
//		{
//			return true;
//			i++;
//		}
		bFilll = true;
		bFillr = true;
		//填充種子所在的行
		//保存種子像素的位置
		iBufferPixelx = iCurrentPixelx;
		iBufferPixely = iCurrentPixely;
		//先向左填充
		while(bFilll)
		{
			lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + iCurrentPixelx;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;

			//目標圖像中含有0和255外的其它灰度值
			if(pixel != 255 && pixel != 0)
				return FALSE;
			//遇到邊界
			if(pixel == 0)
			{
				bFilll = false;
				xl=iCurrentPixelx+1;
			}
			else
			{
				*lpSrc = (unsigned char)0;
				iCurrentPixelx--;
				//防止越界
				if(iCurrentPixelx<0)
				{	
					bFilll = false;
					iCurrentPixelx = 0;
					xl = 0; 
				}
			}		
		}
		//再向右填充
		//取回種子像素的位置
		iCurrentPixelx = iBufferPixelx+1;
		if(iCurrentPixelx>lWidth)
		{	
			bFillr = false;
			iCurrentPixelx = lWidth;
			xr = lWidth; 
		}
		iCurrentPixely = iBufferPixely;
		while(bFillr)
		{
			lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + iCurrentPixelx;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;

			//目標圖像中含有0和255外的其它灰度值
			if(pixel != 255 && pixel != 0)
				return FALSE;
			//遇到邊界
			if(pixel == 0)
			{
				bFillr = false;
				xr=iCurrentPixelx-1;
			}
			else
			{
				*lpSrc = (unsigned char)0;
				iCurrentPixelx++;
				//防止越界
				if(iCurrentPixelx>lWidth)
				{	
					bFillr = false;
					iCurrentPixelx = lWidth;
					xr = lWidth; 
				}
			}		
		}
		//上、下兩條掃描線是否全為邊界象素或已填充過
		//先看上面的掃描線
		iCurrentPixely--;
		if(iCurrentPixely < 0)
		{
			iCurrentPixely = 0;
		}
		for (i = xr; i>= xl;i--)
		{
			lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + i;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;

			//有未填充的像素,將新的種子壓入堆棧
			if (pixel == 255)
			{
				StackPoint++;
				Seeds[StackPoint].Height = iCurrentPixely;
				Seeds[StackPoint].Width = i;
				break;
			}				
		}
		//再看下面的掃描線
		iCurrentPixely+=2;
		if(iCurrentPixely > lHeight)
		{
			iCurrentPixely = lHeight;
		}
		for (i = xr; i>= xl;i--)
		{
			lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + i;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;

			//有未填充的像素,將新的種子壓入堆棧
			if (pixel == 255)
			{
				StackPoint++;
				Seeds[StackPoint].Height = iCurrentPixely;
				Seeds[StackPoint].Width = i;
				break;
			}				
		}


	}

	// 返回
	return TRUE;
}

/*************************************************************************
 *
 * 函數名稱:
 *   FillDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 種子填充成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用于對圖像進行種子填充運算。
 * 
 * 要求目標圖像為只有0和255兩個灰度值的灰度圖像。
 ************************************************************************/

BOOL WINAPI FillDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向源圖像的指針
	LPSTR	lpSrc;

	//像素值
	unsigned char pixel;

	//種子堆棧及指針
	Seed *Seeds;
	int StackPoint;

	//當前像素位置
	int iCurrentPixelx,iCurrentPixely;

	//初始化種子
	Seeds = new Seed[lWidth*lHeight];
	Seeds[1].Height = lHeight / 2;
	Seeds[1].Width = lWidth / 2;
	StackPoint = 1;

	while( StackPoint != 0)
	{
		//取出種子
		iCurrentPixelx = Seeds[StackPoint].Width;
		iCurrentPixely = Seeds[StackPoint].Height;
		StackPoint--;

		lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + iCurrentPixelx;
		//取得當前指針處的像素值,注意要轉換為unsigned char型
		pixel = (unsigned char)*lpSrc;

		//目標圖像中含有0和255外的其它灰度值
		if(pixel != 255 && pixel != 0)
			return FALSE;

		//將當前點涂黑
		*lpSrc = (unsigned char)0;

		//判斷左面的點,如果為白,則壓入堆棧
		//注意防止越界
		if(iCurrentPixelx > 0)
		{
			lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + iCurrentPixelx - 1;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;
			if (pixel == 255)
			{
				StackPoint++;
				Seeds[StackPoint].Height = iCurrentPixely;
				Seeds[StackPoint].Width = iCurrentPixelx - 1;
			}
			//目標圖像中含有0和255外的其它灰度值
			if(pixel != 255 && pixel != 0)
				return FALSE;
		}

		//判斷上面的點,如果為白,則壓入堆棧
		//注意防止越界
		if(iCurrentPixely < lHeight - 1)
		{
			lpSrc = (char *)lpDIBBits + lWidth * (iCurrentPixely + 1) + iCurrentPixelx;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;
			if (pixel == 255)
			{
				StackPoint++;
				Seeds[StackPoint].Height = iCurrentPixely + 1;
				Seeds[StackPoint].Width = iCurrentPixelx;
			}
			//目標圖像中含有0和255外的其它灰度值
			if(pixel != 255 && pixel != 0)
				return FALSE;
		}

		//判斷右面的點,如果為白,則壓入堆棧
		//注意防止越界
		if(iCurrentPixelx < lWidth - 1)
		{
			lpSrc = (char *)lpDIBBits + lWidth * iCurrentPixely + iCurrentPixelx + 1;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;
			if (pixel == 255)
			{
				StackPoint++;
				Seeds[StackPoint].Height = iCurrentPixely;
				Seeds[StackPoint].Width = iCurrentPixelx + 1;
			}
			//目標圖像中含有0和255外的其它灰度值
			if(pixel != 255 && pixel != 0)
				return FALSE;
		}

		//判斷下面的點,如果為白,則壓入堆棧
		//注意防止越界
		if(iCurrentPixely > 0)
		{
			lpSrc = (char *)lpDIBBits + lWidth * (iCurrentPixely - 1) + iCurrentPixelx;
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;
			if (pixel == 255)
			{
				StackPoint++;
				Seeds[StackPoint].Height = iCurrentPixely - 1;
				Seeds[StackPoint].Width = iCurrentPixelx;
			}
			//目標圖像中含有0和255外的其它灰度值
			if(pixel != 255 && pixel != 0)
				return FALSE;
		}
	}

	//釋放堆棧
	delete Seeds;
	// 返回
	return TRUE;
}

/*************************************************************************
 *
 * 函數名稱:
 *   ContourDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 運算成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用于對圖像進行輪廓提取運算。
 * 
 * 要求目標圖像為只有0和255兩個灰度值的灰度圖像。
 ************************************************************************/

BOOL WINAPI ContourDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向源圖像的指針
	LPSTR	lpSrc;
	
	// 指向緩存圖像的指針
	LPSTR	lpDst;
	
	// 指向緩存DIB圖像的指針
	LPSTR	lpNewDIBBits;
	HLOCAL	hNewDIBBits;

	//循環變量
	long i;
	long j;
	unsigned char n,e,s,w,ne,se,nw,sw;

	//像素值
	unsigned char pixel;

	// 暫時分配內存,以保存新圖像
	hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight);

	if (hNewDIBBits == NULL)
	{
		// 分配內存失敗
		return FALSE;
	}
	
	// 鎖定內存
	lpNewDIBBits = (char * )LocalLock(hNewDIBBits);

	// 初始化新分配的內存,設定初始值為255
	lpDst = (char *)lpNewDIBBits;
	memset(lpDst, (BYTE)255, lWidth * lHeight);
	for(j = 1; j <lHeight-1; j++)
	{
		for(i = 1;i <lWidth-1; i++)
		{
			
			// 指向源圖像倒數第j行,第i個象素的指針			
			lpSrc = (char *)lpDIBBits + lWidth * j + i;
			
			// 指向目標圖像倒數第j行,第i個象素的指針			
			lpDst = (char *)lpNewDIBBits + lWidth * j + i;
			
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;

			//目標圖像中含有0和255外的其它灰度值
//			if(pixel != 255 && pixel != 0)
//				return FALSE;
			if(pixel == 0)
			{
				*lpDst = (unsigned char)0;
				nw = (unsigned char)*(lpSrc + lWidth -1);
				n  = (unsigned char)*(lpSrc + lWidth );
				ne = (unsigned char)*(lpSrc + lWidth +1);
				w = (unsigned char)*(lpSrc -1);
				e = (unsigned char)*(lpSrc +1);
				sw = (unsigned char)*(lpSrc - lWidth -1);
				s  = (unsigned char)*(lpSrc - lWidth );
				se = (unsigned char)*(lpSrc - lWidth +1);
				//如果相鄰的八個點都是黑點
				if(nw+n+ne+w+e+sw+s+se==0)
				{
					*lpDst = (unsigned char)255;
				}
			}
		}
	}

	// 復制腐蝕后的圖像
	memcpy(lpDIBBits, lpNewDIBBits, lWidth * lHeight);

	// 釋放內存
	LocalUnlock(hNewDIBBits);
	LocalFree(hNewDIBBits);

	// 返回
	return TRUE;
}

/*************************************************************************
 *
 * 函數名稱:
 *   TraceDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 運算成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用于對圖像進行輪廓跟蹤運算。
 * 
 * 要求目標圖像為只有0和255兩個灰度值的灰度圖像。
 ************************************************************************/

BOOL WINAPI TraceDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向源圖像的指針
	LPSTR	lpSrc;
	
	// 指向緩存圖像的指針
	LPSTR	lpDst;
	
	// 指向緩存DIB圖像的指針
	LPSTR	lpNewDIBBits;
	HLOCAL	hNewDIBBits;

	// 圖像每行的字節數
	LONG lLineBytes;
	
	//循環變量
	long i;
	long j;

	//像素值
	unsigned char pixel;

	//是否找到起始點及回到起始點
	bool bFindStartPoint;

	//是否掃描到一個邊界點
	bool bFindPoint;

	//起始邊界點與當前邊界點
	Point StartPoint,CurrentPoint;

	//八個方向和起始掃描方向
	int Direction[8][2]={{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}};
	int BeginDirect;

	// 計算圖像每行的字節數
	lLineBytes = WIDTHBYTES(lWidth * 8);

	// 暫時分配內存,以保存新圖像
	hNewDIBBits = LocalAlloc(LHND, lLineBytes * lHeight);

	if (hNewDIBBits == NULL)
	{
		// 分配內存失敗
		return FALSE;
	}
	
	// 鎖定內存
	lpNewDIBBits = (char * )LocalLock(hNewDIBBits);

	// 初始化新分配的內存,設定初始值為255
	lpDst = (char *)lpNewDIBBits;
	memset(lpDst, (BYTE)255, lLineBytes * lHeight);

	//先找到最左上方的邊界點
	bFindStartPoint = false;
	for (j = 0;j < lHeight && !bFindStartPoint;j++)
	{
		for(i = 0;i < lWidth && !bFindStartPoint;i++)
		{
			// 指向源圖像倒數第j行,第i個象素的指針			
			lpSrc = (char *)lpDIBBits + lLineBytes * j + i;
			
			//取得當前指針處的像素值,注意要轉換為unsigned char型
			pixel = (unsigned char)*lpSrc;
			
			if(pixel == 0)
			{
				bFindStartPoint = true;

				StartPoint.Height = j;
				StartPoint.Width = i;

				// 指向目標圖像倒數第j行,第i個象素的指針			
				lpDst = (char *)lpNewDIBBits + lLineBytes * j + i;	
				*lpDst = (unsigned char)0;
			}		
		}
	}

	//由于起始點是在左下方,故起始掃描沿左上方向
	BeginDirect = 0;
	//跟蹤邊界
	bFindStartPoint = false;
	//從初始點開始掃描
	CurrentPoint.Height = StartPoint.Height;
	CurrentPoint.Width = StartPoint.Width;
	while(!bFindStartPoint)
	{
		bFindPoint = false;
		while(!bFindPoint)
		{
			//沿掃描方向查看一個像素
			lpSrc = (char *)lpDIBBits + lLineBytes * ( CurrentPoint.Height + Direction[BeginDirect][1])
				+ (CurrentPoint.Width + Direction[BeginDirect][0]);
			pixel = (unsigned char)*lpSrc;
			if(pixel == 0)
			{
				bFindPoint = true;
				CurrentPoint.Height = CurrentPoint.Height + Direction[BeginDirect][1];
				CurrentPoint.Width = CurrentPoint.Width + Direction[BeginDirect][0];
				if(CurrentPoint.Height == StartPoint.Height && CurrentPoint.Width == StartPoint.Width)
				{
					bFindStartPoint = true;
				}
				lpDst = (char *)lpNewDIBBits + lLineBytes * CurrentPoint.Height + CurrentPoint.Width;
				*lpDst = (unsigned char)0;
				//掃描的方向逆時針旋轉兩格
				BeginDirect--;
				if(BeginDirect == -1)
					BeginDirect = 7;
				BeginDirect--;
				if(BeginDirect == -1)
					BeginDirect = 7;
			}
			else
			{
				//掃描方向順時針旋轉一格
				BeginDirect++;
				if(BeginDirect == 8)
					BeginDirect = 0;

			}

		}
	}

	// 復制腐蝕后的圖像
	memcpy(lpDIBBits, lpNewDIBBits, lWidth * lHeight);

	// 釋放內存
	LocalUnlock(hNewDIBBits);
	LocalFree(hNewDIBBits);

	// 返回
	return TRUE;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
**性色生活片久久毛片| 国产精品久线在线观看| 日韩午夜中文字幕| 日韩精品在线网站| 日韩精品自拍偷拍| 久久亚洲春色中文字幕久久久| 欧美成人精品福利| 久久综合久久综合久久| 欧美激情一区二区三区四区 | 欧美精品一区二区三区视频| 色婷婷亚洲婷婷| 欧美日韩第一区日日骚| 国产精品 欧美精品| 成人激情校园春色| 欧美午夜精品一区| 欧美日韩亚洲综合一区二区三区| 91在线你懂得| 欧美三级在线视频| 欧美精品一区二区久久婷婷| 中文字幕一区二区三区不卡 | 免费不卡在线观看| 成人开心网精品视频| 欧美日韩国产综合草草| 成人欧美一区二区三区白人| 视频一区视频二区在线观看| gogogo免费视频观看亚洲一| 亚洲精品在线观| 亚洲国产另类av| 91在线国产观看| 国产亚洲精久久久久久| 一区二区三区免费观看| 国产成人自拍在线| 久久奇米777| 日韩欧美高清dvd碟片| 99久久精品国产精品久久| 久久99久久久久久久久久久| 亚洲综合色网站| 久久久久久久久久久久久女国产乱| 日韩欧美在线123| 欧美男女性生活在线直播观看| 99久久精品免费精品国产| 成人黄色免费短视频| 亚洲国产精品欧美一二99| 亚洲黄网站在线观看| 亚洲自拍与偷拍| 亚洲少妇30p| 亚洲国产日韩综合久久精品| 久久精品亚洲精品国产欧美kt∨| 精品国产伦一区二区三区免费| 日韩免费高清av| 日韩欧美黄色影院| 日韩欧美国产精品一区| 欧美精品一区二区三区一线天视频 | 国产一区二区三区在线看麻豆| 亚洲成人av中文| 偷窥国产亚洲免费视频| 国产一区二区三区精品视频| 国产成人午夜片在线观看高清观看| 国产精品99久久久久久宅男| 色狠狠av一区二区三区| 日韩三级中文字幕| 精品嫩草影院久久| 亚洲一区影音先锋| 国产乱码字幕精品高清av| 国产高清不卡一区二区| 欧美麻豆精品久久久久久| 国产精品电影一区二区三区| 国产成人在线免费| 久久亚洲精华国产精华液| 亚洲女爱视频在线| 风间由美中文字幕在线看视频国产欧美| 欧美性生活一区| 一区二区三区在线观看动漫| 色噜噜偷拍精品综合在线| 国产精品短视频| 成人av网站在线观看免费| 国产三级三级三级精品8ⅰ区| 精品一区二区免费在线观看| 91精品国产丝袜白色高跟鞋| 亚洲国产日韩在线一区模特| 91久久精品网| 亚洲精品乱码久久久久久黑人| 97精品久久久午夜一区二区三区 | 精品在线播放免费| 欧美日本在线看| 亚洲综合999| 宅男噜噜噜66一区二区66| 亚洲美腿欧美偷拍| 欧美日韩中字一区| 午夜一区二区三区在线观看| 97超碰欧美中文字幕| 日韩美女视频19| 欧美区视频在线观看| 一区二区三区四区在线播放| 欧美日韩高清不卡| 蜜桃视频在线一区| 欧美一区二区三区的| 美脚の诱脚舐め脚责91| 国产无人区一区二区三区| 精品一区二区三区不卡| 欧美精品一区二区三区视频| 国产999精品久久久久久| 中文在线免费一区三区高中清不卡| 成人妖精视频yjsp地址| 久久久精品影视| 国产一区二区精品久久91| 亚洲伦理在线精品| 正在播放亚洲一区| 国产另类ts人妖一区二区| 国产精品麻豆99久久久久久| 色菇凉天天综合网| 日本大胆欧美人术艺术动态| 中文字幕欧美三区| 精品视频全国免费看| 韩国av一区二区| 亚洲精选在线视频| 欧美成va人片在线观看| 国产精品一区二区久久精品爱涩| 日韩美女视频19| 国产人成一区二区三区影院| 91成人看片片| 久久99日本精品| 亚洲欧美视频在线观看视频| 欧美精品久久久久久久久老牛影院| 青草国产精品久久久久久| 最新热久久免费视频| 欧美成人综合网站| 日韩一区二区高清| 成人免费三级在线| 日韩成人免费电影| 国产日产欧美一区| 欧美猛男男办公室激情| 91丨九色丨黑人外教| 日韩激情在线观看| 亚洲资源在线观看| 精品福利一二区| 色av成人天堂桃色av| av电影一区二区| 久久国产欧美日韩精品| 日韩激情一二三区| 日韩国产在线观看| 日日嗨av一区二区三区四区| 亚洲欧洲www| 国产精品污网站| 精品88久久久久88久久久| 欧美日韩一二三| 欧美日韩久久一区| 成人av资源站| 成人免费看片app下载| 波多野结衣亚洲| 99久久精品国产一区| 成人av免费网站| 91热门视频在线观看| 成人a区在线观看| 色综合天天综合网国产成人综合天 | 亚洲国产日韩在线一区模特| 中文字幕亚洲不卡| 亚洲成人在线观看视频| 裸体在线国模精品偷拍| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区二三区| 青青草精品视频| 成人精品鲁一区一区二区| 成人精品小蝌蚪| 成人久久久精品乱码一区二区三区| 99久久99久久综合| 99久久久国产精品| 欧美伦理影视网| 日韩欧美二区三区| 国产视频一区在线观看| 亚洲国产综合视频在线观看| 免费久久99精品国产| 国产.欧美.日韩| 欧美日韩一区二区三区高清| 精品国产亚洲一区二区三区在线观看| 国产日韩欧美亚洲| 亚洲免费在线视频| 日本欧美肥老太交大片| 国产在线一区观看| 色88888久久久久久影院按摩 | 日韩不卡手机在线v区| www.性欧美| 欧美一级久久久| 亚洲精品中文在线| 蜜臀a∨国产成人精品| eeuss鲁片一区二区三区在线看| 日韩一级成人av| 亚洲一区二区三区在线播放| 免费不卡在线视频| 99久久免费视频.com| 51精品视频一区二区三区| 国产欧美一区二区三区鸳鸯浴| 五月天网站亚洲| 视频一区国产视频| 成人激情黄色小说| 精品国产凹凸成av人网站| 一区二区免费在线| 成人av电影免费在线播放| 日韩精品一区二区在线| 天天av天天翘天天综合网|