Skip to content

Instantly share code, notes, and snippets.

@sleepless-se
Last active February 27, 2019 04:22
Show Gist options
  • Save sleepless-se/cac71e95a02eacb9c19cac42c5e0c8e4 to your computer and use it in GitHub Desktop.
Save sleepless-se/cac71e95a02eacb9c19cac42c5e0c8e4 to your computer and use it in GitHub Desktop.
Make left rigth split image from image path.
def left_right_image(left_img_path,right_img_path, canvas_size = 500):
# load image
iml = Image.open(left_img_path)
imr = Image.open(right_img_path)
# make back ground
bg = Image.new("RGB",(canvas_size,canvas_size),(250,250,250))
# target position
left_target = int(bg.size[0] / 4 * 1)
right_target = int(bg.size[0] / 4 * 3)
# resize image
iml2 = resize(iml,bg.size[0])
imr2 = resize(imr,bg.size[0])
# image to array
left_image = keras.preprocessing.image.img_to_array(iml2)
right_image = keras.preprocessing.image.img_to_array(imr2)
# Run detection
left_results = model.detect([left_image], verbose=1)
right_results = model.detect([right_image], verbose=1)
# get object centor
iml2_center = get_object_center(left_results[0]['rois'],left_image)
imr2_center = get_object_center(right_results[0]['rois'],right_image)
# print('left_img_object_centor',iml2_center)
# print('right_img_object_centor',imr2_center)
# make mask
mask1 = Image.new("L",iml2.size,0)
draw1 = ImageDraw.Draw(mask1)
mask_width = bg.size[0] / 2
draw1.rectangle((iml2_center - mask_width / 2,0,iml2.size[0],iml2.size[1]), fill=255)
mask2 = Image.new("L",imr2.size,0)
draw2 = ImageDraw.Draw(mask2)
draw2.rectangle((imr2_center - mask_width / 2 ,0,imr2_center+ mask_width / 2,imr2.size[1]), fill=255)
# composite image
bg.paste(iml2,(shift_to(iml2_center,left_target),0),mask1)
bg.paste(imr2,(shift_to(imr2_center,right_target),0),mask2)
return bg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment