精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用OpenCV進(jìn)行高動態(tài)范圍(HDR)成像

開發(fā) 后端
在本教程中,我們將學(xué)習(xí)如何使用由不同曝光設(shè)置拍攝的多張圖像創(chuàng)建高動態(tài)范圍(HDR)圖像。 我們將以 C++ 和 Python 兩種形式分享代碼。

[[233297]]

在本教程中,我們將學(xué)習(xí)如何使用由不同曝光設(shè)置拍攝的多張圖像創(chuàng)建高動態(tài)范圍High Dynamic Range(HDR)圖像。 我們將以 C++ 和 Python 兩種形式分享代碼。 

什么是高動態(tài)范圍成像?

大多數(shù)數(shù)碼相機(jī)和顯示器都是按照 24 位矩陣捕獲或者顯示彩色圖像。 每個顏色通道有 8 位,因此每個通道的像素值在 0-255 范圍內(nèi)。 換句話說,普通的相機(jī)或者顯示器的動態(tài)范圍是有限的。

但是,我們周圍世界動態(tài)范圍極大。 在車庫內(nèi)關(guān)燈就會變黑,直接看著太陽就會變得非常亮。 即使不考慮這些極端,在日常情況下,8 位的通道勉強(qiáng)可以捕捉到現(xiàn)場場景。 因此,相機(jī)會嘗試去評估光照并且自動設(shè)置曝光,這樣圖像的最關(guān)注區(qū)域就會有良好的動態(tài)范圍,并且太暗和太亮的部分會被相應(yīng)截取為 0 和 255。

在下圖中,左側(cè)的圖像是正常曝光的圖像。 請注意,由于相機(jī)決定使用拍攝主體(我的兒子)的設(shè)置,所以背景中的天空已經(jīng)完全流失了,但是明亮的天空也因此被刷掉了。 右側(cè)的圖像是由 iPhone 生成的HDR圖像。

High Dynamic Range (HDR)

High Dynamic Range (HDR)

iPhone 是如何拍攝 HDR 圖像的呢? 它實際上采用三種不同的曝光度拍攝了 3 張圖像,3 張圖像拍攝非常迅速,在 3 張圖像之間幾乎沒有產(chǎn)生位移。然后組合三幅圖像來產(chǎn)生 HDR 圖像。 我們將在下一節(jié)看到一些細(xì)節(jié)。

將在不同曝光設(shè)置下獲取的相同場景的不同圖像組合的過程稱為高動態(tài)范圍(HDR)成像。 

高動態(tài)范圍(HDR)成像是如何工作的?

在本節(jié)中,我們來看下使用 OpenCV 創(chuàng)建 HDR 圖像的步驟。

要想輕松學(xué)習(xí)本教程,請點擊此處下載 C++ 和 Python 代碼還有圖像。 如果您有興趣了解更多關(guān)于人工智能,計算機(jī)視覺和機(jī)器學(xué)習(xí)的信息,請訂閱我們的電子雜志。 

第 1 步:捕獲不同曝光度的多張圖像

當(dāng)我們使用相機(jī)拍照時,每個通道只有 8 位來表示場景的動態(tài)范圍(亮度范圍)。 但是,通過改變快門速度,我們可以在不同的曝光條件下拍攝多個場景圖像。 大多數(shù)單反相機(jī)(SLR)有一個功能稱為自動包圍式曝光Auto Exposure Bracketing(AEB),只需按一下按鈕,我們就可以在不同的曝光下拍攝多張照片。 如果你正在使用 iPhone,你可以使用這個自動包圍式 HDR 應(yīng)用程序,如果你是一個 Android 用戶,你可以嘗試一個更好的相機(jī)應(yīng)用程序

場景沒有變化時,在相機(jī)上使用自動包圍式曝光或在手機(jī)上使用自動包圍式應(yīng)用程序,我們可以一張接一張地快速拍攝多張照片。 當(dāng)我們在 iPhone 中使用 HDR 模式時,會拍攝三張照片。

  1. 曝光不足的圖像:該圖像比正確曝光的圖像更暗。 目標(biāo)是捕捉非常明亮的圖像部分。
  2. 正確曝光的圖像:這是相機(jī)將根據(jù)其估計的照明拍攝的常規(guī)圖像。
  3. 曝光過度的圖像:該圖像比正確曝光的圖像更亮。 目標(biāo)是拍攝非常黑暗的圖像部分。

但是,如果場景的動態(tài)范圍很大,我們可以拍攝三張以上的圖片來合成 HDR 圖像。 在本教程中,我們將使用曝光時間為1/30 秒,0.25 秒,2.5 秒和 15 秒的 4 張圖像。 縮略圖如下所示。

Auto Exposure Bracketed  HDR image sequence

Auto Exposure Bracketed HDR image sequence

單反相機(jī)或手機(jī)的曝光時間和其他設(shè)置的信息通常存儲在 JPEG 文件的 EXIF 元數(shù)據(jù)中。 查看此鏈接可在 Windows 和 Mac 中查看存儲在 JPEG 文件中的 EXIF 元數(shù)據(jù)。 或者,您可以使用我最喜歡的名為 EXIFTOOL 的查看 EXIF 的命令行工具。

我們先從讀取分配到不同曝光時間的圖像開始。

C++

  1. void readImagesAndTimes(vector<Mat> &images, vector<float> &times)
  2. {
  3.  
  4. int numImages = 4;
  5.  
  6. // 曝光時間列表
  7. static const float timesArray[] = {1/30.0f,0.25,2.5,15.0};
  8. times.assign(timesArray, timesArray + numImages);
  9.  
  10. // 圖像文件名稱列表
  11. static const char* filenames[] = {"img_0.033.jpg", "img_0.25.jpg", "img_2.5.jpg", "img_15.jpg"};
  12. for(int i=0; i < numImages; i++)
  13. {
  14. Mat im = imread(filenames[i]);
  15. images.push_back(im);
  16. }
  17.  
  18. }

Python

  1. def readImagesAndTimes():
  2. # 曝光時間列表
  3. times = np.array([ 1/30.0, 0.25, 2.5, 15.0 ], dtype=np.float32)
  4.  
  5. # 圖像文件名稱列表
  6. filenames = ["img_0.033.jpg", "img_0.25.jpg", "img_2.5.jpg", "img_15.jpg"]
  7. images = []
  8. for filename in filenames:
  9. im = cv2.imread(filename)
  10. images.append(im)
  11.  
  12. return images, times 

第 2 步:對齊圖像

合成 HDR 圖像時使用的圖像如果未對齊可能會導(dǎo)致嚴(yán)重的偽影。 在下圖中,左側(cè)的圖像是使用未對齊的圖像組成的 HDR 圖像,右側(cè)的圖像是使用對齊的圖像的圖像。 通過放大圖像的一部分(使用紅色圓圈顯示的)我們會在左側(cè)圖像中看到嚴(yán)重的鬼影。

Misalignment problem in HDR

Misalignment problem in HDR

在拍攝照片制作 HDR 圖像時,專業(yè)攝影師自然是將相機(jī)安裝在三腳架上。 他們還使用稱為鏡像鎖定功能來減少額外的振動。 即使如此,圖像可能仍然沒有完美對齊,因為沒有辦法保證無振動的環(huán)境。 使用手持相機(jī)或手機(jī)拍攝圖像時,對齊問題會變得更糟。

幸運的是,OpenCV 提供了一種簡單的方法,使用 AlignMTB 對齊這些圖像。 該算法將所有圖像轉(zhuǎn)換為中值閾值位圖median threshold bitmaps(MTB)。 圖像的 MTB 生成方式為將比中值亮度的更亮的分配為 1,其余為 0。 MTB 不隨曝光時間的改變而改變。 因此不需要我們指定曝光時間就可以對齊 MTB。

基于 MTB 的對齊方式的代碼如下。

C++

  1. // 對齊輸入圖像
  2. Ptr<AlignMTB> alignMTB = createAlignMTB();
  3. alignMTB->process(images, images);

Python

  1. # 對齊輸入圖像
  2. alignMTB = cv2.createAlignMTB()
  3. alignMTB.process(images, images) 

第 3 步:提取相機(jī)響應(yīng)函數(shù)

典型相機(jī)的響應(yīng)與場景亮度不成線性關(guān)系。 那是什么意思呢? 假設(shè)有兩個物體由同一個相機(jī)拍攝,在現(xiàn)實世界中其中一個物體是另一個物體亮度的兩倍。 當(dāng)您測量照片中兩個物體的像素亮度時,較亮物體的像素值將不會是較暗物體的兩倍。 在不估計相機(jī)響應(yīng)函數(shù)Camera Response Function(CRF)的情況下,我們將無法將圖像合并到一個HDR圖像中。

將多個曝光圖像合并為 HDR 圖像意味著什么?

只考慮圖像的某個位置 (x,y) 一個像素。 如果 CRF 是線性的,則像素值將直接與曝光時間成比例,除非像素在特定圖像中太暗(即接近 0)或太亮(即接近 255)。 我們可以過濾出這些不好的像素(太暗或太亮),并且將像素值除以曝光時間來估計像素的亮度,然后在像素不差的(太暗或太亮)所有圖像上對亮度值取平均。我們可以對所有像素進(jìn)行這樣的處理,并通過對“好”像素進(jìn)行平均來獲得所有像素的單張圖像。

但是 CRF 不是線性的, 我們需要評估 CRF 把圖像強(qiáng)度變成線性,然后才能合并或者平均它們。

好消息是,如果我們知道每個圖像的曝光時間,則可以從圖像估計 CRF。 與計算機(jī)視覺中的許多問題一樣,找到 CRF 的問題本質(zhì)是一個最優(yōu)解問題,其目標(biāo)是使由數(shù)據(jù)項和平滑項組成的目標(biāo)函數(shù)最小化。 這些問題通常會降維到線性最小二乘問題,這些問題可以使用奇異值分解Singular Value Decomposition(SVD)來解決,奇異值分解是所有線性代數(shù)包的一部分。 CRF 提取算法的細(xì)節(jié)在從照片提取高動態(tài)范圍輻射圖這篇論文中可以找到。

使用 OpenCV 的 CalibrateDebevec 或者 CalibrateRobertson 就可以用 2 行代碼找到 CRF。本篇教程中我們使用 CalibrateDebevec

C++

  1. // 獲取圖像響應(yīng)函數(shù) (CRF)
  2. Mat responseDebevec;
  3. Ptr<CalibrateDebevec> calibrateDebevec = createCalibrateDebevec();
  4. calibrateDebevec->process(images, responseDebevec, times);
  5.  

Python

  1. # 獲取圖像響應(yīng)函數(shù) (CRF)
  2. calibrateDebevec = cv2.createCalibrateDebevec()
  3. responseDebevec = calibrateDebevec.process(images, times)

下圖顯示了使用紅綠藍(lán)通道的圖像提取的 CRF。

Camera Response Function

Camera Response Function

 

第 4 步:合并圖像

一旦 CRF 評估結(jié)束,我們可以使用 MergeDebevec 將曝光圖像合并成一個HDR圖像。 C++ 和 Python 代碼如下所示。

C++

  1. // 將圖像合并為HDR線性圖像
  2. Mat hdrDebevec;
  3. Ptr<MergeDebevec> mergeDebevec = createMergeDebevec();
  4. mergeDebevec->process(images, hdrDebevec, times, responseDebevec);
  5. // 保存圖像
  6. imwrite("hdrDebevec.hdr", hdrDebevec);

Python

  1. # 將圖像合并為HDR線性圖像
  2. mergeDebevec = cv2.createMergeDebevec()
  3. hdrDebevec = mergeDebevec.process(images, times, responseDebevec)
  4. # 保存圖像
  5. cv2.imwrite("hdrDebevec.hdr", hdrDebevec)

上面保存的 HDR 圖像可以在 Photoshop 中加載并進(jìn)行色調(diào)映射。示例圖像如下所示。

HDR Photoshop 色調(diào)映射

HDR Photoshop 色調(diào)映射

 

第 5 步:色調(diào)映射

現(xiàn)在我們已經(jīng)將我們的曝光圖像合并到一個 HDR 圖像中。 你能猜出這個圖像的最小和最大像素值嗎? 對于黑色條件,最小值顯然為 0。 理論最大值是什么? 無限大! 在實踐中,不同情況下的最大值是不同的。 如果場景包含非常明亮的光源,那么最大值就會非常大。

盡管我們已經(jīng)使用多個圖像恢復(fù)了相對亮度信息,但是我們現(xiàn)在又面臨了新的挑戰(zhàn):將這些信息保存為 24 位圖像用于顯示。

將高動態(tài)范圍(HDR)圖像轉(zhuǎn)換為 8 位單通道圖像的過程稱為色調(diào)映射。這個過程的同時還需要保留盡可能多的細(xì)節(jié)。

有幾種色調(diào)映射算法。 OpenCV 實現(xiàn)了其中的四個。 要記住的是沒有一個絕對正確的方法來做色調(diào)映射。 通常,我們希望在色調(diào)映射圖像中看到比任何一個曝光圖像更多的細(xì)節(jié)。 有時色調(diào)映射的目標(biāo)是產(chǎn)生逼真的圖像,而且往往是產(chǎn)生超現(xiàn)實圖像的目標(biāo)。 在 OpenCV 中實現(xiàn)的算法傾向于產(chǎn)生現(xiàn)實的并不那么生動的結(jié)果。

我們來看看各種選項。 以下列出了不同色調(diào)映射算法的一些常見參數(shù)。

  1. 伽馬gamma:該參數(shù)通過應(yīng)用伽馬校正來壓縮動態(tài)范圍。 當(dāng)伽馬等于 1 時,不應(yīng)用修正。 小于 1 的伽瑪會使圖像變暗,而大于 1 的伽馬會使圖像變亮。
  2. 飽和度saturation:該參數(shù)用于增加或減少飽和度。 飽和度高時,色彩更豐富,更濃。 飽和度值接近零,使顏色逐漸消失為灰度。
  3. 對比度contrast:控制輸出圖像的對比度(即 log(maxPixelValue/minPixelValue))。

讓我們來探索 OpenCV 中可用的四種色調(diào)映射算法。 

Drago 色調(diào)映射

Drago 色調(diào)映射的參數(shù)如下所示:

  1. createTonemapDrago
  2. (
  3. float gamma = 1.0f,
  4. float saturation = 1.0f,
  5. float bias = 0.85f
  6. )

這里,bias[0, 1] 范圍內(nèi)偏差函數(shù)的值。 從 0.7 到 0.9 的值通常效果較好。 默認(rèn)值是 0.85。 有關(guān)更多技術(shù)細(xì)節(jié),請參閱這篇論文

C++ 和 Python 代碼如下所示。 參數(shù)是通過反復(fù)試驗獲得的。 最后的結(jié)果乘以 3 只是因為它給出了最令人滿意的結(jié)果。

C++

  1. // 使用Drago色調(diào)映射算法獲得24位彩色圖像
  2. Mat ldrDrago;
  3. Ptr<TonemapDrago> tonemapDrago = createTonemapDrago(1.0, 0.7);
  4. tonemapDrago->process(hdrDebevec, ldrDrago);
  5. ldrDrago = 3 * ldrDrago;
  6. imwrite("ldr-Drago.jpg", ldrDrago * 255);

Python

  1. # 使用Drago色調(diào)映射算法獲得24位彩色圖像
  2. tonemapDrago = cv2.createTonemapDrago(1.0, 0.7)
  3. ldrDrago = tonemapDrago.process(hdrDebevec)
  4. ldrDrago = 3 * ldrDrago
  5. cv2.imwrite("ldr-Drago.jpg", ldrDrago * 255)

結(jié)果如下:

使用Drago算法的HDR色調(diào)映射

使用Drago算法的HDR色調(diào)映射

 

Durand 色調(diào)映射

Durand 色調(diào)映射的參數(shù)如下所示:

  1. createTonemapDurand
  2. (
  3. float gamma = 1.0f,
  4. float contrast = 4.0f,
  5. float saturation = 1.0f,
  6. float sigma_space = 2.0f,
  7. float sigma_color = 2.0f
  8. );

該算法基于將圖像分解為基礎(chǔ)層和細(xì)節(jié)層。 使用稱為雙邊濾波器的邊緣保留濾波器來獲得基本層。 sigma_spacesigma_color 是雙邊濾波器的參數(shù),分別控制空間域和彩色域中的平滑量。

有關(guān)更多詳細(xì)信息,請查看這篇論文

C++

  1. // 使用Durand色調(diào)映射算法獲得24位彩色圖像
  2. Mat ldrDurand;
  3. Ptr<TonemapDurand> tonemapDurand = createTonemapDurand(1.5,4,1.0,1,1);
  4. tonemapDurand->process(hdrDebevec, ldrDurand);
  5. ldrDurand = 3 * ldrDurand;
  6. imwrite("ldr-Durand.jpg", ldrDurand * 255);

Python

  1. # 使用Durand色調(diào)映射算法獲得24位彩色圖像
  2. tonemapDurand = cv2.createTonemapDurand(1.5,4,1.0,1,1)
  3. ldrDurand = tonemapDurand.process(hdrDebevec)
  4. ldrDurand = 3 * ldrDurand
  5. cv2.imwrite("ldr-Durand.jpg", ldrDurand * 255)

結(jié)果如下:

使用Durand算法的HDR色調(diào)映射

使用Durand算法的HDR色調(diào)映射

 

Reinhard 色調(diào)映射

  1.  
  2. createTonemapReinhard
  3. (
  4. float gamma = 1.0f,
  5. float intensity = 0.0f,
  6. float light_adapt = 1.0f,
  7. float color_adapt = 0.0f
  8. )

intensity 參數(shù)應(yīng)在 [-8, 8] 范圍內(nèi)。 更高的亮度值會產(chǎn)生更明亮的結(jié)果。 light_adapt 控制燈光,范圍為 [0, 1]。 值 1 表示僅基于像素值的自適應(yīng),而值 0 表示全局自適應(yīng)。 中間值可以用于兩者的加權(quán)組合。 參數(shù) color_adapt 控制色彩,范圍為 [0, 1]。 如果值被設(shè)置為 1,則通道被獨立處理,如果該值被設(shè)置為 0,則每個通道的適應(yīng)級別相同。中間值可以用于兩者的加權(quán)組合。

有關(guān)更多詳細(xì)信息,請查看這篇論文

C++

  1. // 使用Reinhard色調(diào)映射算法獲得24位彩色圖像
  2. Mat ldrReinhard;
  3. Ptr<TonemapReinhard> tonemapReinhard = createTonemapReinhard(1.5, 0,0,0);
  4. tonemapReinhard->process(hdrDebevec, ldrReinhard);
  5. imwrite("ldr-Reinhard.jpg", ldrReinhard * 255);

Python

  1. # 使用Reinhard色調(diào)映射算法獲得24位彩色圖像
  2. tonemapReinhard = cv2.createTonemapReinhard(1.5, 0,0,0)
  3. ldrReinhard = tonemapReinhard.process(hdrDebevec)
  4. cv2.imwrite("ldr-Reinhard.jpg", ldrReinhard * 255)

結(jié)果如下:

使用Reinhard算法的HDR色調(diào)映射

使用Reinhard算法的HDR色調(diào)映射

 

Mantiuk 色調(diào)映射

  1. createTonemapMantiuk
  2. (
  3. float gamma = 1.0f,
  4. float scale = 0.7f,
  5. float saturation = 1.0f
  6. )

參數(shù) scale 是對比度比例因子。 從 0.7 到 0.9 的值通常效果較好

有關(guān)更多詳細(xì)信息,請查看這篇論文

C++

  1. // 使用Mantiuk色調(diào)映射算法獲得24位彩色圖像
  2. Mat ldrMantiuk;
  3. Ptr<TonemapMantiuk> tonemapMantiuk = createTonemapMantiuk(2.2,0.85, 1.2);
  4. tonemapMantiuk->process(hdrDebevec, ldrMantiuk);
  5. ldrMantiuk = 3 * ldrMantiuk;
  6. imwrite("ldr-Mantiuk.jpg", ldrMantiuk * 255);

Python

  1. # 使用Mantiuk色調(diào)映射算法獲得24位彩色圖像
  2. tonemapMantiuk = cv2.createTonemapMantiuk(2.2,0.85, 1.2)
  3. ldrMantiuk = tonemapMantiuk.process(hdrDebevec)
  4. ldrMantiuk = 3 * ldrMantiuk
  5. cv2.imwrite("ldr-Mantiuk.jpg", ldrMantiuk * 255)

結(jié)果如下:

使用Mantiuk算法的HDR色調(diào)映射

使用Mantiuk算法的HDR色調(diào)映射

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2022-12-15 21:59:56

AIVR場景

2024-12-10 15:50:00

AI生成

2021-06-25 12:00:20

快手HDR

2021-06-27 17:42:35

全鏈路

2017-06-09 15:30:26

HDR

2017-09-25 15:43:24

圖像模板Python+Open

2024-01-09 08:20:23

OpenCV二值化灰度化

2024-12-31 12:30:00

OpenCV計算機(jī)視覺

2020-10-15 12:00:01

Python 開發(fā)編程語言

2021-02-22 13:44:41

開發(fā)Python金融

2023-04-12 08:00:00

人工智能ChatGPTPython

2018-04-16 09:42:25

編程顏色ncurses

2025-01-27 11:52:23

2014-12-25 10:15:37

DockerJava

2010-03-25 16:31:55

Python代碼

2022-11-02 14:45:24

Python數(shù)據(jù)分析工具

2009-08-21 16:44:01

2010-06-03 10:04:26

Hadoop安裝

2022-05-06 19:53:33

Java serve
點贊
收藏

51CTO技術(shù)棧公眾號

国模精品一区| 草草视频在线观看| 激情欧美一区二区| 久久久久免费视频| 女~淫辱の触手3d动漫| 在线一区视频观看| 一区二区久久久| 麻豆亚洲一区| 99久久亚洲精品日本无码| 亚洲精品激情| 日日狠狠久久偷偷四色综合免费 | 一区二区日本视频| 最近更新的2019中文字幕| 韩国一区二区三区四区| 免费在线观看一区| 午夜成人免费视频| www.午夜色| 亚洲av成人无码网天堂| 国产一区久久久| 日本电影亚洲天堂| 欧美日韩精品一区二区三区视频播放| 偷拍亚洲精品| 日韩三级电影网址| 天天操,天天操| 在线女人免费视频| 亚洲狠狠爱一区二区三区| 午夜欧美性电影| 深夜福利视频一区| 精品一区免费av| 国产成人拍精品视频午夜网站| 久久久久久久久久综合| 成人三级视频| 亚洲人成网在线播放| 久久久国产精品无码| 久久国产精品美女| 欧美日韩精品一二三区| 无码无遮挡又大又爽又黄的视频| 日本电影在线观看| 亚洲欧美国产毛片在线| 亚洲欧美综合一区| av网站在线播放| 久久久久高清精品| 久久婷婷人人澡人人喊人人爽| 精品人妻一区二区三区浪潮在线 | 国产精品福利在线观看播放| 亚洲欧美精品suv| 精品国产一区在线| 成人资源在线播放| 欧美xxxxxxxx| 免费观看黄网站| www一区二区三区| 欧美福利一区二区| 亚洲精品手机在线观看| 欧美一级网址| 欧美巨大另类极品videosbest| 国产一区视频免费观看| 成人黄色免费短视频| 色偷偷成人一区二区三区91| 成人在线激情网| 国模视频一区| 欧美色综合网站| 天天视频天天爽| 日韩成人在线一区| 欧美一区二区三区在线| 日韩精品xxx| 大奶在线精品| 欧美岛国在线观看| 人妻av一区二区| 日韩有码一区| 尤物tv国产一区| 国产又粗又长又硬| 中文字幕免费一区二区三区| 欧美激情一区二区三级高清视频| 九热这里只有精品| 麻豆精品网站| 国产精品永久免费| 99在线精品视频免费观看软件| 粉嫩高潮美女一区二区三区| 精品久久久久久乱码天堂| 天堂av电影在线观看| 国产网站一区二区三区| 在线视频精品一区| 国产三线在线| 91国产精品成人| 国产一区二区在线观看免费视频| 久久69av| 亚洲天堂网站在线观看视频| 国产小视频你懂的| 黄色亚洲在线| 国产成人一区二区| 不卡视频在线播放| 久久蜜桃av一区精品变态类天堂| 亚洲国产综合自拍| www欧美xxxx| 欧美亚洲动漫制服丝袜| 一区二区三区四区影院| 国产成人黄色| 欧美日韩国产二区| 成人一级免费视频| 高清在线观看日韩| 日韩精品第一页| 男女在线观看视频| 欧美三级午夜理伦三级中视频| 免费观看黄网站| 国内精品久久久久久久影视简单| 成年无码av片在线| 天堂网免费视频| 国产成人免费视| 日产精品高清视频免费| 日本孕妇大胆孕交无码| 欧美视频在线播放| 疯狂揉花蒂控制高潮h| 91精品国产91久久久久久密臀| 2019国产精品自在线拍国产不卡| 92久久精品一区二区| 91视视频在线观看入口直接观看www| 中文网丁香综合网| 日韩av大片站长工具| 亚洲精品在线观看网站| 国产喷水在线观看| 日日摸夜夜添夜夜添国产精品| 91最新国产视频| 成年人在线观看| 疯狂蹂躏欧美一区二区精品| 激情小说欧美色图| 亚洲精品二区三区| 国产一区红桃视频| 国产在线91| 欧美性xxxxx极品| 久久久久亚洲无码| 亚洲性色视频| 亚洲精品日韩av| 中国日本在线视频中文字幕| 日本二三区不卡| 搡老熟女老女人一区二区| 亚洲一级高清| 99在线观看视频网站| 久久久久久国产精品免费无遮挡 | 日本福利一区| 国模叶桐国产精品一区| 国内精品久久久久久久久久| 综合电影一区二区三区| 一本色道久久亚洲综合精品蜜桃 | 日韩综合中文字幕| 中文字幕人妻精品一区| 国产日韩欧美精品一区| 人人爽人人av| 日本黄色精品| 国产精品一区二区久久国产| 日本不卡不卡| 欧美精品第1页| 日本精品人妻无码77777| 国产在线播放一区二区三区| 婷婷视频在线播放| 亚洲成人高清| 久久影视电视剧免费网站| 97超碰资源站| 亚洲精品乱码久久久久久黑人| 色姑娘综合天天| 欧美日韩国产在线一区| 国产高清一区视频| 国产社区精品视频| 亚洲欧美日韩国产成人| а中文在线天堂| 国产精品久久久久久久久快鸭| 污污动漫在线观看| 91av精品| 国产一区二区在线观看免费播放| 国产资源在线观看入口av| 国产丝袜一区二区| 美女黄页在线观看| 亚洲视频免费在线观看| 蜜臀av粉嫩av懂色av| 国产精品丝袜xxxxxxx| 日韩精品资源| 久久一级大片| 午夜精品视频网站| 黄网在线观看| 9191成人精品久久| 国产在线视频第一页| 久久久亚洲精品石原莉奈| 欧美丝袜在线观看| 在线观看不卡| 日韩精品av一区二区三区| 精品中文字幕一区二区三区| 91精品国产高清久久久久久久久| 国产一级在线观看| 日韩西西人体444www| 久久久久久久久久久久久av| 国产精品婷婷午夜在线观看| 日本黄色大片在线观看| 噜噜噜躁狠狠躁狠狠精品视频 | 伦xxxx在线| 亚洲精品国产精品国自产在线| 超碰在线免费97| 亚洲影视在线播放| 免费看污片的网站| 高清视频一区二区| 9l视频白拍9色9l视频| 亚洲久久视频| 欧美少妇一级片| 性欧美xxxx免费岛国不卡电影| 成人黄色av网站| 人成在线免费网站| 久久国产加勒比精品无码| 天天在线女人的天堂视频| 欧美卡1卡2卡| 日本一本在线观看| 亚洲高清免费观看| 91免费公开视频| 国产情人综合久久777777| 亚洲av综合色区无码另类小说| 日本一区中文字幕| 3d动漫一区二区三区| 亚洲一区 二区 三区| 色吧亚洲视频| 香蕉久久99| 肥熟一91porny丨九色丨| 久久久久久久性潮| 国产999精品久久久| av电影免费在线看| 欧美久久精品午夜青青大伊人| 国产一级二级三级在线观看| 日韩电影在线观看永久视频免费网站| 国产色综合视频| 欧美色图在线观看| 中文字幕免费观看| 欧美性xxxxx极品| 1级黄色大片儿| 亚洲综合在线五月| 91香蕉视频网| 国产精品你懂的| 人人妻人人澡人人爽| 久久午夜免费电影| 成人网站免费观看| 99视频精品免费视频| 特级特黄刘亦菲aaa级| 国产精品亚洲视频| 午夜影院免费观看视频| 精品一区在线看| 国内av一区二区| 狠狠色丁香久久婷婷综合丁香| 亚洲综合av在线播放| 人人精品人人爱| 另类小说第一页| 日韩福利电影在线| 亚洲精品怡红院| 日本一不卡视频| 午夜两性免费视频| 狠狠色丁香婷综合久久| 天天操夜夜操很很操| 国产ts人妖一区二区| 黑人无套内谢中国美女| 粉嫩一区二区三区性色av| 久久久久亚洲av成人网人人软件| 国产传媒欧美日韩成人| 色悠悠在线视频| 99热在这里有精品免费| 波多野结衣福利| 国产日韩综合av| 欧美h片在线观看| 亚洲乱码日产精品bd| 不卡的免费av| 日韩欧美国产成人| 亚洲视频一区在线播放| 777奇米成人网| 亚洲精品一区二区三区蜜桃| 亚洲电影免费观看| 免费一级在线观看| 日韩在线视频观看正片免费网站| 国产成人无吗| 性欧美暴力猛交69hd| 性欧美videohd高精| 国产精品专区一| 99精品国产一区二区三区2021| 黑人中文字幕一区二区三区| 精品国产午夜| 久久av高潮av| 麻豆成人精品| 91丝袜超薄交口足| 91污片在线观看| 国产精品18在线| 午夜欧美视频在线观看| 日本丰满少妇做爰爽爽| 91精品一区二区三区久久久久久| 亚洲欧美激情在线观看| 亚洲欧洲成视频免费观看| 免费日本一区二区三区视频| 97久久国产精品| av成人亚洲| 国产伦精品一区二区三区视频免费| 亚洲系列另类av| 欧美少妇一区二区三区| 久久国产一二区| 人妻少妇偷人精品久久久任期| 91美女在线视频| 婷婷伊人五月天| 91久久人澡人人添人人爽欧美| japanese国产| 一本色道久久88亚洲综合88| 色av手机在线| 国产日韩欧美91| 婷婷综合一区| 国产成人一区二区三区别| 日本不卡中文字幕| 午夜一区二区三区免费| 亚洲男人天堂av| 成人午夜精品视频| 日韩精品极品视频| 欧美78videosex性欧美| 国产精品视频播放| 久久影视三级福利片| 欧美日韩一区二区三区电影| 久久久精品性| 中文字幕一区二区三区乱码不卡| 国产精品电影院| 国产寡妇亲子伦一区二区三区四区| 日韩欧美精品在线| 黄网站app在线观看| 国产精品成人av性教育| 欧美中文一区| 91黄色在线看| 国产一区二区三区四区五区美女| 一色道久久88加勒比一| 午夜视黄欧洲亚洲| 免费观看毛片网站| 欧美成人四级hd版| 国产精品亚洲欧美日韩一区在线 | 欧美无乱码久久久免费午夜一区 | 日韩在线视频播放| 日韩精品免费观看视频| 精品免费国产| 尤物在线精品| 无码人妻精品一区二区三区99不卡| 亚洲免费在线电影| 国产精品亚洲lv粉色| 中文字幕在线视频日韩| 日韩精品免费观看视频| 五月天综合网| 美国三级日本三级久久99 | 日韩免费特黄一二三区| 冲田杏梨av在线| 国产欧美一区二区精品性色| 亚洲不卡在线视频| 国产午夜精品视频免费不卡69堂| 日韩欧美另类一区二区| 日本不卡高清视频一区| 老司机精品导航| 精品成人无码一区二区三区| 色婷婷av一区二区三区大白胸| 欧美美女搞黄| 国产精品999| 91嫩草亚洲精品| 亚洲在线观看网站| 亚洲乱码中文字幕| 亚洲毛片在线播放| 69av视频在线播放| 免费成人网www| 看欧美ab黄色大片视频免费 | 国产精品videossex撒尿| 日韩av不卡在线播放| 美日韩一级片在线观看| 多男操一女视频| 日韩美女天天操| 美女网站在线看| 日本一区免费看| 精品一区二区在线免费观看| 可以直接看的黄色网址| 欧美r级在线观看| 成入视频在线观看| 日韩久久在线| 国产一本一道久久香蕉| 日干夜干天天干| 国产亚洲精品一区二555| 国产亚洲精aa在线看| 日本欧美视频在线观看| 久久久久久亚洲综合影院红桃 | 亚洲欧洲美洲av| 亚洲一二区在线| 成人福利视频网站| 国产真人无遮挡作爱免费视频| 久久精品2019中文字幕| 岛国精品一区| 激情内射人妻1区2区3区 | 成人免费电影视频| 欧美brazzers| 欧美高清在线观看| 亚洲精品中文字幕99999| 爱爱爱爱免费视频| 午夜精品久久久久| 日本中文字幕在线看| 国产精品有限公司| 美女任你摸久久| 五月天婷婷丁香| 色婷婷综合久久久久中文字幕1| jizz18欧美18| 中文字幕第17页| 色综合久久中文字幕综合网| 午夜激情在线| 亚洲午夜高清视频|