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

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

?? edgecontour.cpp

?? 《VC++數字圖像處理》人民郵電大學出版社 何斌 馬天予 王遠堅 朱紅蓮
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// ************************************************************************
//  文件名:edgecontour.cpp
//
//  圖像邊緣與輪廓運算API函數庫:
//
//  RobertDIB()		- robert邊緣檢測運算
//  SobelDIB()		- sobel邊緣檢測運算
//  PrewittDIB()	- prewitt邊緣檢測運算
//  KirschDIB()		- kirsch邊緣檢測運算
//  GaussDIB()		- gauss邊緣檢測運算
//  HoughDIB()		- 利用Hough變換檢測平行直線
//  ContourDIB()	- 輪廓提取
//  TraceDIB()		- 輪廓跟蹤
//  FillDIB()		- 種子填充算法1
//  Fill2DIB()		- 種子填充算法2

//
// ************************************************************************

#include "stdafx.h"
#include "edgecontour.h"
#include "TemplateTrans.h"
#include "DIBAPI.h"

#include <math.h>
#include <direct.h>

/*************************************************************************
 *
 * 函數名稱:
 *   RobertDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 邊緣檢測成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用Robert邊緣檢測算子對圖像進行邊緣檢測運算。
 * 
 * 要求目標圖像為灰度圖像。
 ************************************************************************/

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

	//循環變量
	long i;
	long j;

	//像素值
	double result;
	unsigned char pixel[4];

	// 暫時分配內存,以保存新圖像
	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 = lHeight-1; j > 0; j--)
	{
		for(i = 0;i <lWidth-1; i++)
		{
			//由于使用2×2的模板,為防止越界,所以不處理最下邊和最右邊的兩列像素

			// 指向源圖像第j行,第i個象素的指針			
			lpSrc = (char *)lpDIBBits + lWidth * j + i;

			// 指向目標圖像第j行,第i個象素的指針			
			lpDst = (char *)lpNewDIBBits + lWidth * j + i;

			//取得當前指針處2*2區域的像素值,注意要轉換為unsigned char型
			pixel[0] = (unsigned char)*lpSrc;
			pixel[1] = (unsigned char)*(lpSrc + 1);
			pixel[2] = (unsigned char)*(lpSrc - lWidth);
			pixel[3] = (unsigned char)*(lpSrc - lWidth + 1);

			//計算目標圖像中的當前點
			 result = sqrt(( pixel[0] - pixel[3] )*( pixel[0] - pixel[3] ) + \
				  ( pixel[1] - pixel[2] )*( pixel[1] - pixel[2] ));
			*lpDst = (unsigned char)result;
		
		}
	}

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

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

	// 返回
	return TRUE;
}

/*************************************************************************
 *
 * 函數名稱:
 *   SobelDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 邊緣檢測成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用Sobel邊緣檢測算子對圖像進行邊緣檢測運算。
 * 
 * 要求目標圖像為灰度圖像。
 ************************************************************************/

BOOL WINAPI SobelDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向緩存圖像的指針
	LPSTR	lpDst1;
	LPSTR	lpDst2;
	
	// 指向緩存DIB圖像的指針
	LPSTR	lpNewDIBBits1;
	HLOCAL	hNewDIBBits1;
	LPSTR	lpNewDIBBits2;
	HLOCAL	hNewDIBBits2;

	//循環變量
	long i;
	long j;

	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	//模板數組
	FLOAT aTemplate[9];

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

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

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

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

	// 拷貝源圖像到緩存圖像中
	lpDst1 = (char *)lpNewDIBBits1;
	memcpy(lpNewDIBBits1, lpDIBBits, lWidth * lHeight);
	lpDst2 = (char *)lpNewDIBBits2;
	memcpy(lpNewDIBBits2, lpDIBBits, lWidth * lHeight);

	// 設置Sobel模板參數
	iTempW = 3;
	iTempH = 3;
	fTempC = 1.0;
	iTempMX = 1;
	iTempMY = 1;
	aTemplate[0] = -1.0;
	aTemplate[1] = -2.0;
	aTemplate[2] = -1.0;
	aTemplate[3] = 0.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = 0.0;
	aTemplate[6] = 1.0;
	aTemplate[7] = 2.0;
	aTemplate[8] = 1.0;

	// 調用Template()函數
	if (!Template(lpNewDIBBits1, lWidth, lHeight, 
		iTempH, iTempW, iTempMX, iTempMY, aTemplate, fTempC))
	{
		return FALSE;
	}

	// 設置Sobel模板參數
	aTemplate[0] = -1.0;
	aTemplate[1] = 0.0;
	aTemplate[2] = 1.0;
	aTemplate[3] = -2.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = 2.0;
	aTemplate[6] = -1.0;
	aTemplate[7] = 0.0;
	aTemplate[8] = 1.0;

	// 調用Template()函數
	if (!Template(lpNewDIBBits2, lWidth, lHeight, 
		iTempH, iTempW, iTempMX, iTempMY, aTemplate, fTempC))
	{
		return FALSE;
	}

	//求兩幅緩存圖像的最大值
	for(j = 0; j <lHeight; j++)
	{
		for(i = 0;i <lWidth-1; i++)
		{

			// 指向緩存圖像1倒數第j行,第i個象素的指針			
			lpDst1 = (char *)lpNewDIBBits1 + lWidth * j + i;

			// 指向緩存圖像2倒數第j行,第i個象素的指針			
			lpDst2 = (char *)lpNewDIBBits2 + lWidth * j + i;
			
			if(*lpDst2 > *lpDst1)
				*lpDst1 = *lpDst2;
		
		}
	}

	// 復制經過模板運算后的圖像到源圖像
	memcpy(lpDIBBits, lpNewDIBBits1, lWidth * lHeight);

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

	LocalUnlock(hNewDIBBits2);
	LocalFree(hNewDIBBits2);
	// 返回
	return TRUE;
}

/*************************************************************************
 *
 * 函數名稱:
 *   PrewittDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 邊緣檢測成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用Prewitt邊緣檢測算子對圖像進行邊緣檢測運算。
 * 
 * 要求目標圖像為灰度圖像。
 ************************************************************************/

BOOL WINAPI PrewittDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向緩存圖像的指針
	LPSTR	lpDst1;
	LPSTR	lpDst2;
	
	// 指向緩存DIB圖像的指針
	LPSTR	lpNewDIBBits1;
	HLOCAL	hNewDIBBits1;
	LPSTR	lpNewDIBBits2;
	HLOCAL	hNewDIBBits2;

	//循環變量
	long i;
	long j;

	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	//模板數組
	FLOAT aTemplate[9];

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

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

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

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

	// 拷貝源圖像到緩存圖像中
	lpDst1 = (char *)lpNewDIBBits1;
	memcpy(lpNewDIBBits1, lpDIBBits, lWidth * lHeight);
	lpDst2 = (char *)lpNewDIBBits2;
	memcpy(lpNewDIBBits2, lpDIBBits, lWidth * lHeight);


	// 設置Prewitt模板參數
	iTempW = 3;
	iTempH = 3;
	fTempC = 1.0;
	iTempMX = 1;
	iTempMY = 1;
	aTemplate[0] = -1.0;
	aTemplate[1] = -1.0;
	aTemplate[2] = -1.0;
	aTemplate[3] = 0.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = 0.0;
	aTemplate[6] = 1.0;
	aTemplate[7] = 1.0;
	aTemplate[8] = 1.0;

	// 調用Template()函數
	if (!Template(lpNewDIBBits1, lWidth, lHeight, 
		iTempH, iTempW, iTempMX, iTempMY, aTemplate, fTempC))
	{
		return FALSE;
	}

	// 設置Prewitt模板參數
	aTemplate[0] = 1.0;
	aTemplate[1] = 0.0;
	aTemplate[2] = -1.0;
	aTemplate[3] = 1.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = -1.0;
	aTemplate[6] = 1.0;
	aTemplate[7] = 0.0;
	aTemplate[8] = -1.0;

	// 調用Template()函數
	if (!Template(lpNewDIBBits2, lWidth, lHeight, 
		iTempH, iTempW, iTempMX, iTempMY, aTemplate, fTempC))
	{
		return FALSE;
	}

	//求兩幅緩存圖像的最大值
	for(j = 0; j <lHeight; j++)
	{
		for(i = 0;i <lWidth-1; i++)
		{

			// 指向緩存圖像1倒數第j行,第i個象素的指針			
			lpDst1 = (char *)lpNewDIBBits1 + lWidth * j + i;

			// 指向緩存圖像2倒數第j行,第i個象素的指針			
			lpDst2 = (char *)lpNewDIBBits2 + lWidth * j + i;
			
			if(*lpDst2 > *lpDst1)
				*lpDst1 = *lpDst2;
		
		}
	}

	// 復制經過模板運算后的圖像到源圖像
	memcpy(lpDIBBits, lpNewDIBBits1, lWidth * lHeight);

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

	LocalUnlock(hNewDIBBits2);
	LocalFree(hNewDIBBits2);
	// 返回
	return TRUE;
}

/*************************************************************************
 *
 * 函數名稱:
 *   KirschDIB()
 *
 * 參數:
 *   LPSTR lpDIBBits    - 指向源DIB圖像指針
 *   LONG  lWidth       - 源圖像寬度(象素數,必須是4的倍數)
 *   LONG  lHeight      - 源圖像高度(象素數)
 * 返回值:
 *   BOOL               - 邊緣檢測成功返回TRUE,否則返回FALSE。
 *
 * 說明:
 * 該函數用kirsch邊緣檢測算子對圖像進行邊緣檢測運算。
 * 
 * 要求目標圖像為灰度圖像。
 ************************************************************************/

BOOL WINAPI KirschDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
	
	// 指向緩存圖像的指針
	LPSTR	lpDst1;
	LPSTR	lpDst2;
	
	// 指向緩存DIB圖像的指針
	LPSTR	lpNewDIBBits1;
	HLOCAL	hNewDIBBits1;
	LPSTR	lpNewDIBBits2;
	HLOCAL	hNewDIBBits2;

	//循環變量
	long i;
	long j;

	// 模板高度
	int		iTempH;
	
	// 模板寬度
	int		iTempW;
	
	// 模板系數
	FLOAT	fTempC;
	
	// 模板中心元素X坐標
	int		iTempMX;
	
	// 模板中心元素Y坐標
	int		iTempMY;
	
	//模板數組
	FLOAT aTemplate[9];

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

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

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

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

	// 拷貝源圖像到緩存圖像中
	lpDst1 = (char *)lpNewDIBBits1;
	memcpy(lpNewDIBBits1, lpDIBBits, lWidth * lHeight);
	lpDst2 = (char *)lpNewDIBBits2;
	memcpy(lpNewDIBBits2, lpDIBBits, lWidth * lHeight);


	// 設置Kirsch模板1參數
	iTempW = 3;
	iTempH = 3;
	fTempC = 1.0;
	iTempMX = 1;
	iTempMY = 1;
	aTemplate[0] = 5.0;
	aTemplate[1] = 5.0;
	aTemplate[2] = 5.0;
	aTemplate[3] = -3.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = -3.0;
	aTemplate[6] = -3.0;
	aTemplate[7] = -3.0;
	aTemplate[8] = -3.0;

	// 調用Template()函數
	if (!Template(lpNewDIBBits1, lWidth, lHeight, 
		iTempH, iTempW, iTempMX, iTempMY, aTemplate, fTempC))
	{
		return FALSE;
	}

	// 設置Kirsch模板2參數
	aTemplate[0] = -3.0;
	aTemplate[1] = 5.0;
	aTemplate[2] = 5.0;
	aTemplate[3] = -3.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = 5.0;
	aTemplate[6] = -3.0;
	aTemplate[7] = -3.0;
	aTemplate[8] = -3.0;

	// 調用Template()函數
	if (!Template(lpNewDIBBits2, lWidth, lHeight, 
		iTempH, iTempW, iTempMX, iTempMY, aTemplate, fTempC))
	{
		return FALSE;
	}

	//求兩幅緩存圖像的最大值
	for(j = 0; j <lHeight; j++)
	{
		for(i = 0;i <lWidth-1; i++)
		{

			// 指向緩存圖像1倒數第j行,第i個象素的指針			
			lpDst1 = (char *)lpNewDIBBits1 + lWidth * j + i;

			// 指向緩存圖像2倒數第j行,第i個象素的指針			
			lpDst2 = (char *)lpNewDIBBits2 + lWidth * j + i;
			
			if(*lpDst2 > *lpDst1)
				*lpDst1 = *lpDst2;
		
		}
	}

	// 拷貝源圖像到緩存圖像中
	memcpy(lpNewDIBBits2, lpDIBBits, lWidth * lHeight);

	// 設置Kirsch模板3參數
	aTemplate[0] = -3.0;
	aTemplate[1] = -3.0;
	aTemplate[2] = 5.0;
	aTemplate[3] = -3.0;
	aTemplate[4] = 0.0;
	aTemplate[5] = 5.0;
	aTemplate[6] = -3.0;
	aTemplate[7] = -3.0;
	aTemplate[8] = 5.0;

	// 調用Template()函數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
5月丁香婷婷综合| 日本欧美久久久久免费播放网| 精品一区二区三区久久久| 欧美一区二区三级| 亚洲视频 欧洲视频| 极品美女销魂一区二区三区 | 国产电影一区二区三区| 精品久久久久香蕉网| 久久99精品久久久久婷婷| 日韩免费高清视频| 日日噜噜夜夜狠狠视频欧美人| 欧美日韩一区高清| 日韩国产成人精品| 欧美性极品少妇| 午夜精品一区二区三区免费视频| 在线视频欧美精品| 三级亚洲高清视频| 91啪亚洲精品| 亚洲成a人片在线不卡一二三区| 欧美性生活大片视频| 伊人开心综合网| 欧美日韩视频在线观看一区二区三区| 亚洲mv大片欧洲mv大片精品| 日韩欧美在线网站| 国模娜娜一区二区三区| 中文字幕高清一区| 91日韩精品一区| 亚洲v精品v日韩v欧美v专区| 欧美xxxxxxxx| 不卡av电影在线播放| 一区二区理论电影在线观看| 色综合久久综合网97色综合| 亚洲大片精品永久免费| 欧美xxxx在线观看| 成人免费观看视频| 亚洲一区二区视频在线观看| 欧美一区二区日韩一区二区| 国产一区在线观看视频| 亚洲色图色小说| 欧美丰满少妇xxxbbb| 国产一区二区三区精品视频| 亚洲欧美日韩系列| 91精品国产91综合久久蜜臀| 成人av在线资源网站| 亚洲一区二区三区自拍| 欧美精品一区二区三区很污很色的| 成人激情小说网站| 综合av第一页| 亚洲国产高清在线| 欧美女孩性生活视频| 精品在线播放免费| 亚洲激情av在线| 久久综合狠狠综合久久综合88 | 国产一区二区剧情av在线| 亚洲男人的天堂一区二区| 欧美疯狂性受xxxxx喷水图片| 粉嫩aⅴ一区二区三区四区| 日韩二区三区四区| 亚洲色图欧美在线| 精品国内二区三区| 久久尤物电影视频在线观看| 国产精品66部| 国产一区二区主播在线| 精品无码三级在线观看视频| 日本午夜精品一区二区三区电影| 一区二区三区在线不卡| 亚洲女与黑人做爰| 亚洲日本护士毛茸茸| 国产精品国产三级国产普通话蜜臀| 久久久久久97三级| 国产亚洲欧美日韩俺去了| 久久日韩精品一区二区五区| 久久欧美中文字幕| 久久综合网色—综合色88| 欧美精品一区二区在线播放| 久久综合999| 国产欧美中文在线| 国产精品激情偷乱一区二区∴| 国产精品你懂的| 日韩理论片网站| 亚洲自拍偷拍网站| 视频在线在亚洲| 久久99热国产| 国产精品一区在线| 成人激情免费视频| 色综合久久中文字幕综合网| 欧美性视频一区二区三区| 欧美日韩专区在线| 欧美成人video| 国产欧美日韩激情| 亚洲免费在线播放| 日本不卡在线视频| 激情图区综合网| 不卡大黄网站免费看| 欧美日韩一区在线观看| 欧美成人一区二区| 国产精品高潮呻吟久久| 亚洲品质自拍视频网站| 日韩精品亚洲专区| 国产精品一卡二卡| 欧美在线短视频| 日韩免费视频线观看| 亚洲欧洲www| 日韩va欧美va亚洲va久久| 国产麻豆精品95视频| 色香蕉久久蜜桃| 欧美成人精品3d动漫h| 亚洲视频综合在线| 视频在线在亚洲| 成人网在线免费视频| 欧美日韩国产在线观看| 精品999在线播放| 亚洲色图.com| 美女免费视频一区| 色哟哟国产精品| 久久午夜电影网| 亚洲国产成人va在线观看天堂| 国产一区在线精品| 欧美日韩国产123区| 国产婷婷色一区二区三区| 国产精品18久久久久久久久| 欧洲一区二区三区免费视频| 精品国产一区a| 亚洲夂夂婷婷色拍ww47| 国产成人亚洲精品青草天美| 精品视频在线免费看| 欧美韩日一区二区三区| 奇米综合一区二区三区精品视频| 成人高清视频在线| 欧美成人a∨高清免费观看| 一区二区三区影院| 国产成人在线看| 精品少妇一区二区三区| 亚洲va欧美va国产va天堂影院| 国产黄色精品网站| 日韩一区二区三区三四区视频在线观看 | 精品一区二区三区免费视频| 色偷偷久久一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 午夜精品久久久久久久99樱桃| 色综合天天综合网天天狠天天| 久久综合九色综合欧美就去吻| 日本美女一区二区三区| 欧美在线三级电影| 亚洲精品欧美激情| 99re热视频这里只精品| 日本一区二区三区电影| 激情都市一区二区| 欧美大片一区二区| 首页国产欧美久久| 欧美日韩aaaaa| 亚洲成人av一区二区三区| 色8久久精品久久久久久蜜| 国产精品麻豆99久久久久久| 大白屁股一区二区视频| 欧美激情一区二区三区四区| 国产精品91一区二区| 国产欧美一区二区在线观看| 国产乱码精品一区二区三区五月婷| 日韩午夜激情电影| 久久99精品久久久| 日韩欧美国产综合| 久久超碰97中文字幕| 精品美女被调教视频大全网站| 久久99精品久久久| 久久久天堂av| 国产精品1024| 久久精品亚洲国产奇米99| 国产精品香蕉一区二区三区| 亚洲国产精品99久久久久久久久 | 日韩av高清在线观看| 欧美日韩在线播放一区| 日日摸夜夜添夜夜添国产精品| 欧美精品久久99| 乱中年女人伦av一区二区| 精品日韩av一区二区| 国产福利一区二区三区视频| 国产精品无遮挡| 色综合网站在线| 亚洲成人一区在线| 精品精品国产高清a毛片牛牛| 国产一区二区三区av电影| 中文字幕av一区二区三区免费看| 99综合影院在线| 亚洲影视在线观看| 日韩一区二区三区精品视频| 国内外成人在线| 亚洲日本在线视频观看| 欧美精品国产精品| 国产麻豆9l精品三级站| 亚洲欧美日韩国产手机在线| 欧美色倩网站大全免费| 激情文学综合插| 亚洲乱码国产乱码精品精可以看 | av电影一区二区| 日韩伦理电影网| 在线不卡欧美精品一区二区三区| 美腿丝袜亚洲三区| 国产精品素人一区二区| 欧洲一区在线电影|