第4.5节主要讲的是tl.prepro的图像操作,通过源码可以知道,tl.prepro主要还是在cv2的基础上进行的。
import cv2
import numpy as np
import tensorlayer as tl
image = cv2.imread('4.1_flower_original.jpg')
print('~~~~~~~~~图像大小~~~~~~~~')
shape_flower = image.shape
print(shape_flower)
sz1 = shape_flower[0] # height(rows) of image
sz2 = shape_flower[1] # width(colums) of image
sz3 = shape_flower[2] # the pixels value is made up of three primary colors
print( 'width: %d \nheight: %d \nnumber: %d' %(sz1,sz2,sz3))
print('~~~~~~~~~~图像的操作~~~~~~~~')
cv2.imshow('4.1_flower_original', image)
rotation = tl.prepro.rotation(image, rg=60, is_random=False, row_index=0,
col_index=1, channel_index=2, fill_mode='nearest', cval=0.0)
cv2.imshow('4.1_flower_rotation', rotation)
crop = tl.prepro.crop(image, wrg=120, hrg=120, is_random=True, row_index=0,
col_index=1)
cv2.imshow('4.1_flower_crop', crop)
flip = tl.prepro.flip_axis(image, axis=1, is_random=False)
cv2.imshow('4.1_flower_flip', flip)
shift = tl.prepro.shift(image, wrg=0.1, hrg=0.1, is_random=False, row_index=0,
col_index=1, channel_index=2, fill_mode='nearest', cval=0.0)
cv2.imshow('4.1_flower_shift', shift)
shear = tl.prepro.shear(image, intensity=0.4, is_random=False, row_index=0,
col_index=1, channel_index=2, fill_mode='nearest', cval=0.0)
cv2.imshow('4.1_flower_shear', shear)
zoom = tl.prepro.zoom(image, zoom_range=(0.6, 1.9), is_random=False, row_index=0,
col_index=1, channel_index=2, fill_mode='nearest', cval=0.0)
cv2.imshow('4.1_flower_zoom', zoom)
cv2.waitKey()
cv2.destroyAllWindows()
输出如下:
~~~~~~~~~图像大小~~~~~~~~
(360, 360, 3)
width: 360
height: 360
number: 3
~~~~~~~~~~图像的操作~~~~~~~~
书中的tl.prepro.flip有误,可能是版本不同造成的,所以还是要以文档的为准,文档地址:https://tensorlayercn.readthedocs.io/zh/latest/modules/prepro.html