日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Python 第三方模块之 imgaug (图像增强)

發(fā)布時間:2023/12/20 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 第三方模块之 imgaug (图像增强) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

imgaug是一個封裝好的用來進(jìn)行圖像augmentation的python庫,支持關(guān)鍵點(diǎn)(keypoint)和bounding box一起變換。

  • 項(xiàng)目主頁: imgaug doc

1. 安裝和卸載

# 通過github安裝 sudo pip install git+https://github.com/aleju/imgaug# 通過pypi安裝 sudo pip install imgaug# 本地安裝, 下面的VERSION變成自己想要安裝的version, 例如: imgaug-0.2.5.tar.gz python setup.py sdist && sudo pip install dist/imgaug-VERSION.tar.gz# 卸載 sudo pip uninstall imgaug

2. 示例

2.1 基本使用

首先定義一個變換序列,然后直接將圖像batch傳入即可:

from imgaug import augmenters as iaaseq = iaa.Sequential([iaa.Crop(px=(0, 16)), # crop images from each side by 0 to 16px (randomly chosen)iaa.Fliplr(0.5), # 0.5 is the probability, horizontally flip 50% of the imagesiaa.GaussianBlur(sigma=(0, 3.0)) # blur images with a sigma of 0 to 3.0 ])for batch_idx in range(1000):# 'images' should be either a 4D numpy array of shape (N, height, width, channels)# or a list of 3D numpy arrays, each having shape (height, width, channels).# Grayscale images must have shape (height, width, 1) each.# All images must have numpy's dtype uint8. Values are expected to be in# range 0-255.images = load_batch(batch_idx)images_aug = seq.augment_images(images)train_on_images(images_aug)

2.2 包含常用的變換示例

import cv2 import numpy as np from imgaug import augmenters as iaa import imgaug as ia# 定義一個lambda表達(dá)式,以p=0.5的概率去執(zhí)行sometimes傳遞的圖像增強(qiáng) sometimes = lambda aug: iaa.Sometimes(0.5, aug) # 建立一個名為seq的實(shí)例,定義增強(qiáng)方法,用于增強(qiáng) aug = iaa.Sequential([iaa.Fliplr(0.5), # 對50%的圖像進(jìn)行鏡像翻轉(zhuǎn)iaa.Flipud(0.2), # 對20%的圖像做左右翻轉(zhuǎn)sometimes(iaa.Crop(percent=(0, 0.1))),# 這里沿襲我們上面提到的sometimes,對隨機(jī)的一部分圖像做crop操作# crop的幅度為0到10%# 或者 sometimes(iaa.Crop(px=(0, 16))),隨機(jī)在距離邊緣的0-16像素中選擇crop范圍# 對一部分圖像做仿射變換sometimes(iaa.Affine(scale={"x": (0.8, 1.2), "y": (0.8, 1.2)}, # 圖像縮放為80%到120%之間translate_percent={"x": (-0.2, 0.2), "y": (-0.2, 0.2)}, # 平移±20%之間rotate=(-45, 45), # 旋轉(zhuǎn)±45度之間shear=(-16, 16), # 剪切變換±16度,(矩形變平行四邊形)order=[0, 1], # 使用最鄰近差值或者雙線性差值cval=(0, 255), # 全白全黑填充mode=ia.ALL # 定義填充圖像外區(qū)域的方法)),# 使用下面的0個到5個之間的方法去增強(qiáng)圖像。注意SomeOf的用法iaa.SomeOf((0, 5),[# 將部分圖像進(jìn)行超像素的表示。o(╥﹏╥)o用超像素增強(qiáng)作者還是第一次見,比較孤陋寡聞sometimes(iaa.Superpixels(p_replace=(0, 1.0),n_segments=(20, 200))),# 用高斯模糊,均值模糊,中值模糊中的一種增強(qiáng)。注意OneOf的用法iaa.OneOf([iaa.GaussianBlur((0, 3.0)),iaa.AverageBlur(k=(2, 7)), # 核大小2~7之間,k=((5, 7), (1, 3))時,核高度5~7,寬度1~3iaa.MedianBlur(k=(3, 11)),]),# 銳化處理iaa.Sharpen(alpha=(0, 1.0), lightness=(0.75, 1.5)),# 浮雕效果iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)),# 邊緣檢測,將檢測到的賦值0或者255然后疊在原圖上sometimes(iaa.OneOf([iaa.EdgeDetect(alpha=(0, 0.7)),iaa.DirectedEdgeDetect(alpha=(0, 0.7), direction=(0.0, 1.0)),])),# 加入高斯噪聲iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.05 * 255), per_channel=0.5),# 將1%到10%的像素設(shè)置為黑色# 或者將3%到15%的像素用原圖大小2%到5%的黑色方塊覆蓋iaa.OneOf([iaa.Dropout((0.01, 0.1), per_channel=0.5),iaa.CoarseDropout((0.03, 0.15), size_percent=(0.02, 0.05),per_channel=0.2),]),# 5%的概率反轉(zhuǎn)像素的強(qiáng)度,即原來的強(qiáng)度為v那么現(xiàn)在的就是255-viaa.Invert(0.05, per_channel=True),# 每個像素隨機(jī)加減-10到10之間的數(shù)iaa.Add((-10, 10), per_channel=0.5),# 像素乘上0.5或者1.5之間的數(shù)字.iaa.Multiply((0.5, 1.5), per_channel=0.5),# 將整個圖像的對比度變?yōu)樵瓉淼囊话牖蛘叨秈aa.ContrastNormalization((0.5, 2.0), per_channel=0.5),# 將RGB變成灰度圖然后乘alpha加在原圖上iaa.Grayscale(alpha=(0.0, 1.0)),# 把像素移動到周圍的地方。這個方法在mnist數(shù)據(jù)集增強(qiáng)中有見到sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)),# 扭曲圖像的局部區(qū)域sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05)))],random_order=True # 隨機(jī)的順序把這些操作用在圖像上)],random_order=True # 隨機(jī)的順序把這些操作用在圖像上 )# 數(shù)據(jù)增強(qiáng),針對單張圖片 image = cv2.imread('1.jpg', 0) h = image.shape[0] w = image.shape[1] enhance_num = 32aug_example_img = aug.augment_image(image=image) print(image.shape, aug_example_img.shape)# 生成一個圖片列表example_images = np.array([image for _ in range(enhance_num)],dtype=np.uint8 ) aug_imgs = aug(images=example_images) # images_aug = aug.augment_images(images=img_array) # 顯示圖片 ia.show_grid(aug_imgs, rows=4, cols=8) # 保存圖片 for i in range(aug_imgs.shape[0]):img = aug_imgs[i]cv2.imwrite("aug_%d.jpg" % i, img)# 保存為一張圖片 img_array = np.array([image] * enhance_num, dtype=np.uint8) write_img = np.zeros(shape=(h, (w+10) * enhance_num, 3), dtype=np.uint8) for j, item in enumerate(aug_imgs):write_img[:, j * (w + 10): j * (w + 10) + w, :] = item

3 Augmenters常用函數(shù)

先導(dǎo)入Augmenters類

from imgaug import augmenters as iaa

3.1 iaa.Sequential()

產(chǎn)生一個處理圖片的 Sequential 函數(shù)原型:

from imgaug import augmenters as iaa iaa.Sequential(children=None,random_order=False,name=None,deterministic=False,random_state=None)

參數(shù):

  • children: 想要應(yīng)用在圖像上的Augmenter或者Augmenter集合。默認(rèn)None
  • random_order: bool類型, 默認(rèn)False。是否對每個batch的圖片應(yīng)用不同順序的Augmenter list。當(dāng)設(shè)置為True時,不同batch之間圖片的處理順序都會不一樣,但是同一個batch內(nèi)順序相同。
  • deterministic: bool類型, 默認(rèn)False。

3.2 iaa.someOf()

將Augmenter中的部分變換應(yīng)用在圖片處理上,而不是應(yīng)用所有的Augmenter。例如:可以定義20種變換,但每次只選擇其中的5個。但是不支持固定選擇某一個Augmenter。

函數(shù)原型:

from imgaug import augmenters as iaa iaa.SomeOf(n=None,children=None,random_order=False,name=None,deterministic=False,random_state=None)

參數(shù):

  • n: 從總的Augmenters中選擇多少個。可以是一個int, tuple, list或者隨機(jī)值。
  • random_order: 是否每次順序不一樣。

例子:

# 每次選擇一個翻轉(zhuǎn)方式 seq = iaa.SomeOf(1, [iaa.Fliplr(1.0),iaa.Flipud(1.0)]) imgs_aug = seq.augment_images(imgs)# 每次使用1~3個Augmenter來處理圖片,每個batch中的Augmenters順序一樣。 seq = iaa.SomeOf((1, 3), [iaa.Fliplr(1.0),iaa.Flipud(1.0),iaa.GaussianBlur(1.0)]) imgs_aug = seq.augment_images(imgs)# 每次使用1到多個Augmenter來處理圖片,每個batch中的Augmenters順序不一樣。 seq = iaa.SomeOf((1, None), [iaa.Fliplr(1.0),iaa.Flipud(1.0),iaa.GaussianBlur(1.0)], random_order=True) imgs_aug = seq.augment_images(imgs)

3.3 iaa.OneOf()

每次從一系列Augmenters中選擇一個來變換。

iaa.OneOf(children,name=None,deterministic=False,random_state=None)

參數(shù)含義與上面一樣。

3.4 iaa.Sometimes()

對batch中的一部分圖片應(yīng)用一部分Augmenters,剩下的圖片應(yīng)用另外的Augmenters。

iaa.Sometimes(p=0.5,then_list=None,else_list=None,name=None,deterministic=False,random_state=None)
  • p: float。多大比例的圖片會被 Augmente。
  • then_list: Augmenter集合。p概率的圖片進(jìn)行變換的Augmenters。
  • else_list: 1-p概率的圖片會被進(jìn)行變換的Augmenters。注意變換的圖片應(yīng)用的Augmenter只能是then_list或者else_list中的一個。

3.5 iaa.WithColorspace()

在某個特定的顏色空間對圖像進(jìn)行變換。即:先將圖片從一個顏色空間變換到另一個顏色空間,然后在另一個顏色空間中對圖像進(jìn)行變換,最后再變換回原來的顏色空間。

iaa.WithColorspace(to_colorspace,from_colorspace='RGB',children=None,name=None,deterministic=False,random_state=None)
  • to_colorspace: 要變換的顏色空間。有以下選擇:RGB, BGR, GRAY, CIE, YCrCb, HSV, HLS, Lab, Luv
  • from_colorspace: 原來的顏色空間, 默認(rèn)RGB。
  • children: 要執(zhí)行的變換。
# 先將圖片從RGB變換到HSV,然后將H值增加10,然后再變換回RGB。 aug = iaa.WithColorspace(to_colorspace="HSV", from_colorspace="RGB",children=iaa.WithChannels(0, iaa.Add(10)))

3.6 iaa.WithChannels()

從圖片中挑選出一個Channel來進(jìn)行變換,變換完了之后再將該channel merge回去。

iaa.WithChannels(channels=None,children=None,name=None,deterministic=False,random_state=None)

參數(shù):

  • channels: int或者int list。哪些channel要被用來變換。
  • children: channel被選出來之后要進(jìn)行哪些變換。

3.7 iaa.Noop()

不進(jìn)行任何變換。某些情況下只想使用一個Augmenter作為占位符,這樣可以繼續(xù)調(diào)用augment_image()函數(shù),但實(shí)際不作變換。例如進(jìn)行測試的時候可以使用這個。

3.8 iaa.Lambda()

自定義一些變換函數(shù)。

iaa.Lambda(func_images,func_keypoints,name=None,deterministic=False,random_state=None)

參數(shù):

  • func_images: 對每一個image調(diào)用此函數(shù)。該函數(shù)必須返回變換后的圖片。該函數(shù)的形式為:
function(images, random_state, parents, hooks)
  • func_keypoints: 對每個圖像的關(guān)鍵點(diǎn)進(jìn)行變換的函數(shù)。該函數(shù)返回變換后的keypoint。該函數(shù)形式為:
function(keypoints_on_images, random_state, parents, hooks)

例子:

def func_images(images, random_state, parents, hooks):images[:, ::2, :, :] = 0return imagesdef func_keypoints(keypoints_on_images, random_state, parents, hooks):return keypoints_on_imagesaug = iaa.Lambda(func_images=func_images,func_keypoints=func_keypoints )

將每張圖片沒隔兩行的像素點(diǎn)變成黑色的條帶,關(guān)鍵點(diǎn)保留。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-1v7ziLsX-1621334062341)(/img/imgaug/1621331938-3d7ee6949c9fc3215207fc7170f29b20.jpg)]

3.9 iaa.AssertShape()

assert要變換的圖片和keypoint的shape。如果不滿足就拋出異常。

iaa.AssertShape(shape,check_images=True,check_keypoints=True,name=None,deterministic=False,random_state=None)

參數(shù):

  • shape: 元組,通常形式為(N, H, W, C)。元組中每個元素的值可以為:None, int, 兩個int類型的tuple或者一個int類型的list。如果是None,表示所有值都可以接受。如果是int,則只有對應(yīng)的位置是該值才會被接受。如果是int類型的tuple,例如(a,b),則對應(yīng)位置的值必須是a<=x
# 檢查輸入的每張圖片是否是32×32×3的,如果是則執(zhí)行水平翻轉(zhuǎn),否則報錯 seq = iaa.Sequential([iaa.AssertShape((None, 32, 32, 3)),iaa.Fliplr(0.5) ])# 先檢查圖片的高度是否是32<=H<64, 寬度是否是32, channel是否是1或者3。如果都滿足則執(zhí)行水平翻轉(zhuǎn),否則報錯。 seq = iaa.Sequential([iaa.AssertShape((None, (32, 64), 32, [1, 3])),iaa.Fliplr(0.5) ])

3.10 iaa.Scale()

將圖像縮放到固定大小。

iaa.Scale(size,interpolation='cubic',name=None,deterministic=False,random_state=None)

參數(shù):

  • size: 字符串”keep”,此時保持圖像原大小不坐縮放。如果是一個整數(shù)n,則縮放成(n, n)。如果是一個float v,則每張圖片會被縮放成(H*v, W*v),此時每張圖像大小仍然不一樣。如果是一個tuple類型(a, b), 如果a、b中至少有一個小數(shù),則從[a,b]中挑選一個數(shù)作為縮放比例。如果a、b都是整數(shù),則從[a,b]中挑選一個整數(shù)作為縮放后的大小。如果是1個list,則list中的數(shù)要么全是整數(shù),要么全是小數(shù)(不能混用)。如果是一個dict類型,則該dict必須有兩個key: height和width。每個key的值仍然可以按照上面的方法選取。此外, key的值還可以是”keep-aspect-ratio”, 表示按照比例縮放。
  • interpolation: 縮放方法。如果是All, 則會隨機(jī)從下面挑選一個: nearest、linear、area、cubic,注意每張圖片可能不一樣。如果是int,則應(yīng)該是下面的一種:cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_AREA,cv2.INTER_CUBIC。如果是string,則該種方法會被一直使用,必須是下面的一種: nearest, linear, area, cubic。如果是int list或者string list, 則每張圖片會從中隨機(jī)選取一個。

3.11 iaa.CropAndPad()

截取(crop)或者填充(pad),填充時,被填充區(qū)域?yàn)楹谏?/p> iaa.CropAndPad(px=None,percent=None,pad_mode='constant',pad_cval=0,keep_size=True,sample_independently=True,name=None,deterministic=False,random_state=None)

參數(shù):

  • px: 想要crop(negative values)的或者pad(positive values)的像素點(diǎn)。注意與percent不能同時存在。如果是None, pixel級別的crop不會被使用。int或者int list與上面相同。如果是一個4個元素的tuple,那么4個元素分別代表(top, right, bottom, left),每個元素可以是int或者int tuple或者int list。
  • percent:按比例來crop或者pad, 與px相同。但是兩者不能同時存在。
  • pad_mode: 填充方式。可以是All, string, string list。可選的填充方式有: constant, edge, linear_ramp, maximum, median, minimum, reflect, symmetric, wrap。具體含義可查numpy文檔。
  • pad_cval: float、int、float tuple、int tuple、float list、int list。當(dāng)pad_mode=constant的時候選擇填充的值。
  • keep_size: bool類型。經(jīng)過crop后,圖像大小會改變。如果該值設(shè)置為1,則在crop或者pad后再縮放成原來的大小。
  • sample_independently : bool類型。如果設(shè)置為False,則每次從px或者percent中選出來的值會作用在四個方位。

3.12 iaa.Pad()

與iaa.CropAndPad()相同,只接受positive values。

3.13 iaa.Crop()

與iaa.CropAndPad()相同,只接受negative values。

3.14 iaa.Fliplr()

水平鏡面翻轉(zhuǎn)。

iaa.Fliplr(p=0, name=None, deterministic=False, random_state=None)

參數(shù):

  • p: int或者float,每張圖片唄翻轉(zhuǎn)的概率

3.15 Flipud()

上下翻轉(zhuǎn),與上面相同。

3.16 iaa.ChangeColorspace()

改變圖像空間。

iaa.ChangeColorspace(to_colorspace, from_colorspace='RGB', alpha=1.0, name=None, deterministic=False, random_state=None)

參數(shù):

  • to_colorspace: 見上。
  • from_colorspace: 見上。
  • alpha: 覆蓋舊的顏色空間時,新顏色空間的Alpha值。為int, float, int tuple, float tuple。

3.17 iaa.Grayscale()

變成灰度圖。

iaa.Grayscale(alpha=0, from_colorspace='RGB', name=None, deterministic=False, random_state=None)

參數(shù):

  • alpha: 覆蓋舊的顏色空間時,新顏色空間的Alpha值。

3.18 iaa.GaussianBlur()

高斯擾動。

iaa.GaussianBlur(sigma=0, name=None, deterministic=False, random_state=None)

參數(shù):

  • sigma: 高斯變換的標(biāo)準(zhǔn)差。可為float, float tuple。常見的有0,不擾動。3,強(qiáng)擾動。

3.19 iaa.AverageBlur()

從最鄰近像素中取均值來擾動。

iaa.AverageBlur(k=1, name=None, deterministic=False, random_state=None)

參數(shù):

  • k:窗口大小。可為int, int tuple。當(dāng)為int tuple時,如果每個元素也是tuple,每個元素分別作為height和width,窗口大小不一致。

3.20 iaa.MedianBlur()

通過最近鄰中位數(shù)來擾動。

iaa.MedianBlur(k=1, name=None, deterministic=False, random_state=None)

與上面相同。

3.21 iaa.Convolve()

對圖像使用卷積。

iaa.Convolve(matrix=None, name=None, deterministic=False, random_state=None)
  • matrix: 卷積矩陣。

3.22 iaa.Sharpen()

銳化。

iaa.Sharpen(alpha=0, lightness=1, name=None, deterministic=False, random_state=None)

3.23 iaa.Emboss()

浮雕效果。

iaa.Emboss(alpha=0, strength=1, name=None, deterministic=False, random_state=None)

3.24 iaa.EdgeDetect()

邊緣檢測。

iaa.EdgeDetect(alpha=0, name=None, deterministic=False, random_state=None)

3.25 iaa.DirectedEdgeDetect()

特定方向的邊緣檢測。

iaa.DirectedEdgeDetect(alpha=0, direction=(0.0, 1.0), name=None, deterministic=False, random_state=None)

3.26 iaa.Add()

隨機(jī)加上一個值。

iaa.Add(value=0, per_channel=False, name=None, deterministic=False, random_state=None)

3.27 iaa.AddElementwise()

按像素加。

iaa.AddElementwise(value=0, per_channel=False, name=None, deterministic=False, random_state=None)

3.28 iaa.AdditiveGaussianNoise()

添加高斯噪聲。

iaa.AdditiveGaussianNoise(loc=0, scale=0, per_channel=False, name=None, deterministic=False, random_state=None)

3.29 iaa.Multiply()

給圖像中的每個像素點(diǎn)乘一個值使得圖片更亮或者更暗。

iaa.Multiply(mul=1.0, per_channel=False, name=None, deterministic=False, random_state=None)

3.30 iaa.MultiplyElementwise()

按像素值乘。

iaa.MultiplyElementwise(self, mul=1.0, per_channel=False, name=None, deterministic=False, random_state=None)

3.31 iaa.Dropout()

隨機(jī)去掉一些像素點(diǎn), 即把這些像素點(diǎn)變成0。

iaa.Dropout(p=0, per_channel=False, name=None, deterministic=False, random_state=None)

3.32 iaa.CoarseDropout()

將矩形框的值設(shè)置為0。

iaa.CoarseDropout(p=0, size_px=None, size_percent=None, per_channel=False, min_size=4, name=None, deterministic=False, random_state=None)

3.33 iaa.Invert()

將每個像素值p變成255-p。

iaa.Invert(p=0, per_channel=False, min_value=0, max_value=255, name=None, deterministic=False, random_state=None)

3.34 iaa.ContrastNormalization()

改變圖像的對比度。

iaa.ContrastNormalization(alpha=1.0, per_channel=False, name=None, deterministic=False, random_state=None)

3.35 iaa.Affine()

仿射變換。包含:平移(Translation)、旋轉(zhuǎn)(Rotation)、放縮(zoom)、錯切(shear)。仿設(shè)變換通常會產(chǎn)生一些新的像素點(diǎn),我們需要指定這些新的像素點(diǎn)的生成方法,這種指定通過設(shè)置cval和mode兩個參數(shù)來實(shí)現(xiàn)。參數(shù)order用來設(shè)置插值方法。

iaa.Affine(scale=1.0,translate_percent=None,translate_px=None,rotate=0.0,shear=0.0,order=1,cval=0,mode='constant',name=None, deterministic=False, random_state=None)

參數(shù):

  • scale: 圖像縮放因子。1表示不縮放,0.5表示縮小到原來的50%。此參數(shù)可以是float, float tuple, dict。如果是float, 則所有圖片按照這種比例縮放。如果是float tuple, 則隨機(jī)選取一個值來進(jìn)行縮放,此時x-axis和y-axis的縮放比例相同。如果是一個dict,則應(yīng)該有兩個key:x, y,每個x或y的值都可以是float, float tuple,此時x-axis和y-axis的縮放比例不一樣。
  • translate_percent: 平移比例,0表示不平移,0.5表示平移50%。可以是float, float tuple, dict,具體含義與scale相同。用正負(fù)來表示平移方向。
  • translate_px: 按照像素來進(jìn)行平移。可以是int, int tuple, dict,具體含義與translate_percent相同。
  • rotate: 平移角度,0~360度之間,正負(fù)也可以表示方向。可以為float, float tuple。
  • shear: 錯切的程度,0~360度之間,正負(fù)表示方向。可以為float, int, float tuple, int tuple。
  • order: 插值順序,與skimage中定義相同。下面0和1方法快,3比較慢,4、5特別慢。可以是int, int list, ia.ALL。如果是ia.ALL,則每次從所有的插值方法中隨機(jī)選取。
    • 0:最鄰近插值。
    • 1: 雙線性插值(默認(rèn))。
    • 2: 雙二次插值(不推薦)。
    • 3:雙三次插值。
    • 4: Bi-quartic。
    • 5:Bi-quintic。
  • cval: 當(dāng)平移后使用常量填充的時候指定填充的常量值,只有在mode=constant的時候才會生效。可以是int, float, tuple, ia.ALL。如果是ia.ALL,則會從[0,255]之間隨機(jī)選取一個值填充。
  • mode: 采用何種方式填充經(jīng)過變換后空白的像素點(diǎn)。可以是string, string list, ia.ALL。基本用法與上面相同。其中字符串的選取范圍是:
    • constant: 采用一個常量填充。
    • edge: 邊緣填充。
    • symmetric: 鏡面對稱填充。
    • reflect: Pads with the reflection of the vector mirrored on the first and last values of the vector along each axis.
    • wrap: Pads with the wrap of the vector along the axis. The first values are used to pad the end and the end values are used to pad the beginning.

3.36 iaa.PiecewiseAffine()

隨機(jī)放置一些規(guī)則的網(wǎng)格點(diǎn)然后移動這些點(diǎn)的周圍的像素。這回導(dǎo)致局部的扭曲。

iaa.PiecewiseAffine(scale=0,nb_rows=4,nb_cols=4,order=1,cval=0,mode='constant',name=None, deterministic=False, random_state=None)

3.37 iaa.ElasticTransformation()

通過移動局部像素來變換。

iaa.ElasticTransformation(alpha=0,sigma=0,name=None,deterministic=False,random_state=None)

4. keypoint變換

imgaug支持在圖像變換的同時變換圖像中的關(guān)鍵點(diǎn)。例子如下:

import imgaug as ia from imgaug import augmenters as iaaiaa.seed(1)image=ia.quokka(size=(256,256))# 定義4個關(guān)鍵點(diǎn) keypoints=ia.KeypointsOnImage([ia.Keypoint(x=65, y=100),ia.Keypoint(x=75, y=200),ia.Keypoint(x=100, y=100),ia.Keypoint(x=200, y=80) ], shape=image.shape)# 定義一個變換序列 seq=iaa.Sequential([iaa.Multiply((1.2, 1.5)), # 改變亮度,不影響關(guān)鍵點(diǎn)iaa.Affine(rotate=10,scale=(0.5, 0.7)) # 旋轉(zhuǎn)10度然后縮放,會影響關(guān)鍵點(diǎn) ])# 固定變換序列,之后就可以先變換圖像然后變換關(guān)鍵點(diǎn),這樣可以保證兩次的變換完全相同。 # 如果調(diào)用次函數(shù),需要在每次batch的時候都調(diào)用一次,否則不同的batch執(zhí)行相同的變換。 seq_det = seq.to_deterministic()# 轉(zhuǎn)換成list或者batch來變換。由于只有一張圖片, 因此用[0]來取出該圖和關(guān)鍵點(diǎn)。 image_aug = seq_det.augment_images([image])[0] keypoints_aug = seq_det.augment_keypoints([keypoints])[0]# print coordinates before/after augmentation (see below) # use after.x_int and after.y_int to get rounded integer coordinates for i in range(len(keypoints.keypoints)):before = keypoints.keypoints[i]after = keypoints_aug.keypoints[i]print("Keypoint %d: (%.8f, %.8f) -> (%.8f, %.8f)" % (i, before.x, before.y, after.x, after.y))# 將關(guān)鍵點(diǎn)畫在圖片上。 # image with keypoints before/after augmentation (shown below) image_before = keypoints.draw_on_image(image, size=7) image_after = keypoints_aug.draw_on_image(image_aug, size=7)fig, axes = plt.subplots(2, 1, figsize=(20, 15)) plt.subplots_adjust(left=0.2, bottom=0.2, right=0.8, top=0.8, hspace=0.3, wspace=0.0) axes[0].set_title("image before") axes[0].imshow(image_before) axes[1].set_title("image after augmentation") axes[1].imshow(image_after)plt.show()

5. Bounding Boxes變換

imgaug在圖像變換的同時變換圖像中的bound box。bounding的支持包括:

  • 將bounding box封裝成對象
  • 對bounding box進(jìn)行變換
  • 將bounding box畫在圖像上
  • 移動bounding box的位置,將變換后的bounding box映射到圖像上,計算bounding box的IoU。

5.1 基本變換

例子如下:

import imgaug as ia from imgaug import augmenters as iaaia.seed(1)image = ia.quokka(size=(256, 256))# 定義2個bounding box bbs = ia.BoundingBoxesOnImage([ia.BoundingBox(x1=65, y1=100, x2=200, y2=150),ia.BoundingBox(x1=150, y1=80, x2=200, y2=130) ], shape=image.shape)seq = iaa.Sequential([iaa.Multiply((1.2, 1.5)), # 改變亮度, 不影響bounding boxiaa.Affine(translate_px={"x": 40, "y": 60},scale=(0.5, 0.7)) # 平移后縮放,會影響bounding box ])# 固定變換 seq_det = seq.to_deterministic()# 變換圖像和bounding box image_aug = seq_det.augment_images([image])[0] bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]# 打印坐標(biāo) # use .x1_int, .y_int, ... to get integer coordinates for i in range(len(bbs.bounding_boxes)):before = bbs.bounding_boxes[i]after = bbs_aug.bounding_boxes[i]print("BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)" % (i,before.x1, before.y1, before.x2, before.y2,after.x1, after.y1, after.x2, after.y2)) # 輸出 # BB 0: (65.0000, 100.0000, 200.0000, 150.0000) -> (130.7524, 171.3311, 210.1272, 200.7291) # BB 1: (150.0000, 80.0000, 200.0000, 130.0000) -> (180.7291, 159.5718, 210.1272, 188.9699)# image with BBs before/after augmentation (shown below) image_before = bbs.draw_on_image(image, thickness=2) image_after = bbs_aug.draw_on_image(image_aug, thickness=2, color=[0, 0, 255])fig, axes = plt.subplots(2, 1, figsize=(20, 15)) plt.subplots_adjust(left=0.2, bottom=0.2, right=0.8, top=0.8, hspace=0.3, wspace=0.0) axes[0].set_title("image before") axes[0].imshow(image_before) axes[1].set_title("image after augmentation") axes[1].imshow(image_after)plt.show()

5.2 平移bounding box

調(diào)用shift函數(shù)即可。

import imgaug as ia from imgaug import augmenters as iaaia.seed(1)# Define image and two bounding boxes image = ia.quokka(size=(256, 256)) bbs = ia.BoundingBoxesOnImage([ia.BoundingBox(x1=25, x2=75, y1=25, y2=75),ia.BoundingBox(x1=100, x2=150, y1=25, y2=75) ], shape=image.shape)# 兩個box先右移動25像素,然后第2個box再向下移動25像素 bbs_shifted = bbs.shift(left=25) bbs_shifted.bounding_boxes[1] = bbs_shifted.bounding_boxes[1].shift(top=25)# Draw images before/after moving BBs image = bbs.draw_on_image(image, color=[0, 255, 0], thickness=2, alpha=0.75) image = bbs_shifted.draw_on_image(image, color=[0, 0, 255], thickness=2, alpha=0.75)

得到的圖像為:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-eWwQmj92-1621334062344)(/img/imgaug/1621331938-01a26f5d29055cb83709b34efa0802eb.jpg)]

5.3 圖像有縮放時bounding box的映射

調(diào)用on函數(shù)即可。

import imgaug as ia from imgaug import augmenters as iaaia.seed(1)# Define image with two bounding boxes image = ia.quokka(size=(256, 256)) bbs = ia.BoundingBoxesOnImage([ia.BoundingBox(x1=25, x2=75, y1=25, y2=75),ia.BoundingBox(x1=100, x2=150, y1=25, y2=75) ], shape=image.shape)# Rescale image and bounding boxes image_rescaled = ia.imresize_single_image(image, (512, 512)) bbs_rescaled = bbs.on(image_rescaled)# Draw image before/after rescaling and with rescaled bounding boxes image_bbs = bbs.draw_on_image(image, thickness=2) image_rescaled_bbs = bbs_rescaled.draw_on_image(image_rescaled, thickness=2)

5.4 計算Intersections, Unions和IoU

import imgaug as ia from imgaug import augmenters as iaa import numpy as npia.seed(1)# Define image with two bounding boxes. image = ia.quokka(size=(256, 256)) bb1 = ia.BoundingBox(x1=50, x2=100, y1=25, y2=75) bb2 = ia.BoundingBox(x1=75, x2=125, y1=50, y2=100)# Compute intersection, union and IoU value # Intersection and union are both bounding boxes. They are here # decreased/increased in size purely for better visualization. bb_inters = bb1.intersection(bb2).extend(all_sides=-1) bb_union = bb1.union(bb2).extend(all_sides=2) iou = bb1.iou(bb2)# Draw bounding boxes, intersection, union and IoU value on image. image_bbs = np.copy(image) image_bbs = bb1.draw_on_image(image_bbs, thickness=2, color=[0, 255, 0]) image_bbs = bb2.draw_on_image(image_bbs, thickness=2, color=[0, 255, 0]) image_bbs = bb_inters.draw_on_image(image_bbs, thickness=2, color=[255, 0, 0]) image_bbs = bb_union.draw_on_image(image_bbs, thickness=2, color=[0, 0, 255]) image_bbs = ia.draw_text(image_bbs, text="IoU=%.2f" % (iou,),x=bb_union.x2+10, y=bb_union.y1+bb_union.height//2,color=[255, 255, 255], size=13 )

得到的圖像如下:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Ez6LnQ9r-1621334062346)(/img/imgaug/1621331938-fd161c36361e9c2e8f1d4c8a9f37b22d.jpg)]

6. Stochastic Parameter

在做變換的時候,我們希望每張圖片的變換都不一樣,通過參數(shù)隨機(jī)化選取可以實(shí)現(xiàn)。但是想要復(fù)現(xiàn)之前的變換,需要通過determinism來實(shí)現(xiàn),比較繁瑣。為了避免這種情況,使用Stochastic Parameters來實(shí)現(xiàn)。這個變量通常是一個抽象的概率分布,例如正太分布、均勻分布等等。通常所有的augmenter都能接受這個參數(shù),這樣就很方便控制變量范圍。他們都可以和determinism結(jié)合。

例子:

from imgaug import augmenters as iaa from imgaug import parameters as iapseq = iaa.Sequential([iaa.GaussianBlur(sigma=iap.Uniform(0.0, 1.0)),iaa.ContrastNormalization(iap.Choice([1.0, 1.5, 3.0],p=[0.5, 0.3, 0.2])),iaa.Affine(rotate=iap.Normal(0.0, 30),translate_px=iap.RandomSign(iap.Poisson(3))),iaa.AddElementwise(iap.Discretize((iap.Beta(0.5, 0.5) * 2 - 1.0) * 64)),iaa.Multiply(iap.Positive(iap.Normal(0.0, 0.1)) + 1.0) ])

所有可用的概率分布有:

6.1 正態(tài)分布

Normal(loc, scale): 均值為loc,標(biāo)準(zhǔn)差scale。

from imgaug import parameters as iap params = [iap.Normal(0, 1),iap.Normal(5, 3),iap.Normal(iap.Choice([-3, 3]), 1),iap.Normal(iap.Uniform(-3, 3), 1) ] iap.show_distributions_grid(params)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Y99ms8sd-1621334062356)(/img/imgaug/1621331938-dbbb6ac5efb90a1424b5781513c72330.jpg)]

6.2 拉普拉斯分布

Laplace(loc, scale): 峰值loc, 寬度scale:

from imgaug import parameters as iap params = [iap.Laplace(0, 1),iap.Laplace(5, 3),iap.Laplace(iap.Choice([-3, 3]), 1),iap.Laplace(iap.Uniform(-3, 3), 1) ] iap.show_distributions_grid(params)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-JQmL3Fl2-1621334062358)(/img/imgaug/1621331938-7e1866ebd7cde4503ac363bec5a07cce.jpg)]

6.3 其他連續(xù)概率分布還有:

  • 卡方分布(ChiSquare)
  • 韋伯分布(Weibull)
  • 均勻分布(Uniform )
  • Beta分布

6.4 離散概率分布

  • 二項(xiàng)分布(Binomial)
  • 離散均勻分布(DiscreteUniform)
  • 泊松分布(Poisson distribution)

6.5 對分布的數(shù)學(xué)運(yùn)算

imgaug支持隨機(jī)參數(shù)的算術(shù)運(yùn)算。 允許修改從分布中抽取的值或者將幾個分布相互組合。支持的操作有:

  • Add
  • Subtract
  • Multiply
  • Divide
  • Power

6.6 特殊參數(shù)

支持的操作有:

  • Deterministic
  • Choice
  • Clip
  • Discretize
  • Absolute
  • RandomSign
  • ForceSign
  • Positive
  • Negative
  • FromLowerResolution

具體含義和用法見文檔。

7. Blending/Overlaying images

augment會直接改變圖片而把原圖舍棄掉了。有時我們需要改變圖像的局部,或者將原來的圖片跟新變換的圖片結(jié)合起來。這可以通過給變換前后的圖片配上一定的權(quán)重(αα參數(shù))或者使用一個pixel-wise的mask。
一個例子如下:

# First row iaa.Alpha((0.0, 1.0),first=iaa.MedianBlur(11),per_channel=True )# Second row iaa.SimplexNoiseAlpha(first=iaa.EdgeDetect(1.0),per_channel=False )# Third row iaa.SimplexNoiseAlpha(first=iaa.EdgeDetect(1.0),second=iaa.ContrastNormalization((0.5, 2.0)),per_channel=0.5 )# Forth row iaa.FrequencyNoiseAlpha(first=iaa.Affine(rotate=(-10, 10),translate_px={"x": (-4, 4), "y": (-4, 4)}),second=iaa.AddToHueAndSaturation((-40, 40)),per_channel=0.5 )# Fifth row iaa.SimplexNoiseAlpha(first=iaa.SimplexNoiseAlpha(first=iaa.EdgeDetect(1.0),second=iaa.ContrastNormalization((0.5, 2.0)),per_channel=True),second=iaa.FrequencyNoiseAlpha(exponent=(-2.5, -1.0),first=iaa.Affine(rotate=(-10, 10),translate_px={"x": (-4, 4), "y": (-4, 4)}),second=iaa.AddToHueAndSaturation((-40, 40)),per_channel=True),per_channel=True,aggregation_method="max",sigmoid=False )

得到的圖片為:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-En1fXAVL-1621334062359)(/img/imgaug/1621331938-ec2ecb79a733cfd85deafb1086e2e6b9.png)]
具體用法見文檔。

總結(jié)

以上是生活随笔為你收集整理的Python 第三方模块之 imgaug (图像增强)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

精品国产电影一区二区 | 超碰人人国产 | 久久精品国产精品 | 91麻豆精品国产91久久久久 | 98精品国产自产在线观看 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 91一区一区三区 | 亚洲综合色站 | 人人澡人 | 欧洲激情在线 | 99精品免费久久久久久久久日本 | 国内精品视频久久 | 国产成人综合精品 | 手机av观看| 玖玖玖在线观看 | 香蕉视频在线免费看 | 精品免费观看视频 | 国产精品一区二区三区在线 | 午夜av不卡 | 天堂素人在线 | 欧美成人精品三级在线观看播放 | 在线观看涩涩 | 亚洲成av人影院 | 中文字幕大全 | 激情欧美日韩一区二区 | 99精品视频免费观看 | 精品国产一区二区三区蜜臀 | 国产精品免费观看视频 | 久久免费国产精品1 | 欧美日韩啪啪 | 97碰碰精品嫩模在线播放 | 精品免费99久久 | 欧美成人xxxxxxxx| 国产精品美女久久久免费 | 99精品免费视频 | 亚洲毛片一区二区三区 | www.午夜色.com | 国产精品视频永久免费播放 | 国产精品久久久久高潮 | 欧美精品视 | av女优中文字幕在线观看 | 免费视频二区 | 亚洲综合在线播放 | 国产精品不卡一区 | 91网站免费观看 | av网址在线播放 | 91中文字幕在线播放 | 日韩av高潮 | 国产精品久久久久久婷婷天堂 | 狠狠狠狠狠狠狠狠 | 国产啊v在线观看 | 欧美精品免费视频 | 久久午夜网| 中文字幕 国产专区 | 午夜视频在线观看欧美 | 日韩在线视频一区 | 国产精品久久久久久妇 | 久久综合加勒比 | 91香蕉久久 | 久久成人视屏 | 国内毛片毛片 | 四虎永久免费 | 成人网大片 | 亚洲一区二区视频在线播放 | 天天射天天爱天天干 | 伊人影院得得 | 丁香 久久 综合 | 国产成人精品免费在线观看 | 日韩狠狠操 | av在线播放免费 | 亚洲伊人成综合网 | 日本最新高清不卡中文字幕 | 成人精品999 | 偷拍福利视频一区二区三区 | 88av视频 | 精品96久久久久久中文字幕无 | 超碰97成人| 国产精品一区在线观看你懂的 | 在线观看中文字幕网站 | 黄色一级大片免费看 | 日本中文不卡 | 欧美精品你懂的 | 毛片美女网站 | 日日躁你夜夜躁你av蜜 | 久久兔费看a级 | 久久久天堂 | 午夜av在线免费 | 日日夜夜精品视频天天综合网 | japanesexxxxfreehd乱熟 | 久精品视频在线 | 欧美a免费 | 久久久久久久久久久电影 | 在线三级播放 | 99成人免费视频 | 久久影院午夜论 | 日韩在线观看你懂得 | 91在线色 | 久久99热国产 | 国产在线观看国语版免费 | 在线视频免费观看 | 国产91对白在线播 | 天天操夜夜操天天射 | 狠狠色伊人亚洲综合网站野外 | 99久久er热在这里只有精品66 | 成人小视频在线 | 国产视频久 | 公与妇乱理三级xxx 在线观看视频在线观看 | 国产麻豆剧果冻传媒视频播放量 | 日韩午夜三级 | 久久精品区 | 中文日韩在线视频 | 美女网站在线观看 | 波多野结衣视频网址 | 国产免费影院 | 国产成人一二三 | 伊人五月 | 天天干天天操天天射 | 在线视频专区 | 精品国产精品国产偷麻豆 | 在线观看亚洲电影 | 深爱激情婷婷网 | 在线观看网站你懂的 | 日韩电影一区二区三区在线观看 | 射射色 | 狠狠操狠狠插 | 丁香婷婷在线观看 | 在线三级播放 | 亚洲精品综合一区二区 | 天天射天天干 | 亚洲综合色视频在线观看 | 欧美精品二 | 久久tv| 日韩精品中文字幕一区二区 | 国产美女精品 | av先锋中文字幕 | 久艹视频免费观看 | 美女一二三区 | av免费电影在线 | 男女日麻批 | 午夜精品视频免费在线观看 | 天天射网 | 人人讲| 五月天伊人 | 69国产盗摄一区二区三区五区 | 在线观看视频你懂的 | 在线黄频 | 色偷偷97 | 日韩欧美一区二区在线播放 | 欧美午夜理伦三级在线观看 | 国产a国产 | 特黄色大片| 日韩区欧美久久久无人区 | 国产青春久久久国产毛片 | 欧洲一区精品 | 国产日韩欧美在线一区 | 国产区精品区 | 欧美精品在线观看 | 国产高清久久久久 | 五月视频 | 国产不卡精品 | 国产破处在线播放 | 91大神在线观看视频 | 精品久久亚洲 | 中文电影网 | aav在线| 国产视频69 | 久久久久免费网 | 国产伦理久久精品久久久久_ | 久久久久激情电影 | 网站在线观看你们懂的 | 成人精品久久久 | 中文字幕一区二区三区四区在线视频 | 久久人人射 | 久久手机看片 | 亚洲精品高清视频在线观看 | 国产精品18久久久久久不卡孕妇 | 97超级碰碰碰视频在线观看 | 97超碰.com| 国产中文字幕在线免费观看 | 欧美在线视频精品 | 亚洲最大免费成人网 | 日日爽天天 | 国产特级毛片 | 国产精品一区二区三区观看 | 日本免费久久高清视频 | 97人人模人人爽人人少妇 | 九九电影在线 | 黄色的网站免费看 | 最近免费中文字幕大全高清10 | 亚洲 欧美 变态 国产 另类 | 成人一区二区三区在线观看 | 国产一级黄色电影 | 人人干狠狠干 | 天天草天天干天天射 | 日韩久久久久久久 | 婷婷播播网 | 久久综合久久久久88 | 韩国中文三级 | 久久久亚洲电影 | 操处女逼| 99成人免费视频 | 视频1区2区 | 免费成人在线电影 | 正在播放国产精品 | 在线精品亚洲一区二区 | 日韩精品一区不卡 | 欧美小视频在线观看 | 国产精久久久 | 日韩中文字幕在线不卡 | 国产丝袜高跟 | 中文永久字幕 | 超碰.com | 精品视频一区在线观看 | 国内久久精品视频 | 久草免费福利在线观看 | 亚洲精品高清视频在线观看 | 久久在线视频精品 | aa一级片 | 国产色道 | 久久理论电影网 | 久久午夜剧场 | 天天精品视频 | 久久精品看 | 免费看的黄网站 | 国产精品欧美一区二区三区不卡 | 欧美一级电影片 | 国产原创中文在线 | 久久在线精品视频 | 啪一啪在线 | 亚洲黄色av网址 | 亚洲最大的av网站 | 色婷婷狠狠18 | www.777奇米| 欧美乱大交| 亚洲欧美成人 | 欧美精品你懂的 | 精品国产精品一区二区夜夜嗨 | 天堂av色婷婷一区二区三区 | 国产美女免费视频 | www久| 国产玖玖视频 | 99视屏| 正在播放五月婷婷狠狠干 | 中文字幕在线观看资源 | 成人97视频一区二区 | 国产精品久久三 | 丰满少妇久久久 | 草久久影院 | 亚洲精品中文在线资源 | 色婷婷一区| 国产在线观看你懂的 | 久久久一本精品99久久精品66 | 中文字幕美女免费在线 | 国产日韩欧美在线影视 | 波多野结衣视频一区二区 | 日韩精品免费一区二区三区 | 四虎影视久久久 | 中文字幕一二三区 | 不卡av电影在线观看 | 91在线免费看片 | 国产精品久久久久久久久久妇女 | 国产91精品一区二区麻豆网站 | 日韩高清一区二区 | 国产一区二区三区高清播放 | 精品一区二区在线免费观看 | 91热视频在线观看 | 欧美在线99| 97视频亚洲| 免费在线观看av不卡 | 国产午夜三级 | 免费a视频在线 | 色诱亚洲精品久久久久久 | 99精品一区二区三区 | 日韩黄色在线 | 国产精品毛片久久蜜 | 久久久国产99久久国产一 | 五月婷婷免费 | 久久精品www人人爽人人 | 伊人网站| 日韩视频一区二区 | 天天天干天天天操 | 亚洲乱码在线 | 国产露脸91国语对白 | 日韩久久精品一区二区三区下载 | 99热手机在线 | 97超碰超碰久久福利超碰 | 亚洲一区欧美激情 | www.亚洲精品视频 | 久久久久久草 | 日韩一区二区免费播放 | 亚洲精品影视 | 国内一级片在线观看 | 日本xxxxav | 亚洲精品色婷婷 | 亚洲国产一区二区精品专区 | 亚洲欧美在线视频免费 | 九九久久影院 | 麻豆视频免费 | 国产精品9区 | 国产99久久 | 99视频在线看 | 视频在线精品 | 波多野结衣一区二区三区中文字幕 | ww视频在线观看 | 国偷自产视频一区二区久 | 国产精品都在这里 | 欧美乱熟臀69xxxxxx | 黄色亚洲免费 | 999精品在线| 国产精品九九视频 | 激情喷水 | 国产精品成人国产乱 | 91精品一区二区在线观看 | 亚洲精品国产高清 | 天天操天天舔天天干 | 久久96国产精品久久99漫画 | 国产成人一区二区三区电影 | 五月亚洲综合 | 91在线区 | 日韩精品无码一区二区三区 | 亚洲午夜精品久久久久久久久久久久 | 国产精品久久综合 | 欧美俄罗斯性视频 | 在线免费黄| 国产精品尤物 | 91av视频免费在线观看 | 国产一区二区三区黄 | 国产不卡免费 | 一区二区三区免费在线观看视频 | 玖草影院| 国产午夜精品理论片在线 | 涩涩网站免费 | 狠狠色丁香久久婷婷综合五月 | 国产高清视频免费观看 | 久久久免费高清视频 | 久久婷婷精品视频 | 91尤物国产尤物福利在线播放 | 在线播放 日韩专区 | 亚洲一区二区精品 | 亚洲精选在线观看 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 欧美在线日韩在线 | 福利视频网址 | 久久久综合 | 久久久久久在线观看 | 1024手机看片国产 | 亚洲成人黄色网址 | 国产高清视频免费最新在线 | 日韩av视屏| 国产一区免费 | 麻豆传媒视频在线 | 日本精品视频在线播放 | 成人性生交大片免费观看网站 | 午夜视频免费在线观看 | 91av视频免费在线观看 | 91丨九色丨蝌蚪丨老版 | www.夜夜干.com | 九九热久久免费视频 | 九色激情网| 免费观看第二部31集 | 中文字幕免费一区二区 | 日韩伦理片一区二区三区 | 国产精品毛片一区视频播不卡 | 探花视频网站 | 91视频久久 | 国产麻豆电影 | 国产精品免费一区二区三区在线观看 | 久久福利精品 | 国产码电影 | 久草在线最新 | 国产高清视频 | 色综合天天综合在线视频 | 天天玩天天操天天射 | 日韩精品久久久 | 91禁在线看 | 日韩一区二区三区在线看 | 激情五月在线视频 | av片在线观看免费 | 最新av在线播放 | 国产精品视频地址 | 亚洲高清精品在线 | 国产又粗又猛又色又黄视频 | 精品久久久亚洲 | 国产精品毛片一区二区 | 婷婷丁香久久五月婷婷 | 久久久久久久久免费视频 | 国产91精品久久久久久 | 高清av免费看 | 免费av的网站 | 最新国产在线 | 精品免费一区 | 九九国产视频 | 日韩电影在线一区 | 免费中文字幕 | 97偷拍视频 | 久久久综合精品 | 国产一级二级视频 | 久久国产精品久久国产精品 | 久久九九免费 | 欧洲高潮三级做爰 | 免费a视频 | 福利视频第一页 | 久久精品久久精品久久精品 | 日韩精品一区在线播放 | 人人草在线视频 | 国产亚洲精品中文字幕 | 日韩精品一区二区三区免费观看 | 四虎www.| 久久视频精品 | 天天艹天天操 | 天天插天天射 | 色婷婷亚洲精品 | 国产福利小视频在线 | 九九热免费视频在线观看 | 日韩免费电影网 | 日韩a免费 | 黄污网站在线观看 | 97超碰人人澡人人爱 | 日日干综合 | 成人一级免费视频 | 亚洲乱码久久 | 日韩三级中文字幕 | 国内精品99 | 日日天天狠狠 | aaa日本高清在线播放免费观看 | 五月婷婷在线视频观看 | 国产日产亚洲精华av | 精品国产网址 | 午夜精品福利一区二区三区蜜桃 | 国产精品视频免费看 | 丁香5月婷婷久久 | 99精品在线播放 | 欧美一区二区免费在线观看 | 久久婷婷激情 | 久久国产免费 | 国产精品日韩在线 | 国产精品午夜在线观看 | 午夜久久成人 | 色婷婷激情五月 | 在线观看网站你懂的 | 亚洲精品乱码久久久久久写真 | 又污又黄网站 | 岛国av在线免费 | 7777xxxx| 国产精品人人做人人爽人人添 | 国产一二三区av | 日韩免费av在线 | 婷婷精品在线视频 | 丁香综合激情 | 国产不卡在线 | 成人在线播放网站 | www.狠狠| 成人av电影在线观看 | 天天射天| 99在线看 | www五月天com| 五月天激情婷婷 | 国产又粗又长又硬免费视频 | 国产一区二区视频在线 | 久久精品视频播放 | 亚洲精品乱码久久久久v最新版 | 丁香资源影视免费观看 | 成年美女黄网站色大片免费看 | 国产免费资源 | 国产麻豆精品一区二区 | 国产精品不卡一区 | 日韩av在线资源 | 成年免费在线视频 | 中文字幕久久精品亚洲乱码 | 亚洲国产精品电影 | 欧洲av在线 | 国产视频一区在线播放 | 91久久奴性调教 | 91久久精品一区二区三区 | 日韩免费高清在线 | 深夜免费小视频 | 午夜久久久久久久久久久 | 九九国产精品视频 | 国产成人av电影在线观看 | 黄色软件网站在线观看 | 91精品久久久久久综合乱菊 | 色婷婷色| www91在线观看 | 五月婷婷欧美视频 | 欧美日在线观看 | 白丝av免费观看 | 精品黄色在线观看 | 四虎在线免费观看 | 国产精品国产亚洲精品看不卡15 | 久久久亚洲精华液 | 久久精品亚洲综合专区 | 91一区啪爱嗯打偷拍欧美 | 国产精品国产毛片 | 久久久久国产一区二区 | 色就色,综合激情 | 成人国产精品久久久久久亚洲 | 国产视频亚洲精品 | 免费看十八岁美女 | 日韩av片在线 | 97av在线视频免费播放 | 国产久草在线观看 | 成人免费一级 | 久保带人 | 一区在线观看视频 | 免费亚洲精品视频 | 成人激情开心网 | 精品国产免费人成在线观看 | 欧美日韩综合在线 | 国产精品久久久久久久久久久久久久 | 亚洲成av人片在线观看 | 国产精久久久久久妇女av | 精品资源在线 | 成人av av在线 | 亚洲精品456在线播放 | 午夜精品久久 | 国产麻豆精品一区二区 | 91污污视频在线观看 | 免费看黄在线 | 超碰在线最新地址 | 伊人夜夜| 一级一片免费观看 | www.黄色 | 国内精品久久久久久久久久久 | 欧美va天堂在线电影 | 国内精品久久久久久久影视麻豆 | 六月激情久久 | 亚洲六月丁香色婷婷综合久久 | 色在线中文字幕 | 久久视频这里只有精品 | 精品99免费视频 | 精品久久久久久久久久岛国gif | 正在播放国产一区二区 | 天天操天天爽天天干 | 在线黄色观看 | 久久艹在线 | 一区二区丝袜 | 热re99久久精品国产66热 | 精品999| 五月激情电影 | 欧美日韩国产综合一区二区 | 久久久激情网 | 亚洲国产欧美在线人成大黄瓜 | 99久久婷婷国产一区二区三区 | 久久美女高清视频 | 精品主播网红福利资源观看 | 久久久久婷 | 国产一级二级三级视频 | 久久精品草| 国产黄色看片 | 91一区啪爱嗯打偷拍欧美 | 中文字幕欧美激情 | 亚洲激情电影在线 | 91精品久久香蕉国产线看观看 | 中文永久免费观看 | 久久久鲁 | 欧美精品三级在线观看 | 欧美精品久久久久久久久老牛影院 | 久久综合狠狠综合 | 91丨九色丨国产在线观看 | 久久免费99精品久久久久久 | 国产一级h | 成人毛片在线视频 | 丁香久久婷婷 | 色一色在线 | 欧美激情综合五月 | 婷婷在线免费视频 | 国产成人三级在线 | 玖操 | 狠狠插狠狠操 | 久久久久久久影视 | 中文字幕在线一区观看 | 五月天久久久久久 | 中文字幕中文字幕在线中文字幕三区 | 久久久国产精品一区二区中文 | 精品免费久久 | 免费视频久久 | 国产精品久久婷婷六月丁香 | 中文字幕乱码电影 | 色九九影院| 久久只有精品 | 国产一二区视频 | 色综合www | 91免费视频黄 | 99视频免费观看 | 日韩 在线a| 日韩高清免费在线观看 | 婷婷色综合网 | 精品久久久99 | 久久99精品国产一区二区三区 | 天天干天天玩天天操 | 久久精品亚洲精品国产欧美 | 日日干夜夜爱 | 欧美日韩国产二区三区 | 一区二区三区在线免费 | 国产精品久久久久久久午夜片 | 香蕉蜜桃视频 | 久久99精品久久久久久清纯直播 | 国产一卡二卡四卡国 | 亚洲国产精品女人久久久 | 少妇性aaaaaaaaa视频 | 在线小视频 | 一区二区三区在线电影 | 久久精品亚洲国产 | 美女免费黄视频网站 | av专区在线 | 五月婷婷综合久久 | 亚洲成人精品在线 | 免费视频xnxx com | 91香蕉国产在线观看软件 | 国产精品久久久久久久久久了 | 免费黄色网址大全 | 天天操天天摸天天射 | 成人丝袜| 久久免费国产精品1 | 久久久久久久av | 日韩激情视频在线 | 国产成人精品一区二区在线 | 午夜婷婷在线播放 | 亚洲国产视频网站 | 丁香网五月天 | 国产精品99免视看9 国产精品毛片一区视频 | 久久不卡电影 | 国产盗摄精品一区二区 | 在线看污网站 | 国产色女| 激情综合色播五月 | 精品美女国产在线 | 中文字幕一区二区三区在线视频 | 在线中文字幕观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 国内精品久久久久国产 | 99久久久久久久久 | 久久亚洲二区 | 深夜福利视频一区二区 | 精品在线观看一区二区 | 国产精彩在线视频 | 日韩三级不卡 | 97碰在线视频 | 91高清一区 | 九九综合久久 | 免费人做人爱www的视 | 91精品国产综合久久福利 | 久久精品久久精品久久 | 久久国产电影院 | 国产黄色精品在线观看 | 五月综合色 | 亚洲精品视频在线免费播放 | 天天做日日做天天爽视频免费 | 一级免费看 | 国产一级片在线播放 | 日韩免费中文 | 九九久久在线看 | 色狠狠综合天天综合综合 | 99久久精品国产亚洲 | 国产一级片网站 | 国内三级在线观看 | 亚洲成人二区 | 黄色国产区 | www.亚洲视频 | 日韩免费在线 | 国产婷婷色 | 色婷婷激情五月 | 日本精品久久久久 | 91av资源在线 | 91精品久久久久久久99蜜桃 | 日本三级吹潮在线 | 日韩中文字幕电影 | 在线亚洲人成电影网站色www | 久久爱www. | 国产91全国探花系列在线播放 | 午夜国产影院 | 奇米影视999 | 国产精品精品视频 | 免费91麻豆精品国产自产在线观看 | 国产资源精品 | 天天艹日日干 | 日韩欧美国产激情在线播放 | 欧美在线一二区 | 91香蕉视频 mp4 | 日本久久91| 久久精品成人热国产成 | 亚洲丝袜一区二区 | 麻豆精品在线视频 | 丁香花中文在线免费观看 | 国产日产精品久久久久快鸭 | 天天曰天天射 | 亚洲专区中文字幕 | 国产精品美女久久久久久2018 | 在线电影日韩 | a天堂在线看 | 啪啪免费视频网站 | 亚洲精品五月天 | 国产 日韩 在线 亚洲 字幕 中文 | 在线成人欧美 | 视频 天天草 | 六月激情丁香 | 国产精品美女在线 | 毛片网在线 | 一区av在线播放 | 亚洲综合少妇 | 国产男女无遮挡猛进猛出在线观看 | aaa毛片视频 | 久久国产女人 | 4438全国亚洲精品在线观看视频 | 97色在线| 久久久av免费 | 日韩精品免费在线播放 | 久久色在线播放 | 久综合网 | 成人av教育 | 黄色aaa级片 | 91免费视频网站在线观看 | av女优中文字幕在线观看 | 成人全视频免费观看在线看 | 亚洲无线视频 | 欧美日韩成人一区 | 国产高清中文字幕 | 在线日韩精品视频 | 成人精品国产免费网站 | www欧美色 | 玖玖视频网 | 美女视频是黄的免费观看 | 色综合天天综合 | 欧洲一区精品 | 91视频链接 | 黄色成品视频 | 久久综合九色综合欧美就去吻 | 国产无套精品久久久久久 | 久久精品高清视频 | 日韩免费网址 | 久久99精品国产 | 91精品久久久久久综合乱菊 | 2018亚洲男人天堂 | 三级视频国产 | 中文字幕丰满人伦在线 | 午夜视频在线观看一区二区三区 | 国产精品一区二区在线观看免费 | 日韩欧美91 | 日本精品一区二区在线观看 | 日韩激情av在线 | 麻豆传媒视频在线免费观看 | 久久久久9999亚洲精品 | 中文字幕精品www乱入免费视频 | 天天色欧美 | www.天天色 | 久草视频看看 | 成人免费一区二区三区在线观看 | 激情网站五月天 | 久久黄色小说 | 婷婷丁香av | 午夜av免费 | 欧美一级专区免费大片 | 色综合网在线 | 国产亚洲精品成人av久久影院 | 亚洲精品观看 | 亚州精品天堂中文字幕 | 色成人亚洲 | 天天久久夜夜 | av电影中文字幕在线观看 | 在线观看完整版免费 | 日韩精品最新在线观看 | 日韩精品亚洲专区在线观看 | 久久视奸| 欧美日韩不卡在线 | 人人插人人干 | 一区二区三区高清不卡 | 九九影视理伦片 | 免费视频你懂得 | 黄色av一级 | 成人av影视观看 | 国产成本人视频在线观看 | 色婷婷骚婷婷 | 丁香花五月 | 精品乱码一区二区三四区 | 久久久影视 | 又爽又黄在线观看 | 精壮的侍卫呻吟h | 中文字幕在线观看网址 | 午夜精品久久久久久久久久久久久久 | 欧美日韩一区二区三区视频 | 久久手机精品视频 | 久久黄色影视 | 最新日本中文字幕 | 国产99久久精品一区二区300 | 91九色视频在线播放 | 久久爱资源网 | 国产精品国产三级国产 | 国产精选在线观看 | 97超碰人人干 | 婷婷久久精品 | 欧美成人日韩 | 天天色天天艹 | 欧美亚洲精品一区 | 国产精品麻豆免费版 | 99成人精品 | 青青河边草免费直播 | 色资源在线观看 | 激情久久影院 | 亚洲精品一区二区久 | 亚洲精品动漫成人3d无尽在线 | 91精品推荐 | 99久久精品免费一区 | 丁香五月网久久综合 | 色天天综合网 | 欧美国产日韩中文 | 极品久久久久久久 | 国产又粗又猛又爽又黄的视频免费 | 亚洲国产精品99久久久久久久久 | 久久草网 | av日韩在线网站 | 国产精品大尺度 | 97国产大学生情侣酒店的特点 | 久久久精品电影 | 久久av免费电影 | 色婷婷国产在线 | 深爱激情站 | 狠狠躁夜夜躁人人爽视频 | 欧美在线视频一区二区三区 | 午夜视频免费 | 国产精品国产三级国产 | 欧美成年网站 | 五月婷婷,六月丁香 | 日韩精品久久一区二区 | 综合精品在线 | 久久99久久99免费视频 | 五月天婷婷丁香花 | 成人黄色小说网 | 久久久久久影视 | 色婷婷综合久色 | 在线91av | 精品视频免费看 | 亚洲免费国产视频 | 欧美色伊人 | 免费福利视频网站 | 一区 二区电影免费在线观看 | 免费成人在线网站 | 丝袜美腿在线 | 91视频免费看 | 亚洲精品高清视频在线观看 | 国产美女黄网站免费 | 99精品久久久久 | 日韩,精品电影 | 国产精品久久久久久久久久了 | 日韩精品视频久久 | 在线观看视频日韩 | 亚洲精品1区2区3区 超碰成人网 | 丰满少妇在线观看网站 | 国产精品资源在线观看 | 国产麻豆果冻传媒在线观看 | 香蕉网址 | 99麻豆视频 | 国产精品a久久久久 | 国产丝袜美腿在线 | 麻豆国产精品va在线观看不卡 | 超碰免费久久 | 免费在线观看日韩欧美 | 有码中文字幕 | 国产又粗又硬又爽的视频 | 在线直播av | 日日草天天草 | 国产精品va最新国产精品视频 | 91福利小视频 | 免费视频国产 | 中文字幕电影网 | 欧美日韩国产高清视频 | 亚洲激情视频在线 | 亚洲视频精品在线 | av在线在线| 夜夜操天天干 | 狠狠狠狠狠狠狠狠 | 碰超在线97人人 | 99久久精品国产一区二区成人 | 成人播放器 | 久久久国产一区二区三区 | 激情文学综合丁香 | 91av精品| 久久久免费看 | 欧美国产日韩一区二区三区 | 国偷自产中文字幕亚洲手机在线 | 日韩天天操 | 成人三级视频 | av电影在线播放 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产免费av一区二区三区 | sm免费xx网站 | 精品国产_亚洲人成在线 | 久久久久久电影 | 中文视频一区二区 | 国产精品麻豆果冻传媒在线播放 | 国产精品久久久久久久久搜平片 | 成人黄色免费观看 | 亚洲伊人婷婷 | 91成人免费电影 | 日韩午夜av | 欧美日本一二三 | 97视频亚洲 | 五月激情丁香图片 | 久久综合网色—综合色88 | 久久免费a | 黄色一级片视频 | 国产免费激情久久 | caobi视频| www·22com天天操 | 激情九九 | 日韩精品中文字幕在线不卡尤物 | 天天射天天干天天插 | 免费久久网站 | 超碰97公开 | 久久精品人人做人人综合老师 | 九九免费观看视频 | 高清不卡毛片 | 国产黄色在线网站 | 天天草天天干天天 | 亚洲国产视频网站 | 成年人精品| 久久综合九色综合97_ 久久久 | 色老板在线 | 精油按摩av | 综合天天色| 17婷婷久久www | 9在线观看免费高清完整版 玖玖爱免费视频 | 99热9| 亚洲片在线资源 | 久久97久久97精品免视看 | a v在线视频 | 日韩xxxx视频| 日韩中文字幕免费在线观看 | 91成年人在线观看 | 色综合久久久 | 国产在线小视频 | 黄色小说在线观看视频 | 欧美日韩视频免费 | 成人a级黄色片 | www色网站| 欧美日韩不卡一区二区三区 | 在线 影视 一区 | 99久久超碰中文字幕伊人 | 天天爽天天做 | 亚洲国产精品传媒在线观看 | 九九免费观看全部免费视频 | 亚洲一级国产 | 国产一区二区在线视频观看 | 日韩午夜精品福利 | 国产成a人亚洲精v品在线观看 | 九九在线视频免费观看 | 国产精品毛片一区 | 在线观看国产麻豆 | 成人国产精品久久久久久亚洲 | 国产综合在线观看视频 | 欧美激情视频在线观看免费 | 最新av免费在线观看 | 黄色精品免费 | 欧美韩国日本在线 | 麻豆激情电影 | 在线免费观看视频一区二区三区 | 中文字幕 第二区 | 国产成人av片 | 亚洲无毛专区 | 国产精品久久久久永久免费看 | 很黄很黄的网站免费的 | 国产精品淫 | 最新日韩在线观看视频 | 手机色在线 | 一区二区三区在线观看免费视频 | 日韩在线视频观看免费 | 亚洲激情精品 | 久久99九九99精品 | 一二区精品 | 极品国产91在线网站 | 欧美成年黄网站色视频 | 日韩精品久久中文字幕 | 美女黄频免费 | 成人h在线播放 | 久久ww| www久久久久 | 麻花豆传媒mv在线观看网站 | 黄色的网站在线 | 五月天堂色 | 人人干人人爽 | 国内精品久久久久久久久 | 国产一区视频免费在线观看 | 成人av一区二区三区 | 99久久www | 在线观看国产麻豆 | 91久久精 | 日韩高清dvd | 成年人国产在线观看 | 少妇av片 | 日韩精品中字 | 天天操狠狠操夜夜操 | 四虎成人精品 | 夜夜躁日日躁狠狠久久av | 999在线视频 | 天天色天天 | 色综合久久久久网 | 免费男女羞羞的视频网站中文字幕 | 日韩国产精品一区 | 久久99视频免费 |