123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import csv
- import sys
- from collections import defaultdict
- import cv2
- #%matplotlib inline
- import matplotlib.pyplot as plt
- import numpy as np
- import shapely.affinity
- import shapely.wkt
- # Read and write image data from and to TIFF files.
- import tifffile as tiff
- from matplotlib import cm
- from shapely.geometry import MultiPolygon, Polygon
- import os
- os.getcwd()
- os.chdir("/media/sf_share/linux/workspaces/gdzw-analysis")
- FILE_2015 = './input/quickbird2015.tif'
- FILE_2017 = './input/quickbird2017.tif'
- FILE_cadastral2015 = './input/cadastral2015.tif'
- FILE_tinysample = './input/tinysample.tif'
- #read images,return numpy array.
- im_2015 = tiff.imread(FILE_2015).transpose([1, 2, 0])
- im_2017 = tiff.imread(FILE_2017).transpose([1, 2, 0])
- im_tiny = tiff.imread(FILE_tinysample)
- im_cada = tiff.imread(FILE_cadastral2015)
- im_2015.shape
- # (5106, 15106, 4)
- im_tiny.shape
- # (5106, 15106, 3)
- im_cada.shape
- # (5106, 15106)
- def scale_percentile(matrix):
- w, h, d = matrix.shape
- matrix = np.reshape(matrix, [w * h, d]).astype(np.float64)
- # Get 2nd and 98th percentile
- mins = np.percentile(matrix, 1, axis=0)
- maxs = np.percentile(matrix, 99, axis=0) - mins
- matrix = (matrix - mins[None, :]) / maxs[None, :]
- matrix = np.reshape(matrix, [w, h, d])
- matrix = matrix.clip(0, 1)
- return matrix
- fig, axes = plt.subplots(ncols=2, nrows=1, figsize=(16, 6))
- p1 = plt.subplot(121)
- i1 = p1.imshow(scale_percentile(im_2015[100:1000, 100:1000, :3]))
- plt.colorbar(i1)
- p2 = plt.subplot(122)
- i2 = p2.imshow(im_2015[100:1000, 100:1000, 3])
- plt.colorbar(i2)
- plt.show()
|