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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? imageprocessingview.cpp

?? 《Visual C++數(shù)字圖像獲取 處理及實(shí)踐應(yīng)用》一書的源代碼
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
// ImageProcessingView.cpp : implementation of the CImageProcessingView class
//

#include "stdafx.h"
#include "ImageProcessing.h"

#include "ImageProcessingDoc.h"
#include "ImageProcessingView.h"
#include  "GlobalApi.h"
#include  "DlgCoding.h"
#include <complex>
using namespace std;

#include "DlgHistShow1.h"
#include "DlgSmooth.h"
#include "DlgMedian.h"
#include "DlgEnhColor.h"
#include "DlgEhnLinTrans.h"
#include "DlgReg.h"
#include "DlgRecMatch.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView

IMPLEMENT_DYNCREATE(CImageProcessingView, CScrollView)

BEGIN_MESSAGE_MAP(CImageProcessingView, CScrollView)
	//{{AFX_MSG_MAP(CImageProcessingView)
	ON_COMMAND(ID_FFT_2D, OnFft2d)
	ON_COMMAND(ID_DFT_2D, OnDft2d)
	ON_COMMAND(ID_VIEW_HISTOGRAM, OnViewHistogram)
	ON_COMMAND(ID_ENHANCE_SMOOTH, OnEnhanceSmooth)
	ON_COMMAND(ID_ENHANCE_MEDIAN, OnEnhanceMedian)
	ON_COMMAND(ID_ENHANCE_PSEUDCOLOR, OnEnhancePseudcolor)
	ON_COMMAND(ID_TRANS_DWT, OnTransDwt)
	ON_COMMAND(ID_TRANS_IDWT, OnTransIdwt)
	ON_COMMAND(IDC_ENHANCE_LINTRANS, OnEnhanceLintrans)
	ON_COMMAND(IDC_ENHANCE_HISTEQU, OnEnhanceHistequ)
	ON_COMMAND(ID_REG_REG, OnRegReg)
	ON_COMMAND(IDC_ENHANCE_SHARP, OnEnhanceSharp)
	ON_COMMAND(ID_ENHANCE_SMOOTH_FR, OnEnhanceSmoothFr)
	ON_COMMAND(IDC_ENHANCE_BUTT_LOW, OnEnhanceButtLow)
	ON_COMMAND(IDC_ENHANCE_SHARP_FREQ, OnEnhanceSharpFreq)
	ON_COMMAND(IDC_ENHANCE_BUTT_HIGHT, OnEnhanceButtHight)
	ON_COMMAND(ID_REGIONSEG_FIX, OnRegionsegFix)
	ON_COMMAND(ID_ADA_REGION_SEG, OnAdaRegionSeg)
	ON_COMMAND(ID_EDGE_ROBERTS, OnEdgeRoberts)
	ON_COMMAND(ID_EDGE_SOBEL, OnEdgeSobel)
	ON_COMMAND(ID_EDGE_PREWITT, OnEdgePrewitt)
	ON_COMMAND(ID_EDGE_LAPLACE, OnEdgeLaplace)
	ON_COMMAND(ID_EDGE_CANNY, OnEdgeCanny)
	ON_COMMAND(ID_EDGE_TRACK, OnEdgeTrack)
	ON_COMMAND(ID_REGION_GROW, OnRegionGrow)
	ON_COMMAND(ID_MOTION_BACKGROUND, OnMotionBackground)
	ON_COMMAND(ID_RECOG_MATCH, OnRecogMatch)
	ON_COMMAND(ID_CODING_SHANFINO, OnCodingShanfino)
	ON_COMMAND(ID_DEGENERATION_INVERSE, OnDegenerationInverse)
	ON_COMMAND(ID_DEGENERATION_MOTION, OnDegenerationMotion)
	ON_COMMAND(ID_DEGENERATION_Winner, OnDEGENERATIONWinner)
	ON_COMMAND(ID_RESTORE_INVERSE, OnRestoreInverse)
	ON_COMMAND(ID_RESTORE_MOTION, OnRestoreMotion)
	ON_COMMAND(ID_RESTORE_WINNER, OnRestoreWinner)
	ON_COMMAND(ID_STREET_FRAMEWORK, OnStreetFramework)
	ON_COMMAND(ID_STREET_TRANSFORM, OnStreetTransform)
	ON_COMMAND(ID_TRACE, OnTrace)
	ON_COMMAND(ID_VIEW_BAYER, OnViewBayer)
	ON_COMMAND(ID_VIEW_FloydSteinberg, OnVIEWFloydSteinberg)
	ON_COMMAND(ID_OUTLINE, OnOutline)
	ON_COMMAND(ID_FRAME_RESTORE, OnFrameRestore)
	ON_COMMAND(ID_MOMENT, OnMoment)
	ON_COMMAND(ID_BARYCENTERMOMENT, OnBarycentermoment)
	ON_COMMAND(ID_ANALYSIS_HOLENUM, OnAnalysisHolenum)
	ON_COMMAND(ID_FREQ_DCT, OnFreqDct)
	ON_COMMAND(ID_FREQ_HOTELLING, OnFreqHotelling)
	ON_COMMAND(ID_FREQ_WALSH, OnFreqWalsh)
	ON_COMMAND(ID_CODING_ARITH, OnCodingArith)
	ON_COMMAND(ID_CODING_BITPLANE, OnCodingBitplane)
	ON_COMMAND(ID_CODING_HUFFMAN, OnCodingHuffman)
	ON_COMMAND(ID_CODING_LOADIMG, OnCodingLoadimg)
	ON_COMMAND(ID_CODING_WRITEIMG, OnCodingWriteimg)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView construction/destruction

CImageProcessingView::CImageProcessingView()
{
	// 為小波變換設(shè)置的參數(shù)
	// 臨時(shí)存放小波變換系數(shù)內(nèi)存
	m_pDbImage = NULL;	
	
	// 設(shè)置當(dāng)前層數(shù)
	m_nDWTCurDepth = 0;

	// 設(shè)置小波基緊支集長(zhǎng)度
	m_nSupp = 1;
}

CImageProcessingView::~CImageProcessingView()
{
	// 釋放已分配內(nèi)存
	if(m_pDbImage){
		delete[]m_pDbImage;
		m_pDbImage = NULL;
	}
}

BOOL CImageProcessingView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView drawing

void CImageProcessingView::OnDraw(CDC* pDC)
{
	CImageProcessingDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CSize sizeDibDisplay;		
	

	
	if(!pDoc->m_pDibInit->IsEmpty()){	
		sizeDibDisplay = pDoc->m_pDibInit->GetDimensions();
		pDoc->m_pDibInit->Draw(pDC,CPoint(0,0),sizeDibDisplay);	
	}	

}

void CImageProcessingView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CImageProcessingDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CSize sizeTotal = pDoc->m_pDibInit->GetDimensions();
	SetScrollSizes(MM_TEXT, sizeTotal);

	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

}

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView printing

BOOL CImageProcessingView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CImageProcessingView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CImageProcessingView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView diagnostics

#ifdef _DEBUG
void CImageProcessingView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CImageProcessingView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CImageProcessingDoc* CImageProcessingView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CImageProcessingDoc)));
	return (CImageProcessingDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView message handlers









/*************************************************************************
 *
 * \函數(shù)名稱:
 *   OnFft2d()
 *
 * \輸入?yún)?shù):
 *   無(wú)
 * 
 * \返回值:
 *   無(wú)
 *
 * \說(shuō)明:
 *   運(yùn)行二維快速傅立葉變換
 *
 *************************************************************************
 */
void CImageProcessingView::OnFft2d() 
{
	//圖象FFT變換

	// 更改光標(biāo)形狀
	BeginWaitCursor();
	
	// 循環(huán)控制變量
	int y;
	int x;
	
	// 獲得Doc類的指針
	CImageProcessingDoc * pDoc = (CImageProcessingDoc *)this->GetDocument();

	CDib * pDib = pDoc->m_pDibInit;

	// 獲得圖象的頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的離散傅立葉變換)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的離散傅立葉變換!", "系統(tǒng)提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}

	// 圖象的寬長(zhǎng)
	CSize sizeImage ;
	int nWidth ;
	int nHeight;

	// 獲得圖象的寬長(zhǎng)
	sizeImage = pDib->GetDimensions() ;
		
	nWidth = sizeImage.cx;
	nHeight= sizeImage.cy;

	// 臨時(shí)變量
	double	dTmpOne;
	double  dTmpTwo;
	
	// 傅立葉變換豎直方向點(diǎn)數(shù)
	int nTransHeight ;

	// 傅立葉變換水平方向點(diǎn)數(shù)
	int nTransWidth  ;	
	
	// 計(jì)算進(jìn)行傅立葉變換的點(diǎn)數(shù)	(2的整數(shù)次冪)
	dTmpOne = log(nWidth)/log(2);
	dTmpTwo = ceil(dTmpOne)		   ;
	dTmpTwo = pow(2,dTmpTwo)	   ;
	nTransWidth = (int) dTmpTwo	   ;
	
	// 計(jì)算進(jìn)行傅立葉變換的點(diǎn)數(shù) (2的整數(shù)次冪)
	dTmpOne = log(nHeight)/log(2);
	dTmpTwo = ceil(dTmpOne)		   ;
	dTmpTwo = pow(2,dTmpTwo)	   ;
	nTransHeight = (int) dTmpTwo   ;

	// 計(jì)算圖象數(shù)據(jù)存儲(chǔ)每行需要的字節(jié)數(shù)
	// BMP文件的每行數(shù)據(jù)存儲(chǔ)是DWORD對(duì)齊的
	int		nSaveWidth;
	nSaveWidth = ( (nWidth << 3) + 31)/32 * 4 ;

	// 指向圖象數(shù)據(jù)的指針
	LPBYTE lpImage ;
	lpImage = pDib->m_lpImage ;

	// 圖象象素值
	unsigned char unchValue;

	
	// 指向時(shí)域數(shù)據(jù)的指針
	complex<double> * pCTData ;

	// 指向頻域數(shù)據(jù)的指針
	complex<double> * pCFData ;

	// 分配內(nèi)存
	pCTData=new complex<double>[nTransWidth * nTransHeight];
	pCFData=new complex<double>[nTransWidth * nTransHeight];

	// 初始化
	// 圖象數(shù)據(jù)的寬和高不一定是2的整數(shù)次冪,所以pCTData
	// 有一部分?jǐn)?shù)據(jù)需要補(bǔ)0
	for(y=0; y<nTransHeight; y++)
	{
		for(x=0; x<nTransWidth; x++)
		{
			pCTData[y*nTransWidth + x]=complex<double>(0,0);
		}
	}

	// 把圖象數(shù)據(jù)傳給pCTData
	for(y=0; y<nHeight; y++)
	{
		for(x=0; x<nWidth; x++)
		{
			unchValue = lpImage[y*nSaveWidth +x];
			pCTData[y*nTransWidth + x]=complex<double>(unchValue,0);
		}
	}

	// 傅立葉正變換
	DIBFFT_2D(pCTData, nWidth, nHeight, pCFData) ;
	
	// 臨時(shí)變量
	double dTmp;

	for(y=0; y<nHeight; y++)
	{
		for(x=0; x<nWidth; x++)
		{
			dTmp = pCFData[y * nTransWidth + x].real() 
				   * pCFData[y * nTransWidth + x].real()
				 + pCFData[y * nTransWidth + x].imag() 
				   * pCFData[y * nTransWidth + x].imag();
			
			dTmp = sqrt(dTmp) ;

			// 為了顯示,需要對(duì)幅度的大小進(jìn)行伸縮
			dTmp /= 100        ;

			// 限制圖象數(shù)據(jù)的大小
			dTmp = min(dTmp, 255) ;

			lpImage[y*nSaveWidth +x] = (unsigned char)(int)dTmp;
		}
	}

	// 為了在屏幕上顯示,我們把幅度值大的部分用黑色顯示
	for(y=0; y<nHeight; y++)
	{
		for(x=0; x<nWidth; x++)
		{
			lpImage[y*nSaveWidth +x] = 255 - lpImage[y*nSaveWidth +x];
		}
	}
	
	// 刷新屏幕
	Invalidate();

	// 釋放內(nèi)存
	delete pCTData;
	delete pCFData;
	pCTData = NULL;
	pCFData = NULL;

	// 設(shè)置臟標(biāo)記
	pDoc->SetModifiedFlag(TRUE);
		
	// 更新視圖
	pDoc->UpdateAllViews(NULL);

	//  恢復(fù)光標(biāo)形狀
	EndWaitCursor();
}


/*************************************************************************
 *
 * \函數(shù)名稱:
 *   OnDft2d()
 *
 * \輸入?yún)?shù):
 *   無(wú)
 * 
 * \返回值:
 *   無(wú)
 *
 * \說(shuō)明:
 *   運(yùn)行二維傅立葉變換
 *
 *************************************************************************
 */
void CImageProcessingView::OnDft2d() 
{
	//圖象離散傅立葉變換
	
	//提示用戶,直接進(jìn)行離散傅立葉變換的時(shí)間很長(zhǎng)
	MessageBox("沒有使用FFT,時(shí)間可能很長(zhǎng)!", "作者提示" ,
			MB_ICONINFORMATION | MB_OK);
	
	//更改光標(biāo)形狀
	BeginWaitCursor(); 

	// 循環(huán)控制變量
	int y;
	int x;
	
	CImageProcessingDoc * pDoc = (CImageProcessingDoc *)this->GetDocument();
	CDib * pDib = pDoc->m_pDibInit;

	// 獲得圖象的頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的離散傅立葉變換)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的離散傅立葉變換!", "系統(tǒng)提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}

	//圖象的長(zhǎng)寬大小
	CSize sizeImage		= pDib->GetDimensions();
	int nWidth			= sizeImage.cx		;
	int nHeight			= sizeImage.cy		;

	// 計(jì)算圖象數(shù)據(jù)存儲(chǔ)每行需要的字節(jié)數(shù)
	// BMP文件的每行數(shù)據(jù)存儲(chǔ)是DWORD對(duì)齊的
	int		nSaveWidth;
	nSaveWidth = ( (nWidth << 3) + 31)/32 * 4 ;

	// 指向圖象數(shù)據(jù)的指針
	LPBYTE lpImage ;
	lpImage = pDib->m_lpImage ;

	double * pTrRstRpart  = new double [nWidth*nHeight];
	double * pTrRstIpart  = new double [nWidth*nHeight];	
	
	::DIBDFT_2D(pDib, pTrRstRpart,pTrRstIpart);

	// 臨時(shí)變量
	double dTmp;

	for(y=0; y<nHeight; y++)
	{
		for(x=0; x<nWidth; x++)
		{
			dTmp = pTrRstRpart[y*nWidth + x] * pTrRstRpart[y*nWidth + x]
				 + pTrRstIpart[y*nWidth + x] * pTrRstIpart[y*nWidth + x];
			
			dTmp = sqrt(dTmp) ;

			// 為了顯示,需要對(duì)幅度的大小進(jìn)行伸縮
			dTmp /= 100        ;

			// 限制圖象數(shù)據(jù)的大小
			dTmp = min(dTmp, 255) ;

			lpImage[y*nSaveWidth +x] = (unsigned char)(int)dTmp;
		}
	}

	// 為了在屏幕上顯示,我們把幅度值大的部分用黑色顯示
	for(y=0; y<nHeight; y++)
	{
		for(x=0; x<nWidth; x++)
		{
			lpImage[y*nSaveWidth +x] = 255 - lpImage[y*nSaveWidth +x];
		}
	}

	// 釋放內(nèi)存
	delete pTrRstRpart;
	pTrRstRpart=NULL  ;
	
	delete pTrRstIpart;
	pTrRstIpart=NULL  ;

	// 設(shè)置臟標(biāo)記
	pDoc->SetModifiedFlag(TRUE);
		
	// 更新視圖
	pDoc->UpdateAllViews(NULL);

	// 恢復(fù)光標(biāo)形狀
	EndWaitCursor(); 
	
	// 刷新屏幕
	Invalidate();
}

void CImageProcessingView::OnFreqDct() 
{
	// 圖象的離散余弦變換
		
	// 更改光標(biāo)形狀
	BeginWaitCursor();

	// 獲取文檔
	CImageProcessingDoc* pDoc = GetDocument();

	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;

	// 獲得圖象的頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的離散余弦變換)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的離散余弦變換!", "系統(tǒng)提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}
	
	::DIBDct(pDib);
	
	// 設(shè)置臟標(biāo)記
	pDoc->SetModifiedFlag(TRUE);
		
	// 更新視圖
	pDoc->UpdateAllViews(NULL);

    // 恢復(fù)光標(biāo)
	EndWaitCursor();
	
}

void CImageProcessingView::OnFreqHotelling() 
{
	// 圖象霍特林變換
	
	// 更改光標(biāo)形狀
	BeginWaitCursor();

	// 獲取文檔
	CImageProcessingDoc* pDoc = GetDocument();

	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;

	// 獲得圖象的頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的離散霍特林變換)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的離散霍特林變換!", "系統(tǒng)提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}

	//  圖象的霍特林變換
	DIBHOTELLING(pDib);
	
	// 設(shè)置臟標(biāo)記
	pDoc->SetModifiedFlag(TRUE);
		
	// 更新視圖
	pDoc->UpdateAllViews(NULL);

    // 恢復(fù)光標(biāo)
	EndWaitCursor();
	
}

void CImageProcessingView::OnFreqWalsh() 
{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产美女搞黄色| 麻豆成人av在线| 日韩欧美国产小视频| 99这里只有久久精品视频| 美国欧美日韩国产在线播放| 亚洲日穴在线视频| 国产欧美精品一区二区三区四区| 欧美色电影在线| 99久久免费精品| 国产精品中文欧美| 美女视频黄免费的久久| 一区二区三区四区在线免费观看 | 久久91精品国产91久久小草| 自拍偷拍国产精品| 久久精品一区二区| 欧美mv日韩mv亚洲| 777午夜精品视频在线播放| 色偷偷88欧美精品久久久| 国产精品亚洲一区二区三区在线| 日韩精品一卡二卡三卡四卡无卡| 亚洲欧洲性图库| 中文无字幕一区二区三区| 日韩欧美激情在线| 日韩欧美一区电影| 555夜色666亚洲国产免| 精品视频一区二区不卡| eeuss鲁片一区二区三区| 国产精品77777| 国产一区不卡在线| 韩国精品一区二区| 激情五月激情综合网| 久久精品国内一区二区三区| 青青青伊人色综合久久| 午夜精品一区二区三区免费视频 | 一区二区三区欧美亚洲| 国产精品久久久久久久久晋中 | 一区二区三区四区精品在线视频| 国产精品三级电影| 成人免费在线播放视频| 国产精品乱码人人做人人爱| 国产欧美一二三区| 中文字幕制服丝袜成人av| 国产精品久久久久久久蜜臀 | 久久狠狠亚洲综合| 国内一区二区视频| 国产大片一区二区| 从欧美一区二区三区| 97久久超碰国产精品电影| 色综合欧美在线| 欧美日韩在线不卡| 日韩一级在线观看| 国产日产欧美一区二区视频| 国产日韩精品一区二区浪潮av| 国产精品麻豆久久久| 亚洲日本va午夜在线影院| 亚洲动漫第一页| 秋霞午夜鲁丝一区二区老狼| 国内久久婷婷综合| www.亚洲国产| 欧美日韩综合色| 日韩精品中文字幕在线不卡尤物| 久久综合九色欧美综合狠狠 | 久久精品在线免费观看| 中文字幕不卡在线观看| 亚洲黄色录像片| 麻豆精品久久精品色综合| 国产乱淫av一区二区三区| 99视频一区二区| 欧美日韩精品专区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品视频麻豆| 亚洲高清三级视频| 国产一区二区三区四| 色哟哟在线观看一区二区三区| 欧美情侣在线播放| 国产午夜精品一区二区| 亚洲资源在线观看| 国产一区二区三区四| 色屁屁一区二区| 日韩欧美一区在线| 亚洲男人天堂av网| 国模少妇一区二区三区| 色www精品视频在线观看| 精品久久国产老人久久综合| 成人欧美一区二区三区在线播放| 日韩av电影天堂| 91在线高清观看| 日韩精品一区二区三区视频| 亚洲人吸女人奶水| 国产综合久久久久久鬼色| 色哟哟国产精品| 精品福利av导航| 亚洲成人激情社区| 成人黄色777网| 日韩精品一区二区在线| 亚洲午夜精品网| 成人一级片网址| 日韩美女天天操| 亚洲成人av在线电影| 不卡电影一区二区三区| 日韩欧美高清在线| 亚洲一区二区三区三| 成人免费看黄yyy456| 日韩免费视频一区| 亚洲国产cao| 91黄色免费看| 国产精品对白交换视频| 激情亚洲综合在线| 欧美一区二区三区色| 亚洲综合在线五月| 99国产一区二区三精品乱码| 久久久精品综合| 久久国产精品色婷婷| 欧美另类z0zxhd电影| 亚洲激情图片一区| 91丨porny丨在线| 国产精品久久久久久久久动漫| 国产一区二区电影| 精品99一区二区三区| 奇米精品一区二区三区在线观看 | 国产一区二区三区精品欧美日韩一区二区三区| 在线视频一区二区三| 中文字幕日韩欧美一区二区三区| 国产精品亚洲午夜一区二区三区| 日韩欧美在线一区二区三区| 丝袜诱惑亚洲看片| 欧美美女黄视频| 亚洲成人av在线电影| 欧美精品tushy高清| 亚洲国产婷婷综合在线精品| 色老汉一区二区三区| 亚洲制服丝袜av| 欧美偷拍一区二区| 亚洲午夜久久久久久久久久久| 91成人在线精品| 亚洲一区二区欧美| 欧美日韩一区二区不卡| 天堂在线一区二区| 在线成人午夜影院| 另类小说一区二区三区| 精品国产精品网麻豆系列| 国产一区二区美女诱惑| 久久久青草青青国产亚洲免观| 国产精品99久久久久久似苏梦涵 | www亚洲一区| 高清免费成人av| 亚洲欧美日韩系列| 欧美亚州韩日在线看免费版国语版 | 91精品一区二区三区在线观看| 日日夜夜一区二区| 日韩欧美国产综合一区| 国产一区91精品张津瑜| 中文字幕制服丝袜成人av| 91高清视频在线| 日韩成人av影视| 国产亚洲短视频| 色综合久久99| 日本欧美一区二区三区乱码 | 亚洲视频在线一区二区| 欧美日韩在线电影| 久久99久久久久| 日本一区二区电影| 欧洲av一区二区嗯嗯嗯啊| 乱中年女人伦av一区二区| 中文字幕第一页久久| 欧美体内she精视频| 久久国产剧场电影| 国产精品成人免费精品自在线观看| 欧美亚洲一区二区三区四区| 免费在线看一区| 亚洲欧洲av另类| 欧美福利视频导航| 成人国产免费视频| 五月婷婷激情综合| 国产精品女同互慰在线看| 欧美怡红院视频| 国产精品一区2区| 亚洲主播在线播放| 国产午夜亚洲精品理论片色戒 | 精品日韩99亚洲| 91亚洲精华国产精华精华液| 日韩av在线播放中文字幕| 中文字幕亚洲视频| 精品欧美一区二区在线观看| 91亚洲精品久久久蜜桃网站| 久久激情五月激情| 一个色综合av| 中文字幕免费不卡| 日韩一区二区精品| 欧洲精品中文字幕| 懂色av一区二区三区免费看| 午夜成人在线视频| 自拍偷拍亚洲欧美日韩| 精品国产91九色蝌蚪| 欧美日韩精品系列| 91麻豆国产精品久久| 高清不卡一二三区| 久久99久久久久| 日韩国产成人精品| 一区2区3区在线看|