import sys
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor, 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_ = 0
input_ = "./input.jpg"
output_ = "./output.jpg"
base.mx_init()
command = sys.argv[1]
if command == "decode":
decode_encode(input_, output_, device_)
elif command == "crop":
crop_image(input_, output_, device_)
elif command == "resize":
resize_image(input_, output_, device_)
else:
print("Please enter parameter in ( decode, crop, resize )")
base.mx_deinit()