main.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from collections import defaultdict
  2. import csv
  3. import sys
  4. import cv2
  5. from shapely.geometry import MultiPolygon, Polygon
  6. import shapely.wkt
  7. import shapely.affinity
  8. import numpy as np
  9. import tifffile as tiff
  10. #%matplotlib inline
  11. import matplotlib.pyplot as plt
  12. from matplotlib import cm
  13. getcwd()
  14. chdir("/media/sf_share/linux/workspaces/guangdong")
  15. FILE_2015 = './input/quickbird2015.tif'
  16. FILE_2017 = './input/quickbird2017.tif'
  17. FILE_cadastral2015 = './input/cadastral2015.tif'
  18. FILE_tinysample = './input/tinysample.tif'
  19. #read images
  20. im_2015 = tiff.imread(FILE_2015).transpose([1, 2, 0])
  21. im_2017 = tiff.imread(FILE_2017).transpose([1, 2, 0])
  22. im_tiny = tiff.imread(FILE_tinysample)
  23. im_cada = tiff.imread(FILE_cadastral2015)
  24. im_2015.shape
  25. im_tiny.shape
  26. im_cada.shape
  27. def scale_percentile(matrix):
  28. w, h, d = matrix.shape
  29. matrix = np.reshape(matrix, [w * h, d]).astype(np.float64)
  30. # Get 2nd and 98th percentile
  31. mins = np.percentile(matrix, 1, axis=0)
  32. maxs = np.percentile(matrix, 99, axis=0) - mins
  33. matrix = (matrix - mins[None, :]) / maxs[None, :]
  34. matrix = np.reshape(matrix, [w, h, d])
  35. matrix = matrix.clip(0, 1)
  36. return matrix
  37. fig, axes = plt.subplots(ncols=2, nrows=1, figsize=(16, 6))
  38. p1 = plt.subplot(121)
  39. i1 = p1.imshow(scale_percentile(im_2015[100:1000, 100:1000, :3]))
  40. plt.colorbar(i1)
  41. p2 = plt.subplot(122)
  42. i2 = p2.imshow(im_2015[100:1000, 100:1000, 3])
  43. plt.colorbar(i2)
  44. plt.show()