main.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. FILE_2015 = '/media/sf_share/linux/workspaces/guangdong/input/quickbird2015.tif'
  14. FILE_2017 = '/media/sf_share/linux/workspaces/guangdong/input/quickbird2017.tif'
  15. FILE_cadastral2015 = '/media/sf_share/linux/workspaces/guangdong/input/cadastral2015.tif'
  16. FILE_tinysample = '/media/sf_share/linux/workspaces/guangdong/input/tinysample.tif'
  17. #read images
  18. im_2015 = tiff.imread(FILE_2015).transpose([1, 2, 0])
  19. im_2017 = tiff.imread(FILE_2017).transpose([1, 2, 0])
  20. im_tiny = tiff.imread(FILE_tinysample)
  21. im_cada = tiff.imread(FILE_cadastral2015)
  22. im_2015.shape
  23. im_tiny.shape
  24. im_cada.shape
  25. def scale_percentile(matrix):
  26. w, h, d = matrix.shape
  27. matrix = np.reshape(matrix, [w * h, d]).astype(np.float64)
  28. # Get 2nd and 98th percentile
  29. mins = np.percentile(matrix, 1, axis=0)
  30. maxs = np.percentile(matrix, 99, axis=0) - mins
  31. matrix = (matrix - mins[None, :]) / maxs[None, :]
  32. matrix = np.reshape(matrix, [w, h, d])
  33. matrix = matrix.clip(0, 1)
  34. return matrix
  35. fig, axes = plt.subplots(ncols=2, nrows=1, figsize=(16, 6))
  36. p1 = plt.subplot(121)
  37. i1 = p1.imshow(scale_percentile(im_2015[100:1000, 100:1000, :3]))
  38. plt.colorbar(i1)
  39. p2 = plt.subplot(122)
  40. i2 = p2.imshow(im_2015[100:1000, 100:1000, 3])
  41. plt.colorbar(i2)
  42. plt.show()