import os
import argparse
import numpy as np
import cv2
from scipy.io import savemat
def postprocess_om(args):
"""[om model postprocess]
Args:
args ([argparse]): [om model postprocess args]
"""
if not os.path.exists(args.om_output):
os.mkdir(args.om_output)
img_name_list = os.listdir(args.imgs_dir)
for img_name in img_name_list:
if img_name.endswith(('jpg', 'png', 'jpeg', 'bmp')):
img = cv2.imread(os.path.join(args.imgs_dir, '{}'.format(img_name)))
h, w, c = img.shape
img_out = np.fromfile('{}/{}_5.bin'.format(args.bin_dir, img_name[:-4]), dtype="float32")
img_out = img_out.reshape((h, w))
key = "om_result"
savemat('{}/{}.mat'.format(args.om_output, img_name[:-4]), {key: img_out})
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='rcf postprocess')
parser.add_argument('--imgs_dir', default='BSR/BSDS500/data/images/test',
type=str, help='images path')
parser.add_argument('--bin_dir', default='results_bs1',
type=str, help='bin file path inferred by benchmark')
parser.add_argument('--om_output', default='om_out',
type=str, help='om postprocess output dir')
args = parser.parse_args()
postprocess_om(args)