import sys
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor, Image, Rect, Size
CROP_SIZE = 200
RESIZE_HEIGHT = 200
RESIZE_WIDTH = 200
def decode_encode(input_path, output_path, device_id):
image_processor = ImageProcessor(device_id)
decoded_image = image_processor.decode(input_path, base.nv12)
image_processor.encode(decoded_image, output_path)
def crop_image(input_path, output_path, device_id):
image_processor = ImageProcessor(device_id)
decoded_image = image_processor.decode(input_path, base.nv12)
crop_area = [Rect(0, 0, CROP_SIZE, CROP_SIZE)]
croped_image = image_processor.crop(decoded_image, crop_area)
image_processor.encode(croped_image[0], output_path)
def resize_image(input_path, output_path, device_id):
image_processor = ImageProcessor(device_id)
decoded_image = image_processor.decode(input_path, base.nv12)
resize = Size(RESIZE_WIDTH, RESIZE_HEIGHT)
resized_image = image_processor.resize(decoded_image, resize, base.huaweiu_high_order_filter)
image_processor.encode(resized_image, output_path)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("This demo only accept only ONE parameter, execute the demo like 'python3 main.py decode'")
sys.exit(1)
device_id = 0
input_path = "./input.jpg"
output_path = "./output.jpg"
base.mx_init()
command = sys.argv[1]
if (command == "decode"):
decode_encode(input_path, output_path, device_id)
elif (command == "crop"):
crop_image(input_path, output_path, device_id)
elif (command == "resize"):
resize_image(input_path, output_path, device_id)
else:
print("Please enter parameter in ( decode, crop, resize)")
base.mx_deinit()