久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

瀏覽:3日期:2022-07-30 13:58:03

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

各位讀者好,在這片文章中我們嘗試使用sklearn庫比較k-means聚類算法和主成分分析(PCA)在圖像壓縮上的實現和結果。 壓縮圖像的效果通過占用的減少比例以及和原始圖像的差異大小來評估。 圖像壓縮的目的是在保持與原始圖像的相似性的同時,使圖像占用的空間盡可能地減小,這由圖像的差異百分比表示。 圖像壓縮需要幾個Python庫,如下所示:

# image processingfrom PIL import Imagefrom io import BytesIOimport webcolors# data analysisimport mathimport numpy as npimport pandas as pd# visualizationimport matplotlib.pyplot as pltfrom importlib import reloadfrom mpl_toolkits import mplot3dimport seaborn as sns# modelingfrom sklearn.cluster import KMeansfrom sklearn.decomposition import PCAfrom sklearn.preprocessing import MinMaxScaler

探索圖像

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

每個顏色通道的圖像圖像中的每個像素都可以表示為三個0到255之間的8位無符號(正)整數,或縮放為三個0到1之間的無符號(正)浮點數。這三個值分別指定紅色,綠色,藍色的強度值,這通常稱為RGB編碼。 在此文章中,我們使用了220 x 220像素的lena.jpg,這是在圖像處理領域廣泛使用的標準測試圖像。

ori_img = Image.open('images/lena.png')ori_img

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

原始圖像

X = np.array(ori_img.getdata())ori_pixels = X.reshape(*ori_img.size, -1)ori_pixels.shape

圖像儲存方式是形狀為(220、220、3)的3D矩陣。 前兩個值指定圖像的寬度和高度,最后一個值指定RBG編碼。 讓我們確定圖像的其他屬性,即圖像大小(以千字節(KB)為單位)和原色的數量。

def imageByteSize(img): img_file = BytesIO() image = Image.fromarray(np.uint8(img)) image.save(img_file, ’png’) return img_file.tell()/1024ori_img_size = imageByteSize(ori_img)ori_img_n_colors = len(set(ori_img.getdata()))

lena.jpg的原始圖像大小為86 KB,并具有37270種獨特的顏色。 因此,我們可以說lena.jpg中的兩個像素具有相同的精確RGB值的可能性很小。

接下來,讓我們計算圖像的差異作為壓縮結果的基準。

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

ori_img_total_variance = sum(np.linalg.norm(X - np.mean(X, axis = 0), axis = 1)**2)

我們得到方差為302426700.6427498。 但是我們無法解釋方差本身的價值。 我們稍后將在K-Means聚類中使用它。

k-means聚類

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

具有三個聚類中心的二維k-means聚類圖像

算法

k-means聚類是一種常用的無監督學習算法,用于將數據集劃分為k個聚類中心,其中k必須由用戶預先指定。 該算法的目標是將現有數據點分類為幾個集群,以便:

同一集群中的數據盡可能相似 來自不同集群的數據盡可能不同

每個集群由聚類中心表示,聚類中心是聚類數據點的平均值。 這是算法:

用戶指定集群數k 從數據集中隨機選擇k個不同的點作為初始聚類中心 將每個數據點分配給最近的聚類中心,通常使用歐幾里得距離 通過取屬于該集群的所有數據點的平均值來計算新聚類中心 重復步驟3和4,直到收斂為止,即聚類中心位置不變

請注意,結果可能并不理想,因為它取決于隨機的初始化。

理念

我們的原始圖像包含數千種顏色。 我們將利用K-Means聚類算法來減少顏色數量,因此它僅需要存儲一定數量的RGB值。 我們將減小圖像尺寸使其更有效率地進行儲存。 我們可以將像素值視為具有(寬度×高度)觀察值和3個與RGB值相對應的特征的數據幀。 對于lena.jpg,我們將具有220×220(48400)個觀測值和3個特征。

因此,我們可以可視化三維圖中的每個像素。 這是前220個像素,代表原始圖像中的第一行像素。

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

像素值的三維圖

簡單的例子

在我們對顏色數k使用各種值進行迭代之前,讓我們使用k = 2來了解我們的目的。 到本節末,我們希望圖像只有2種顏色。 首先,我們創建一個KMeans對象,該對象適合我們的原始像素X。

kmeans = KMeans(n_clusters = 2,n_jobs = -1,random_state = 123).fit(X)kmeans_df = pd.DataFrame(kmeans.cluster_centers_, columns = [’Red’, ’Green’, ’Blue’])

然后我們將RGB值轉換為其英文顏色名稱:

def closest_colour(requested_colour): min_colours = {} for key, name in webcolors.CSS3_HEX_TO_NAMES.items(): r_c, g_c, b_c = webcolors.hex_to_rgb(key) rd = (r_c - requested_colour[0]) ** 2 gd = (g_c - requested_colour[1]) ** 2 bd = (b_c - requested_colour[2]) ** 2 min_colours[(rd + gd + bd)] = name return min_colours[min(min_colours.keys())]def get_colour_name(requested_colour): try: closest_name = actual_name = webcolors.rgb_to_name(requested_colour) except ValueError: closest_name = closest_colour(requested_colour) return closest_namekmeans_df['Color Name'] = list(map(get_colour_name, np.uint8(kmeans.cluster_centers_)))kmeans_df

當我們指定2為n_clusters參數值時,我們得到兩個聚類中心。下一步,我們可以通過聚類中心來表示該群集中的每個像素值。 因此,在壓縮圖像中將只有兩個像素值。

def replaceWithCentroid(kmeans): new_pixels = [] for label in kmeans.labels_: pixel_as_centroid = list(kmeans.cluster_centers_[label]) new_pixels.append(pixel_as_centroid) new_pixels = np.array(new_pixels).reshape(*ori_img.size, -1) return new_pixelsnew_pixels = replaceWithCentroid(kmeans)

我們的聚類步驟已經完成,讓我們看一下壓縮圖像的結果。

def plotImage(img_array, size): reload(plt) plt.imshow(np.array(img_array/255).reshape(*size)) plt.axis(’off’) return plt plotImage(new_pixels, new_pixels.shape).show()

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

只有兩種顏色的壓縮圖片

K-Means僅使用兩種顏色成功地保留了lena.jpg的形狀。 在視覺上,我們可以比較原始圖像相似與壓縮圖像是否相似。 但是,我們如何用程序做到這一點? 讓我們介紹一組評估壓縮圖像的指標:

在群集平方和(WCSS)中,測量群集中所有點與其群集中心的歐幾里德距離平方的總和。

在群集的平方和(BCSS)之間,測量所有聚類中心之間的歐幾里得距離平方的總和。

解釋方差,衡量壓縮圖像效果可以通過壓縮圖像解釋原始圖像的百分比。 如果將每個像素視為一個單獨的群集,則WCSS等于0。因此,Exparined Variance = 100%。

圖像大小,以千字節為單位,以評估縮小/壓縮性能。

def calculateBCSS(X, kmeans): _, label_counts = np.unique(kmeans.labels_, return_counts = True) diff_cluster_sq = np.linalg.norm(kmeans.cluster_centers_ - np.mean(X, axis = 0), axis = 1)**2 return sum(label_counts * diff_cluster_sq)WCSS = kmeans.inertia_BCSS = calculateBCSS(X, kmeans)exp_var = 100*BCSS/(WCSS + BCSS)print('WCSS: {}'.format(WCSS))print('BCSS: {}'.format(BCSS))print('Explained Variance: {:.3f}%'.format(exp_var))print('Image Size: {:.3f} KB'.format(imageByteSize(new_pixels)))

WCSS: 109260691.314189BCSS: 193071692.34763986Explained Variance: 63.861%Image Size: 4.384 KB

圖像大小從86 KB大幅下降到4.384 KB,但是要注意的是,壓縮圖像解釋原始圖像的能力達到63.861%。 我們期望比這更高的解釋方差百分比。 接下來,我們將重復上述過程并改變𝑘來實現此目標。

重復試驗

在本節中,我們將在𝑘= 2到𝑘= 20之間重復此步驟:

執行k-means以獲取每個像素的聚類中心和聚類標簽 將每個像素替換為其聚類中心。 保存指標值以進行進一步優化:WCSS,BCSS,解釋方差和圖像大小 用越來越多的顏色繪制壓縮圖像

range_k_clusters = (2, 21)kmeans_result = []for k in range(*range_k_clusters): # CLUSTERING kmeans = KMeans(n_clusters = k, n_jobs = -1, random_state = 123).fit(X) # REPLACE PIXELS WITH ITS CENTROID new_pixels = replaceWithCentroid(kmeans) # EVALUATE WCSS = kmeans.inertia_ BCSS = calculateBCSS(X, kmeans) exp_var = 100*BCSS/(WCSS + BCSS) metric = { 'No. of Colors': k, 'Centroids': list(map(get_colour_name, np.uint8(kmeans.cluster_centers_))), 'Pixels': new_pixels, 'WCSS': WCSS, 'BCSS': BCSS, 'Explained Variance': exp_var, 'Image Size (KB)': imageByteSize(new_pixels) } kmeans_result.append(metric)kmeans_result = pd.DataFrame(kmeans_result).set_index('No. of Colors')kmeans_result

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

聚類指標:最佳的顏色種類數

在本節中,我們將嘗試搜索最佳的顏色數(聚類中心)k,以便在保持較高的解釋方差百分比的同時將內存大小減小到盡可能小。

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

如何確定最佳顏色數k? 以下是算法:

用直線連接曲線的第一個和最后一個點 計算每個點到該線的垂直距離 將距離最長的點視為拐點

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

下一個問題,如何在步驟2中計算垂直距離? 很簡單,我們可以使用從點(x0,y0)到線ax + by + c = 0的距離公式,如下所示:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

def locateOptimalElbow(x, y): # START AND FINAL POINTS p1 = (x[0], y[0]) p2 = (x[-1], y[-1]) # EQUATION OF LINE: y = mx + c m = (p2[1] - p1[1]) / (p2[0] - p1[0]) c = (p2[1] - (m * p2[0])) # DISTANCE FROM EACH POINTS TO LINE mx - y + c = 0 a, b = m, -1 dist = np.array([abs(a*x0+b*y0+c)/math.sqrt(a**2+b**2) for x0, y0 in zip(x,y)]) return np.argmax(dist) + x[0]

但是,如果圖形不是增加或減少的曲線函數,該怎么辦? 我們可以使用有限差分法使用二階導數來定位梯度中變化最劇烈的地方。

什么是有限差分法? 這是一種數值方法,可以近似離散值的導數。 共有三種類型:

forward差異:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

backward差異:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

中心差異:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

其中:

f’(x)是函數f(x)的一階導數h是步長,在這種情況下,h = 1(顏色數的步長)O(h)是一級誤差項O(h²)是二次誤差項

由于中心差異具有較高的度數誤差項,因此預期它會比其他兩個差異產生更好的結果。 我們僅對第一個點使用前向差異,對最后一個點使用后向差異。

def calculateDerivative(data): derivative = [] for i in range(len(data)): if i == 0: # FORWARD DIFFERENCE d = data[i+1] - data[i] elif i == len(data) - 1: # BACKWARD DIFFERENCE d = data[i] - data[i-1] else: # CENTER DIFFERENCE d = (data[i+1] - data[i-1])/2 derivative.append(d) return np.array(derivative)def locateDrasticChange(x, y): # CALCULATE GRADIENT BY FIRST DERIVATIVE first_derivative = calculateDerivative(np.array(y)) # CALCULATE CHANGE OF GRADIENT BY SECOND DERIVATIVE second_derivative = calculateDerivative(first_derivative)return np.argmax(np.abs(second_derivative)) + x[0]

讓我們搜索每個指標的最佳k值:

optimal_k = []for col in kmeans_result.columns[2:]: optimal_k_dict = {} optimal_k_dict['Metric'] = col if col == 'Image Size (KB)': optimal_k_dict['Method'] = 'Derivative' optimal_k_dict['Optimal k'] = locateDrasticChange(kmeans_result.index, kmeans_result[col].values) else: optimal_k_dict['Method'] = 'Elbow' optimal_k_dict['Optimal k'] = locateOptimalElbow(kmeans_result.index, kmeans_result[col].values) optimal_k.append(optimal_k_dict)optimal_k = pd.DataFrame(optimal_k)optimal_k

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

我們選擇最大的最優k作為所有最優k的代表,即k = 12。

與原始圖像進行比較

最后,讓我們比較使用k = 12的壓縮圖像和原始圖像的區別。

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

relative_size = ori_vs_kmeans.loc['Color-Reduced', 'Image Size (KB)']/ori_vs_kmeans.loc['Original', 'Image Size (KB)']print('Reduction: {:.3f}% from original image size'.format((1-relative_size)*100))print('Explained Variance: {:.3f}%'.format(ori_vs_kmeans.loc['Color-Reduced', 'Explained Variance']))

縮小比例:原始圖像的79.012%解釋方差:95.916%

通過使用k-means,我們可以將圖像大小減少79.012%,而解釋方差為95.916%,這真是太好了! 接下來,我們執行PCA,看看它是否可以優于k-means。

主成分分析(PCA)

概念

PCA是用于降維的無監督學習技術之一。 它從協方差矩陣計算出特征向量,然后將其稱為主軸,并按稱為解釋方差百分比的特征值進行遞減排序。 然后將數據集居中并投影到形成主要成分(或分數)的主軸上。 為了減少數據維度,我們僅保留一定數量的主成分n來解釋原始數據集的方差,而忽略其余部分。

假設我們有一個X_ori數據集,其中包含m個觀察值和n個特征。 減去每行的平均值,我們得到居中的數據X。然后,PCA將為每個特征計算k個特征向量,從而產生形狀為n×k的矩陣V。 PCA投影或分數將以Z = XV給出,其中Z的尺寸為m×k。

降維時,我們在X_ori中選擇n_select小于n。 以下是我們使用所選PC重建矩陣X的方法:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

其中:

Z_reduce的尺寸為m×n_selectV_reduce的維數為n×n_selectT是矩陣轉置運算

最后,我們添加均值以得到原始圖像的最終PCA,如下所示:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

理念

我們將通過選擇要使用的主分量n_select利用PCA來減小圖像尺寸,以便它僅存儲重要像素以保留原始圖像的特征,從而使其在存儲中更加有效。

我們的原始圖像包含三個顏色通道:紅色,綠色和藍色。 對于每個顏色通道,我們將像素視為具有(高度)觀察值和(寬度)特征的2D矩陣。 在lena.jpg中,我們有三個2D矩陣,其中包含220個觀測值和220個特征。

RGB通道的主要組件

在每個顏色通道上執行PCA,從而得到PCA投影(或分數)和主成分(軸),它們都將是形狀為220×220的矩陣形式。

res = []cum_var = []X_t = np.transpose(X)for channel in range(3): # SEPARATE EACH RGB CHANNEL pixel = X_t[channel].reshape(*ori_pixels.shape[:2]) # PCA pca = PCA(random_state = 123) pixel_pca = pca.fit_transform(pixel) pca_dict = { 'Projection': pixel_pca, 'Components': pca.components_, 'Mean': pca.mean_ } res.append(pca_dict) # EVALUATION cum_var.append(np.cumsum(pca.explained_variance_ratio_))

我們可以可視化每個顏色通道的主要成分,如下所示:

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

PC的可視化信息不足,隨機性很大。 我們應該引入一個稱為解釋方差的指標來評估PC性能。 取值范圍是0到100%,表示原始圖像和壓縮圖像之間的相似度。

cum_var_df = pd.DataFrame(np.array(cum_var).T * 100, index = range(1, pca.n_components_+1), columns = ['Explained Variance by Red', 'Explained Variance by Green', 'Explained Variance by Blue'])cum_var_df['Explained Variance'] = cum_var_df.mean(axis = 1)cum_var_df

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

重復試驗

在本節中,我們將重復以下步驟從n_select到n_select = 220:

區分PCA投影的前n_select列和組件的前n_select行 使用PCA建立公式和原始圖像 對紅色,綠色和藍色每個顏色通道重復步驟1-2。 將三種顏色通道的PCA重構組合為一個3D矩陣 保存指標值(解釋方差,圖像大小和顏色數量)以進行進一步優化 用越來越多的主成分繪制壓縮(重構)圖像

pca_results = []for n in range(1, pca.n_components_+1): # SELECT N-COMPONENTS FROM PC temp_res = [] for channel in range(3): pca_channel = res[channel] pca_pixel = pca_channel['Projection'][:, :n] pca_comp = pca_channel['Components'][:n, :] pca_mean = pca_channel['Mean'] compressed_pixel = np.dot(pca_pixel, pca_comp) + pca_mean temp_res.append(compressed_pixel.T) compressed_image = np.transpose(temp_res) pca_dict = { 'n': n, 'Pixels': compressed_image, 'Explained Variance': cum_var_df['Explained Variance'][n], 'Image Size (KB)': imageByteSize(compressed_image), 'No. of Colors': len(np.unique(np.uint8(compressed_image).reshape(-1, 3), axis = 0)) } pca_results.append(pca_dict)pca_results = pd.DataFrame(pca_results).set_index('n')pca_results.head()

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

PCA指標:主成分的最佳數量

在本節中,我們將嘗試搜索最佳數量的PC,以在達到預期的解釋方差的同時,使內存占用盡可能最小。

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

我們想通過分析解釋方差來獲得最佳主成分數,這是思考過程:左圖:我們需要19、33和73個主成分才能分別解釋原始圖像的方差的90%,95%和99%。中圖:但是需要權衡取舍,解釋方差越大,圖像尺寸就越大。 黑色虛線表示原始圖像尺寸,我們要在此線下方選擇n。 因此,選擇19或33個主成分。右圖:如果將n從19增加到33,然后再增加到73,則圖像中存在的顏色數量將減少。

從圖中可以得出結論,應當33個主成分,因為它給我們提供了較小的圖像大小和相當高的解釋方差,并且比使用19個主要成分更接近原始圖像。

與原始圖像進行比較

最后,讓對壓縮圖像和原始圖像進行比較。

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

relative_size = ori_vs_pca.loc['PC-Reduced', 'Image Size (KB)']/ori_vs_kmeans.loc['Original', 'Image Size (KB)']print('Reduction: {:.3f}% from original image size'.format((1-relative_size)*100))print('Explained Variance: {:.3f}%'.format(ori_vs_pca.loc['PC-Reduced', 'Explained Variance']))

縮小比例:原始圖像大小的6.825%解釋方差:95.072%

通過使用PCA,我們只能將圖像大小減小6.825%,并且壓縮后的圖像成功捕獲了原始圖像的95.072%的特征。 接下來,我們比較k-means和PCA的結果。

k-means和PCA的比較

我們考慮幾個指標,以比較使用k-means和PCA壓縮圖像的效果:

圖片大小(以千字節為單位)解釋方差圖像中存在的顏色數

reduction_kmeans = (1-final_compare.loc['Color-Reduced', 'Image Size (KB)'] / ori_img_size) * 100reduction_pca = (1-final_compare.loc['PC-Reduced', 'Image Size (KB)'] / ori_img_size) * 100print('Image Size Reduction using K-Means: {:.3f}%'.format(reduction_kmeans))print('Image Size Reduction using PCA: {:.3f}%'.format(reduction_pca))

在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮

使用k-means縮小圖像大小:79.012%使用PCA縮小圖像大小:6.825%

結論

我們使用無監督學習算法成功地實現了圖像壓縮,例如k-means聚類和使用主成分分析(PCA)進行降維。

在k-means中,通常通過可視化來主觀地選擇最佳聚類中心數k。 在這里,我們提出兩種選擇方法,即:

使用最長垂直距離的方法 使用有限差分法和二階導數

在PCA中,確定使用的PC數量首先要考慮解釋方差,然后還要考慮圖像大小減小的比例和減少顏色的數量,以分析它們與原始圖像的相似性。

使用k-means,圖像大小減小到79.012%,僅12種顏色就能解釋原始圖像的95.916%差異。 使用PCA,圖像大小減小僅為6.825%,并根據我們的目標解釋了95,072%的差異。 在經過PCA縮小的圖像中,與原始圖像相比,存在更多的顏色數量,表明存在噪音。 從主觀上可以看出,PCA壓縮的圖像更加粗糙。

與PCA相比,更建議使用k-means來縮小圖像尺寸,但是如果我們要保持原始圖像的整體色彩,請使用PCA。

另一個建議是嘗試連續執行兩種方法來進行圖像縮小,即先用k-means再用PCA,或是先用PCA再用k-means。

作者:Tomy Tjandra

deephub翻譯組:孟翔杰

到此這篇關于在Python中使用K-Means聚類和PCA主成分分析進行圖像壓縮的文章就介紹到這了,更多相關Python 圖像壓縮內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 成人在线免费视频 | 欧美精品片 | 久久久欧美 | 日本久久精品视频 | 日韩三级网 | 蜜桃视频麻豆女神沈芯语免费观看 | 欧美在线视频三区 | 国产精品女教师av久久 | 国产三级毛片 | 亚洲精品久久久一区二区三区 | 91精品国产乱码久久蜜臀 | 欧美久久一级特黄毛片 | 成人免费视频观看视频 | 久久精品视频免费观看 | 先锋资源在线观看 | 欧美日本一区 | 日韩一区二区在线观看视频 | 久久国产电影 | 狠狠操av | 久久久久综合狠狠综合日本高清 | 中文字幕亚洲欧美日韩在线不卡 | 天天爽夜夜爽 | 亚洲国产免费 | 亚洲成人一区二区三区 | 国产一区中文字幕 | 亚洲人在线观看视频 | 国产麻豆乱码精品一区二区三区 | 久久伊人久久 | 亚洲av毛片一级二级在线 | 国产精品久久久久久久久免费软件 | 久久成人一区 | 精品乱子伦一区二区三区 | 久久久精品综合 | 一本色道精品久久一区二区三区 | 国产日韩欧美 | 一二三精品区 | 91最新网站 | 成人免费一区二区三区视频网站 | 欧美日韩一区二区三区视频 | 男人天堂网av| 一区二区三区四区在线视频 | 亚洲一区中文字幕 | 日韩在线观看视频一区二区三区 | 欧美国产伦久久久久久 | 亚洲第一福利视频 | 亚洲成av人片在线观看 | 伊人久久国产 | 久久久毛片 | 欧美日韩成人在线 | 一区视频 | 国产高清在线精品一区二区三区 | 国产精品一区二区在线观看 | 日本午夜网 | 在线视频 欧美日韩 | 色综合久久久久 | 台湾av在线 | 另类五月天 | 综合99| 成版人性视频 | 久久精品网 | 99精品欧美一区二区蜜桃免费 | 偷拍自拍网站 | 69久久99精品久久久久婷婷 | 狠狠干狠狠干 | 天天久久| 伊人网视频 | 国产精品99久久久久久动医院 | 亚洲香蕉在线观看 | 久久人| 爱色av| 毛片免费在线 | 免费看的黄色 | 午夜精品一区二区三区在线视频 | 亚洲精品国精品久久99热 | 毛片网站大全 | 国产精品一区二区无线 | av在线一区二区三区 | 免费观看的av| 日本电影www | 国产精品日韩 | 二区三区在线观看 | 久久亚洲综合 | 精品久久99 | 黄视频免费在线 | 一级人爱视频 | 亚洲网站视频 | 免费观看欧美一级 | 亚洲精选国产 | 欧美色性| 欧美一级片免费播放 | 久久二| 国产一区二区三区久久 | 国产一级视频在线播放 | 日韩欧美一区二区三区视频 | 中文字幕在线观看精品视频 | 午夜精品一区二区三区免费视频 | 精品亚洲一区二区三区 | 成人亚洲视频在线观看 | 日韩在线中文字幕 | 黄色网址免费在线 | 综合国产 | 欧美精品成人一区二区三区四区 | 久草观看| 91精品国产综合久久精品 | 欧美日韩不卡 | 免费亚洲一区二区 | 国产福利电影一区 | 日韩在线免费视频 | 日本久久精品 | 81精品国产乱码久久久久久 | 成人免费观看49www在线观看 | 欧美激情一区二区 | 亚洲视频在线观看一区二区三区 | 一级片免费视频 | 精品中出 | 久久蜜桃av一区二区天堂 | 亚洲人成人一区二区在线观看 | 91影院在线观看 | 日本福利网站 | 中文字幕av网站 | 天天干com | 亚洲一区二区三区久久久 | 国产人成精品一区二区三 | 在线免费黄 | 剑来在线观看 | 日韩一级视频 | 久久精品小视频 | 成人免费视频网站在线看 | 久久不射电影网 | 亚洲精品a区 | 日韩免费在线观看视频 | 欧美2区 | 国产亚洲精品久久久久久久久 | 精品国产一区二区三区久久久久久 | 久久99精品久久久 | 狠狠爱亚洲 | aaa黄色片| 久久午夜影院 | 国产综合视频在线观看 | 在线观看亚洲一区二区 | 国产成人精品久久二区二区 | 国产真实乱全部视频 | 国产精品日韩在线观看 | 国产成人久久精品麻豆二区 | 一级免费黄色免费片 | 一区二区网站 | 免费成人在线网站 | 一区二区三区四区av | 欧美成人午夜视频 | 欧美日韩亚洲一区二区 | 国产干干干 | 中文字幕亚洲精品 | 亚洲网站免费 | 久久久综合亚洲91久久98 | 美女在线视频一区二区 | 1区2区免费视频 | 亚洲乱码一区二区三区在线观看 | 蜜桃免费视频 | 久草久草久 | 在线观看www| 亚洲三级网站 | 一区二区av | 成人做爰69片免费 | 国产欧美视频在线 | 91网站在线播放 | 国产婷婷在线视频 | 日本天天操 | 免费av片 | 91精品国产aⅴ | 免费av播放 | 国产精品理论电影 | 日韩欧美一级精品久久 | 91久久久久| 欧美午夜精品久久久久免费视 | 超碰97免费在线 | 美女一区| 成人免费一区二区三区视频网站 | 看亚洲a级一级毛片 | 日韩靠逼| 亚洲精品国产9999久久久久 | 亚洲高清av| 成人欧美一区二区三区黑人孕妇 | 久草最新 | 免费一级欧美在线观看视频 | 亚洲激情欧美 | 91久久国产| 亚洲一区二区三区四区的 | 国产精品粉嫩白浆在线观看 | www.99| 黄色国产 | 免费一级片 | 亚洲精品视频在线播放 | 欧美日本三级 | 精品久久网 | 精品国产乱码久久久久久久软件 | 日韩精品一区二区三区在线播放 | 亚洲国产精品久久久久久女王 | 狠狠操综合网 | 一区二区三区在线不卡 | 午夜小电影 | 欧美黄视频在线观看 | 国产视频第一页 | 草草网站 | 欧美一区二区三区免费 | 最新日韩av | 国产www视频 | 97伦理电影| 国产精品影院在线观看 | av免费网站 | 欧美精品一区二区蜜臀亚洲 | 日韩成人三级 | 欧美一级大片免费 | 国产精品日产欧美久久久久 | 欧美日韩精品一区二区三区 | 最新国产中文字幕 | av电影手机在线看 | 国产精品欧美一区二区三区 | 国产 高清 在线 | 国产精选一区二区三区不卡催乳 | 人人草天天草 | 在线中文字幕观看 | 欧洲精品在线观看 | 国产精品一二三区视频 | 美女高潮久久久 | 性欧美精品高清 | 99re久久| 国产999久久 | 欧美日韩国产一区二区三区不卡 | 久久精品一区二区三区中文字幕 | 亚洲激情在线 | 欧美一级艳片视频免费观看 | 九九亚洲视频 | 日韩区| 久久久久久久久99精品 | 一区在线视频 | 欧美黑人一级毛片 | 色天天综合久久久久综合片 | 成人免费激情视频 | 日韩性猛交 | 久久精品一 | 欧美激情综合五月色丁香小说 | 成人久久 | 青青草99 | 日本三级网站在线观看 | 亚洲成人观看 | 亚洲精品一区中文字幕乱码 | 黄色一级大片网站 | 国产自在现线2019 | 欧美99| 久久成人国产精品 | 久久成人一区 | 国产大片黄色 | 久久久久久久中文 | 午夜天堂精品久久久久 | 欧美日韩福利 | 国产一区二区三区久久 | 国产精品18久久久久久首页狼 | 日本成人片网站 | 激情五月综合 | 午夜国产精品视频 | 国产做a爱片久久毛片 | 麻豆乱码国产一区二区三区 | 国产精品久久久久毛片软件 | 国产成人免费 | 天天天天天天天天操 | 99精品免费 | 亚洲高清免费视频 | 午夜精品久久久久久99热软件 | 免费一区二区三区 | 每日更新在线观看av | 亚洲视频在线免费观看 | 国产ts人妖另类 | 国产高清一区 | 日韩性在线 | 99免费精品 | 毛片av在线| 久久精品在线视频 | 亚洲 欧美 日韩在线 | 小川阿佐美88av在线播放 | av官网| 男女视频一区二区 | 久久久久久久 | 亚洲午夜免费视频 | 免费看一区二区三区 | 嫩草91 | 欧美视频三级 | 国产精品毛片一区二区在线看 | 中文字幕免费在线 | 亚洲精品视频在线看 | 久久99精品久久久久久琪琪 | 国产成人精品久久 | 在线看欧美 | 欧美性一级 | 欧美一级片在线 | 黄毛片网站| 国产亚洲女人久久久久毛片 | 欧美精品一区二区三区在线播放 | 久久一区| 国产美女网站 | 成人福利视频 | 国产探花在线精品一区二区 | 99视频这里有精品 | 亚洲精品成人 | 免费欧美视频 | 九色91视频 | 成人免费视频网站在线看 | 91一区二区三区久久国产乱 | 欧美日韩中文字幕 | 日日夜夜天天干干 | 亚洲精品国产乱码在线看蜜月 | 91精品久久久久 | 国产精品色婷婷亚洲综合看 | 中文字幕在线第一页 | 国产成人精品一区二区三区四区 | 亚洲 欧美 自拍偷拍 | 日本在线免费观看 | 精品二区| 国产精品国色综合久久 | 亚洲二区视频 | 亚洲国产欧美一区二区三区久久 | 日本福利在线观看 | 日本在线观看 | 亚洲一区中文字幕 | 操操操影院 | 亚洲成人在线视频观看 | 日本黄色电影网站 | 亚洲综合色视频在线观看 | 日韩在线播放一区 | 亚洲综合社区 | 午夜电影网站 | 女人夜夜春高潮爽a∨片传媒 | 亚洲精品久久久 | 高清视频一区二区三区 | 日韩精品一区二区三区第95 | 日本免费一区二区三区 | 天天干欧美 | 极品久久久久久 | 国产一级免费视频 | 久久久精品欧美 | 婷婷网址 | 成人免费视频观看视频 | 久久精品在线观看视频 | 在线免费观看毛片 | 久久一区二区三区四区 | 天天操狠狠操 | 青青久久 | 在线观看亚洲大片短视频 | 亚洲成人精品影视 | 国产精品无码久久久久 | 毛片激情永久免费 | 国产一区二区视频在线观看 | 一级一级一级一级毛片 | 久久国产婷婷国产香蕉 | 亚洲一区欧美一区 | www国产xxx | 不卡一区| 日韩精品一区二区三区在线观看 | 日韩成人av在线 | 久久久精品影院 | 成人综合在线观看 | 最新日韩精品在线观看 | 黄色一级免费电影 | 精品久久久久久久久久久久 | 国产色在线观看 | 亚洲精品久久久久久国产精华液 | 日日摸天天爽天天爽视频 | 国产高清一区二区 | 久久久久久久久国产精品 | 亚洲91| 99久久日韩精品视频免费在线观看 | 国产精品久久久久久久免费大片 | 色综合天天天天做夜夜夜夜做 | 山外人精品 | 爱草在线 | 久久99久久99精品免视看婷婷 | 成版人性视频 | 日韩有码在线播放 | 一区二区三区在线观看视频 | 第一色综合 | 91在线 | 亚洲 | 黄色片毛片 | 久久精品手机视频 | 伊人久久一区二区三区 | 国产大片在线观看 | 精品亚洲一区二区三区 | 国产高清一区二区 | 日韩精品一区在线视频 | 99精品全国免费观看视频软件 | 在线观看亚洲一区二区 | 国产人妖视频 | 精品久久久久久久久久久久久久 | 欧美综合一区二区 | 久久久国产一区二区三区 | 久久亚洲一区二区三区四区 | 日韩成人小视频 | 中文精品在线 | 在线91| 免费看片91| 国产欧美中文字幕 | 国产精品久久久久久亚洲调教 | 情五月 | 精品久久久久一区二区国产 | 8x国产精品视频一区二区 | 亚洲成人一区二区三区 | 亚洲精品天堂 | 日韩欧美国产精品一区二区三区 | 99久久精品国产一区二区三区 | 久久久午夜爽爽一区二区三区三州 | www国产亚洲 | 色精品视频 | 黄色片免费在线观看视频 | hd国产人妖ts另类视频 | 国产成人免费网站 | 国产成人精品一区二 | 青娱乐av| 色婷婷久久 | 国产精品毛片久久久久久 | 久在线| 羞羞视频网站在线看 | 欧美一区国产一区 | 成人免费视频观看视频 | 日韩中文在线观看 | 亚洲 成人 av | 日本在线观看一区 | 日产久久 | 日韩精品1区2区3区 成人黄页在线观看 | 日韩在线视频一区 | 日本黄色片免费看 | 伊人久久国产 | www久久久久久久 | 亚洲精品乱码久久久久久久久 | 亚洲国产日韩欧美 | 久久久精 | 毛片免费看 | 99国产视频 | 三级视频在线观看 | 国产一区二区三区久久久 | 作爱视频免费看 | 亚洲伊人久久综合 | 日韩视频中文字幕 | 色先锋av资源中文字幕 | 国产亚洲一区二区三区在线观看 | 免费在线黄| 日韩福利在线观看 | 久草视频免费在线播放 | 精品久久久久久久久久久久久久 | 国产亚洲一区二区三区 | 亚洲成人一区二区 | 亚洲国产成人久久 | 九九福利| 国产成人高清精品免费5388 | 精品1区2区 | 国产超碰人人模人人爽人人添 | 六月丁香在线观看 | 亚洲毛片在线观看 | 久久国产精品系列 | 成年人网站免费在线观看 | 日本高清视频网站www | www.you日本| 欧美精品1区 | 色先锋av资源中文字幕 | 欧美午夜一区二区三区免费大片 | 一区二区日韩精品 | 亚洲a级| 成人老司机 | 久久久2o19精品 | 丰满少妇久久久久久久 | 国产伦精品一区二区三区四区视频 | 久久精品欧美一区二区三区不卡 | 日韩成人在线一区 | 午夜视频网站 | 中文字幕日韩欧美一区二区三区 | 欧美大片一区 | 日韩午夜免费视频 | 亚洲国产精品精华液网站 | 欧美在线二区 | 日韩欧美综合 | 免费一级毛片 | 夜夜夜久久久 | 国产精品456在线影视 | 成年人免费看 | 欧美日韩国产一区二区三区 | 日韩大片播放器 | 日日骚 | 亚洲精品视频在线播放 | 亚洲精品久久久一区二区三区 | 极品毛片 | 在线观看成人小视频 | 久久久精品一区二区 | 97视频在线 | 久久av一区二区三区亚洲 | 日本高清h色视频在线观看 日日干日日操 | 一区二区手机在线 | 精品久久久久久久久久久久 | 欧美极品视频 | 视频一区免费观看 | 日本高清视频网站 | 久久美女视频 | 欧美午夜精品久久久久久浪潮 | 91高清在线 | 亚洲久草视频 | 青青草免费在线视频 | 中文一二区 | 亚洲日本韩国欧美 | 午夜精品视频在线观看 | 中文字幕日韩专区 | 国产真实精品久久二三区 | 美女主播精品视频一二三四 | 在线日本中文字幕 | 亚洲毛片在线 | 国产精品久久久久久久久久久久久 | 精品久久99 | 日韩电影一区二区在线观看 | 久久久久久成人精品 | 日韩精品一区二 | 久久精品国产亚洲精品 | 免费看国产片在线观看 | 欧美福利在线 | 欧美日韩成人一区 | 久久久久久免费毛片精品 | 久久人人爽人人爽人人片av不 | 精品欧美一区二区在线观看视频 | 天天爽天天操 | 天天干夜夜拍 | 午夜精品久久久久久 | 999精品在线 | 麻豆亚洲| 日本一区二区不卡视频 | 国产午夜精品一区二区三区嫩草 | 欧美日韩免费一区二区三区 | 99pao成人国产永久免费视频 | 99日韩 | 色一情| 天天操天天摸天天干 | 久久91精品久久久久久9鸭 | 成人不卡在线观看 | 久草网在线视频 | 久久午夜精品 | 欧美大片在线看免费观看 | 欧美日韩中文字幕 | 91免费版在线观看 | 久久三区| 日韩精品在线播放 | 国产精品久久久久久中文字 | 女同videos另类| 欧美涩涩网 | 国产精品三级久久久久久电影 | www国产网站 | 33eee在线视频免费观看 | 日韩中文视频 | 午夜欧美一区二区三区在线播放 | 日韩在线成人 | 欧美日韩精品 | 亚洲精品aaa | 日韩中文在线 | 成人欧美一区二区三区视频xxx | 精品无码久久久久国产 | 国产96在线观看 | 精品国产乱码久久久久久1区二区 | 亚洲成人天堂 | 伊人网国产| 中文字幕日韩在线 | 亚洲综合网站 | 天天天插 | 久久亚洲天堂 | 亚洲精品一二三区 | 男女午夜网站 | 国产日韩欧美一区二区 | 欧美日韩精品久久久 | 在线视频不卡一区 | 福利三区 | 欧美一区二区三区国产精品 | 久草免费在线 | 日本精品一区二 | 天天天天天天天天操 | 国产一区免费在线观看 | 81精品国产乱码久久久久久 | 欧美一区在线视频 | 免费在线视频精品 | 日韩欧美一级在线 | 国产精品久久久久久久午夜 | 久久精品亚洲欧美日韩精品中文字幕 | 午夜一区二区三区在线观看 | 国产精品一区二区在线观看 | 亚洲综合视频 | 一区二区三区在线不卡 | 国产日韩欧美 | 国产猛男猛女超爽免费视频网站 | 亚洲精品成人 | 久久美女 | 日本精品一区 | 久久久久久亚洲精品视频 | 国产www视频 | 国产午夜视频在线观看 | 亚洲精选国产 | 国产视频福利在线观看 | 亚洲一区二区在线播放 | 日韩精品一区二区三区在线 | 91麻豆精品国产91久久久久久久久 | 国产精品日韩 | 午夜成人在线视频 | 一级在线观看 | 国产精品一码二码三码在线 | 91免费在线看 | 国产精品三级久久久久久电影 | 欧美激情综合五月色丁香小说 | av网址在线播放 | 国产女人爽到高潮免费视频 | 91精品国产综合久久久久久 | 中文字幕免费视频观看 | 欧美a在线看 | 国产综合久久 | 午夜成人免费电影 | 亚洲在线一区二区 | 中文字幕乱码亚洲精品一区 |