|
|
|
#!/usr/bin/env python3
|
|
|
|
import cv2
|
|
|
|
import time
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import redis
|
|
|
|
import pickle
|
|
|
|
import json
|
|
|
|
import boto3
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
# filtered_dir = "filtered-images"
|
|
|
|
# is_images_dir = os.path.isdir(filtered_dir)
|
|
|
|
# if(is_images_dir == False):
|
|
|
|
# os.mkdir(filtered_dir)
|
|
|
|
# output_path="output.avi"
|
|
|
|
r = redis.Redis(host="127.0.0.1", port=6379, db=2)
|
|
|
|
activation_id = os.environ.get('__OW_ACTIVATION_ID')
|
|
|
|
params = json.loads(sys.argv[1])
|
|
|
|
images = []
|
|
|
|
try:
|
|
|
|
bilateral_activation_id = params["activation_id"]
|
|
|
|
parts = params["parts"]
|
|
|
|
# for i in range(0,parts):
|
|
|
|
# if os.path.exists(images_dir+'/resized_image_'+str(i)+'.jpg'):
|
|
|
|
# os.remove(images_dir+'/resized_image_'+str(i)+'.jpg')
|
|
|
|
for i in range(0,parts):
|
|
|
|
bilateral_output = "bilateral-output-image"+bilateral_activation_id+"-"+str(i)
|
|
|
|
load_image = pickle.loads(r.get(bilateral_output))
|
|
|
|
image_name = 'Image'+str(i)+'.jpg'
|
|
|
|
|
|
|
|
with open(image_name, 'wb') as f:
|
|
|
|
f.write(load_image)
|
|
|
|
images.append(image_name)
|
|
|
|
|
|
|
|
|
|
|
|
# img = cv2.imread(image_name)
|
|
|
|
|
|
|
|
# resized_result.append('resized_image_'+str(i)+'.jpg')
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
image_url_list = params["image_url_links"]
|
|
|
|
parts = len(image_url_list)
|
|
|
|
for i in range(0,parts):
|
|
|
|
response = requests.get(image_url_list[i])
|
|
|
|
image_name = 'Image'+str(i)+'.jpg'
|
|
|
|
with open(image_name, "wb") as f:
|
|
|
|
f.write(response.content)
|
|
|
|
images.append(image_name)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# input_images = os.listdir(path)
|
|
|
|
|
|
|
|
# for i in input_images:
|
|
|
|
# i=path+i
|
|
|
|
# images.append(i)
|
|
|
|
|
|
|
|
images.sort()
|
|
|
|
|
|
|
|
# cv2_fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
|
|
|
cv2_fourcc = cv2.VideoWriter_fourcc(*'MJPG')
|
|
|
|
|
|
|
|
frame = cv2.imread(images[0])
|
|
|
|
|
|
|
|
size = list(frame.shape)
|
|
|
|
|
|
|
|
del size[2]
|
|
|
|
size.reverse()
|
|
|
|
video = cv2.VideoWriter("output.avi",cv2_fourcc,3,size,1)
|
|
|
|
|
|
|
|
for i in range(len(images)):
|
|
|
|
video.write(cv2.imread(images[i]))
|
|
|
|
print('frame',i+1,'of',len(images))
|
|
|
|
|
|
|
|
video.release()
|
|
|
|
|
|
|
|
aws_access_key_id = os.getenv('AWS_ACCESS_KEY_ID')
|
|
|
|
aws_secret_access_key = os.getenv('AWS_SECRET_ACCESS_KEY')
|
|
|
|
aws_region = os.getenv('AWS_REGION')
|
|
|
|
|
|
|
|
bucket_name = 'dagit-store'
|
|
|
|
|
|
|
|
s3 = boto3.client('s3', aws_access_key_id=aws_access_key_id,aws_secret_access_key=aws_secret_access_key,region_name=aws_region)
|
|
|
|
|
|
|
|
s3.upload_file('output.avi', bucket_name, 'output.avi')
|
|
|
|
s3.put_object_acl(Bucket=bucket_name, Key='output.avi', ACL='public-read')
|
|
|
|
|
|
|
|
|
|
|
|
url = "https://dagit-store.s3.ap-south-1.amazonaws.com/output.avi"
|
|
|
|
|
|
|
|
print(json.dumps({"encode_output": url,
|
|
|
|
"activation_id": activation_id,
|
|
|
|
"number_of_images_processed": parts,
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|