2026-03-11 16:13:59 +08:00

172 lines
3.6 KiB
Python

import numpy as np
import argparse
import kneron_preprocessing
def main_(args):
image = args.input_file
filefmt = args.file_fmt
if filefmt == 'bin':
raw_format = args.raw_format
raw_w = args.input_width
raw_h = args.input_height
image_data = kneron_preprocessing.API.load_bin(image,raw_format,(raw_w,raw_h))
else:
image_data = kneron_preprocessing.API.load_image(image)
npu_w = args.width
npu_h = args.height
crop_first = True if args.crop_first == "True" else False
if crop_first:
x1 = args.x_pos
y1 = args.y_pos
x2 = args.crop_w + x1
y2 = args.crop_h + y1
crop_box = [x1,y1,x2,y2]
else:
crop_box = None
pad_mode = args.pad_mode
norm_mode = args.norm_mode
bitwidth = args.bitwidth
radix = args.radix
rotate = args.rotate_mode
##
image_data = kneron_preprocessing.API.inproc_520(image_data,npu_size=(npu_w,npu_h),crop_box=crop_box,pad_mode=pad_mode,norm=norm_mode,rotate=rotate,radix=radix,bit_width=bitwidth)
output_file = args.output_file
kneron_preprocessing.API.dump_image(image_data,output_file,'bin','rgba')
return
if __name__ == "__main__":
argparser = argparse.ArgumentParser(
description="preprocessing"
)
argparser.add_argument(
'-i',
'--input_file',
help="input file name"
)
argparser.add_argument(
'-ff',
'--file_fmt',
help="input file format, jpg or bin"
)
argparser.add_argument(
'-rf',
'--raw_format',
help="input file image format, rgb or rgb565 or nir"
)
argparser.add_argument(
'-i_w',
'--input_width',
type=int,
help="input image width"
)
argparser.add_argument(
'-i_h',
'--input_height',
type=int,
help="input image height"
)
argparser.add_argument(
'-o',
'--output_file',
help="output file name"
)
argparser.add_argument(
'-s_w',
'--width',
type=int,
help="output width for npu input",
)
argparser.add_argument(
'-s_h',
'--height',
type=int,
help="output height for npu input",
)
argparser.add_argument(
'-c_f',
'--crop_first',
help="crop first True or False",
)
argparser.add_argument(
'-x',
'--x_pos',
type=int,
help="left up coordinate x",
)
argparser.add_argument(
'-y',
'--y_pos',
type=int,
help="left up coordinate y",
)
argparser.add_argument(
'-c_w',
'--crop_w',
type=int,
help="crop width",
)
argparser.add_argument(
'-c_h',
'--crop_h',
type=int,
help="crop height",
)
argparser.add_argument(
'-p_m',
'--pad_mode',
type=int,
help=" 0: pad 2 sides, 1: pad 1 side, 2: no pad.",
)
argparser.add_argument(
'-n_m',
'--norm_mode',
help="normalizaton mode: yolo, kneron, tf."
)
argparser.add_argument(
'-r_m',
'--rotate_mode',
type=int,
help="rotate mode:0,1,2"
)
argparser.add_argument(
'-bw',
'--bitwidth',
type=int,
help="Int for bitwidth"
)
argparser.add_argument(
'-r',
'--radix',
type=int,
help="Int for radix"
)
args = argparser.parse_args()
main_(args)