亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产成人午夜99999| 在线视频欧美精品| 国内精品免费在线观看| 日韩av电影免费观看高清完整版 | 国产精品天美传媒沈樵| 久久―日本道色综合久久| 精品国产乱码久久久久久影片| 4hu四虎永久在线影院成人| 欧美日韩亚洲综合一区二区三区| 在线视频国产一区| 欧美午夜宅男影院| 欧美日韩成人综合| 7777精品久久久大香线蕉| 欧美色爱综合网| 欧美日韩国产综合一区二区 | 欧美精品久久99| 91精品国产色综合久久不卡电影| 91精品国产综合久久久久久久久久 | 国产九色sp调教91| 成人综合激情网| 91一区在线观看| 在线看不卡av| 欧美一区二区三区色| 精品国产乱码久久久久久图片| 国产亚洲成av人在线观看导航 | 免费成人av在线| 国内外成人在线| jlzzjlzz国产精品久久| 色视频欧美一区二区三区| 欧美日韩免费一区二区三区| 日韩一二在线观看| 国产精品视频线看| 亚洲国产另类av| 韩国中文字幕2020精品| 白白色 亚洲乱淫| 欧美日韩日日夜夜| 国产人久久人人人人爽| 一区二区三区在线不卡| 蜜乳av一区二区| va亚洲va日韩不卡在线观看| 欧美日韩精品三区| 国产午夜精品一区二区三区视频| 亚洲天堂免费看| 美女免费视频一区| www.欧美日韩| 日韩三级中文字幕| 亚洲国产精品精华液2区45| 亚洲午夜久久久久中文字幕久| 久久99热这里只有精品| av在线这里只有精品| 欧美精品日韩精品| 亚洲国产精品精华液2区45| 婷婷六月综合亚洲| 99热精品一区二区| 日韩一级片网站| 一区二区三区在线免费视频| 国内精品自线一区二区三区视频| 色94色欧美sute亚洲线路二| 久久综合资源网| 亚洲国产日韩精品| 不卡区在线中文字幕| 欧美一区二区三区在| 亚洲视频一区二区免费在线观看| 麻豆精品一区二区三区| 91行情网站电视在线观看高清版| 精品国产伦一区二区三区观看方式| 一区二区三区免费| 国产91精品一区二区麻豆网站 | 精品99一区二区三区| 亚洲一区二区三区在线播放| 国产91精品入口| 欧美大度的电影原声| 亚洲无人区一区| 成人黄色在线网站| 精品国产一区二区精华| 天天色 色综合| 91蜜桃婷婷狠狠久久综合9色| 久久久一区二区三区| 日韩精品欧美精品| 欧美唯美清纯偷拍| 亚洲欧美色图小说| av成人免费在线| 欧美激情中文不卡| 国内精品写真在线观看| 欧美成人女星排名| 日韩av中文字幕一区二区| 欧美性受xxxx黑人xyx| 亚洲特黄一级片| av一二三不卡影片| 国产精品每日更新在线播放网址| 韩国精品主播一区二区在线观看| 欧美一区二视频| 免费一级欧美片在线观看| 欧美日韩国产免费| 亚洲国产美女搞黄色| 欧美私人免费视频| 亚洲一区二区三区爽爽爽爽爽| 色伊人久久综合中文字幕| 国产精品免费丝袜| 成人听书哪个软件好| 中文子幕无线码一区tr| 国产精品99久久久久久久vr| 久久久精品一品道一区| 国产成人无遮挡在线视频| 国产欧美一区二区三区沐欲| 狠狠色狠狠色综合系列| 精品国产乱码久久久久久1区2区| 久久狠狠亚洲综合| 精品成人免费观看| 国产一区二区福利| 国产欧美日本一区视频| 成人黄色在线视频| 综合激情网...| 91久久免费观看| 亚洲成人免费在线观看| 这里只有精品免费| 激情综合网激情| 欧美激情在线看| 91小宝寻花一区二区三区| 亚洲精品免费看| 欧美精品v国产精品v日韩精品 | 在线播放日韩导航| 免费看欧美女人艹b| 久久久一区二区| 91麻豆国产福利在线观看| 亚洲一区视频在线观看视频| 日韩一区和二区| 国产suv一区二区三区88区| 国产精品久久久久久久蜜臀| 色婷婷综合视频在线观看| 性做久久久久久久免费看| 欧美一区二区三区免费在线看 | 国产成人免费在线视频| 亚洲视频 欧洲视频| 欧美日韩一区二区三区不卡| 麻豆一区二区在线| 中文字幕在线观看一区二区| 欧美吞精做爰啪啪高潮| 麻豆成人91精品二区三区| 国产精品污网站| 欧美精品在线观看播放| 极品美女销魂一区二区三区免费| 中文字幕在线一区免费| 欧美日韩视频第一区| 国产精品资源网站| 一区二区欧美精品| 欧美成人a∨高清免费观看| 99精品1区2区| 久久er99精品| 一区二区三区在线视频播放| 亚洲精品在线一区二区| 色综合久久久久综合体| 精品一区二区三区免费播放| 亚洲人亚洲人成电影网站色| 欧美一区二区三区在线观看 | 国产精品久久久久久久午夜片| 欧美男同性恋视频网站| 国产不卡视频一区| 日韩精品电影在线观看| 中文字幕乱码久久午夜不卡 | 欧美mv和日韩mv国产网站| aa级大片欧美| 美女尤物国产一区| 亚洲卡通欧美制服中文| 26uuu精品一区二区在线观看| 欧美性一二三区| 国产**成人网毛片九色 | 国产福利精品导航| 天堂资源在线中文精品| 中文字幕色av一区二区三区| 日韩精品一区二区三区三区免费 | 国产日韩欧美制服另类| 欧美精品v国产精品v日韩精品| 波多野结衣中文字幕一区| 蜜桃精品视频在线| 亚洲成人高清在线| 日韩理论片网站| 国产精品麻豆网站| 久久亚洲精精品中文字幕早川悠里| 欧美剧在线免费观看网站| 91网站在线观看视频| 成人综合婷婷国产精品久久| 久久99久久99| 美女视频第一区二区三区免费观看网站| 亚洲欧美日韩国产一区二区三区| 国产欧美精品区一区二区三区 | 婷婷综合另类小说色区| 亚洲女与黑人做爰| 国产精品欧美久久久久无广告 | 久久精品人人做| 日韩欧美视频一区| 欧美日韩精品是欧美日韩精品| 91国偷自产一区二区三区成为亚洲经典| 国产精品亚洲一区二区三区妖精 | 国产精品99精品久久免费| 青草国产精品久久久久久| 亚洲成人在线网站| 亚洲一区二区av在线| 亚洲乱码中文字幕| 亚洲欧美另类小说视频|