Skip to content

Commit

Permalink
fix some transformaion bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
dragonbook committed Dec 5, 2018
1 parent 26d8209 commit 390df17
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions src/v2v_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,35 +81,32 @@ def generate_coord(points, refpoint, new_size, angle, trans, sizes):

# discretize
coord = discretize(coord, cropped_size) # -> [0, cropped_size]
coord += (original_size / 2 - cropped_size / 2)
coord += (original_size / 2 - cropped_size / 2) # move center to original volume

# resize
# resize around original volume center
resize_scale = new_size / 100
if new_size < 100:
coord = coord / original_size * np.floor(original_size*new_size/100) + \
np.floor(original_size/2 - original_size/2*new_size/100)
coord = coord * resize_scale + original_size/2 * (1 - resize_scale)
elif new_size > 100:
coord = coord / original_size * np.floor(original_size*new_size/100) - \
np.floor(original_size/2*new_size/100 - original_size/2)
coord = coord * resize_scale - original_size/2* (resize_scale - 1)
else:
# new_size = 100 if it is in test mode
pass

# rotation
if angle != 0:
original_coord = coord.copy()
original_coord[:,1] = original_size-1 - original_coord[:,1]
original_coord[:,0] -= (original_size-1)/2
original_coord[:,1] -= (original_size-1)/2
original_coord[:,0] -= original_size / 2
original_coord[:,1] -= original_size / 2
coord[:,0] = original_coord[:,0]*np.cos(angle) - original_coord[:,1]*np.sin(angle)
coord[:,1] = original_coord[:,0]*np.sin(angle) + original_coord[:,1]*np.cos(angle)
coord[:,0] += (original_size-1)/2
coord[:,1] += (original_size-1)/2
coord[:,1] = original_size-1 - coord[:,1]
coord[:,0] += original_size / 2
coord[:,1] += original_size / 2

# translation
# Note, if trans = (original_size/2 - cropped_size/2), the following translation will
# cancel the above translation(after discretion). It will be set it when in test mode.
coord -= trans - 1
coord -= trans

return coord

Expand Down Expand Up @@ -176,7 +173,7 @@ def __call__(self, sample):
if not self.augmentation:
new_size = 100
angle = 0
trans = self.original_size/2 - self.cropped_size/2 + 1
trans = self.original_size/2 - self.cropped_size/2

input = generate_cubic_input(points, refpoint, new_size, angle, trans, self.sizes)
heatmap = generate_heatmap_gt(keypoints, refpoint, new_size, angle, trans, self.sizes, self.d3outputs, self.pool_factor, self.std)
Expand Down

0 comments on commit 390df17

Please sign in to comment.