Last active
October 20, 2017 20:56
-
-
Save Prasad9/ecf1297b0ca98447f6e025a6209060ca to your computer and use it in GitHub Desktop.
Tensorflow framework code to centrally scale images
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def central_scale_images(X_imgs, scales): | |
# Various settings needed for Tensorflow operation | |
boxes = np.zeros((len(scales), 4), dtype = np.float32) | |
for index, scale in enumerate(scales): | |
x1 = y1 = 0.5 - 0.5 * scale # To scale centrally | |
x2 = y2 = 0.5 + 0.5 * scale | |
boxes[index] = np.array([y1, x1, y2, x2], dtype = np.float32) | |
box_ind = np.zeros((len(scales)), dtype = np.int32) | |
crop_size = np.array([IMAGE_SIZE, IMAGE_SIZE], dtype = np.int32) | |
X_scale_data = [] | |
tf.reset_default_graph() | |
X = tf.placeholder(tf.float32, shape = (1, IMAGE_SIZE, IMAGE_SIZE, 3)) | |
# Define Tensorflow operation for all scales but only one base image at a time | |
tf_img = tf.image.crop_and_resize(X, boxes, box_ind, crop_size) | |
with tf.Session() as sess: | |
sess.run(tf.global_variables_initializer()) | |
for img_data in X_imgs: | |
batch_img = np.expand_dims(img_data, axis = 0) | |
scaled_imgs = sess.run(tf_img, feed_dict = {X: batch_img}) | |
X_scale_data.extend(scaled_imgs) | |
X_scale_data = np.array(X_scale_data, dtype = np.float32) | |
return X_scale_data | |
# Produce each image at scaling of 90%, 75% and 60% of original image. | |
scaled_imgs = central_scale_images(X_imgs, [0.90, 0.75, 0.60]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment