Last active
October 21, 2017 07:26
-
-
Save Prasad9/f0b6239577a8178792080ac4efd2bbfd to your computer and use it in GitHub Desktop.
Tensorflow framework code to translate images in all sides
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
from math import ceil, floor | |
def get_translate_parameters(index): | |
if index == 0: # Translate left 20 percent | |
offset = np.array([0.0, 0.2], dtype = np.float32) | |
size = np.array([IMAGE_SIZE, ceil(0.8 * IMAGE_SIZE)], dtype = np.int32) | |
w_start = 0 | |
w_end = int(ceil(0.8 * IMAGE_SIZE)) | |
h_start = 0 | |
h_end = IMAGE_SIZE | |
elif index == 1: # Translate right 20 percent | |
offset = np.array([0.0, -0.2], dtype = np.float32) | |
size = np.array([IMAGE_SIZE, ceil(0.8 * IMAGE_SIZE)], dtype = np.int32) | |
w_start = int(floor((1 - 0.8) * IMAGE_SIZE)) | |
w_end = IMAGE_SIZE | |
h_start = 0 | |
h_end = IMAGE_SIZE | |
elif index == 2: # Translate top 20 percent | |
offset = np.array([0.2, 0.0], dtype = np.float32) | |
size = np.array([ceil(0.8 * IMAGE_SIZE), IMAGE_SIZE], dtype = np.int32) | |
w_start = 0 | |
w_end = IMAGE_SIZE | |
h_start = 0 | |
h_end = int(ceil(0.8 * IMAGE_SIZE)) | |
else: # Translate bottom 20 percent | |
offset = np.array([-0.2, 0.0], dtype = np.float32) | |
size = np.array([ceil(0.8 * IMAGE_SIZE), IMAGE_SIZE], dtype = np.int32) | |
w_start = 0 | |
w_end = IMAGE_SIZE | |
h_start = int(floor((1 - 0.8) * IMAGE_SIZE)) | |
h_end = IMAGE_SIZE | |
return offset, size, w_start, w_end, h_start, h_end | |
def translate_images(X_imgs): | |
offsets = np.zeros((len(X_imgs), 2), dtype = np.float32) | |
n_translations = 4 | |
X_translated_arr = [] | |
tf.reset_default_graph() | |
with tf.Session() as sess: | |
sess.run(tf.global_variables_initializer()) | |
for i in range(n_translations): | |
X_translated = np.zeros((len(X_imgs), IMAGE_SIZE, IMAGE_SIZE, 3), | |
dtype = np.float32) | |
X_translated.fill(1.0) # Filling background color | |
base_offset, size, w_start, w_end, h_start, h_end = get_translate_parameters(i) | |
offsets[:, :] = base_offset | |
glimpses = tf.image.extract_glimpse(X_imgs, size, offsets) | |
glimpses = sess.run(glimpses) | |
X_translated[:, h_start: h_start + size[0], \ | |
w_start: w_start + size[1], :] = glimpses | |
X_translated_arr.extend(X_translated) | |
X_translated_arr = np.array(X_translated_arr, dtype = np.float32) | |
return X_translated_arr | |
translated_imgs = translate_images(X_imgs) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment