Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. def shear_and_rotate(image_path, img_w, img_h):
  2. from skimage.io import imread, imsave
  3. from skimage.transform import resize
  4. from skimage import transform as transf
  5. import numpy as np
  6. from skimage.filters import threshold_otsu
  7. from scipy.ndimage.interpolation import rotate
  8. import math
  9.  
  10. image = imread(image_path)
  11.  
  12. augmented_images = []
  13.  
  14. # Resize the image
  15. resized_ori = resize(image, (img_h, img_w))
  16.  
  17. # Binarize the image using Otsu thresholding
  18. thresh = threshold_otsu(resized_ori)
  19. resized_ori = resized_ori > thresh
  20. resized_ori = resized_ori.astype(int)
  21. #resized_ori = np.transpose(resized_ori)
  22. augmented_images.append(resized_ori)
  23.  
  24. for rotate_angle in np.arange(-5, 7, 2):
  25. rotated = rotate(image, rotate_angle, reshape=True, mode='constant', cval=1.)
  26.  
  27. for shear_angle in np.arange(-0.5, 0.7, 0.2):
  28. affine_tf = transf.AffineTransform(shear=math.radians(shear_angle))
  29. sheared = transf.warp(rotated, affine_tf, mode='constant', cval=1.)
  30.  
  31. resized = resize(sheared, (img_h, img_w))
  32. thresh = threshold_otsu(resized)
  33. resized = resized > thresh
  34. resized = resized.astype(int)
  35.  
  36. #resized = np.transpose(resized) # For CNN-RNN only
  37.  
  38. augmented_images.append(resized)
  39.  
  40. augmented_images = np.array(augmented_images) # 36 additional images generated for each input image
  41.  
  42. return augmented_images
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement