Guest User

Untitled

a guest
Jul 23rd, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. import os
  2. import numpy as np
  3. from osgeo import gdal
  4. import cv2
  5. import tensorflow as tf
  6. import time
  7. def normalize(x):
  8. x = x/float(np.max(x))
  9. offset = np.mean(x, 0)
  10. scale = np.std(x, 0).clip(min=1)
  11. return (x - offset) / scale
  12.  
  13. def run(img_path):
  14. bands_data = []
  15. raster_dataset = gdal.Open(img_path, gdal.GA_ReadOnly)
  16. geo_transform = raster_dataset.GetGeoTransform()
  17. proj = raster_dataset.GetProjectionRef()
  18. for b in range(1, raster_dataset.RasterCount+1):
  19. band = raster_dataset.GetRasterBand(b)
  20. bands_data.append(band.ReadAsArray())
  21. data = np.dstack(bands_data)
  22. data = np.expand_dims(normalize(cv2.resize(data,(80,80))),axis = 0)
  23.  
  24. with tf.Session() as sess:
  25. new_saver = tf.train.import_meta_graph("weights/model.ckpt.meta")
  26. new_saver.restore(sess, tf.train.latest_checkpoint('weights/'))
  27. graph = tf.get_default_graph()
  28. inputs = graph.get_tensor_by_name("inputs:0")
  29. prediction = graph.get_tensor_by_name("out/BiasAdd:0")
  30. pred = tf.nn.sigmoid(prediction)
  31. out_img = sess.run([pred],feed_dict={inputs: data})
  32.  
  33. ''' can get node of the load graph'''
  34. # for op in tf.get_default_graph().get_operations():
  35. # print str(op.name)
  36. cv2.imwrite("out_img_15.jpg",np.array(out_img)[0,0,:,:,0]*255)
  37.  
  38. run("/home/ispladmin/GIS_workspace/classification/FCN_on_new_data/final_waterbody_extraction/Sentinel_Rawdata/TrainingSamples- 15.tif")
Add Comment
Please, Sign In to add comment