首页 PaddleOCR 帖子详情
分享argparse使用案例
收藏
快速回复
PaddleOCR 文章OCR 2671 31
分享argparse使用案例
收藏
快速回复
PaddleOCR 文章OCR 2671 31

网上很多写的感觉不是很好,不经意间在PaddleOCR中发现一个不错的案例,特地拿来分享一下:

import os
import argparse
import json


def gen_rec_label(input_path, out_label):
    with open(out_label, 'w') as out_file:
        with open(input_path, 'r') as f:
            for line in f.readlines():
                tmp = line.strip('\n').replace(" ", "").split(',')
                img_path, label = tmp[0], tmp[1]
                label = label.replace("\"", "")
                out_file.write(img_path + '\t' + label + '\n')


def gen_det_label(root_path, input_dir, out_label):
    with open(out_label, 'w') as out_file:
        for label_file in os.listdir(input_dir):
            img_path = root_path + label_file[3:-4] + ".jpg"
            label = []
            with open(os.path.join(input_dir, label_file), 'r') as f:
                for line in f.readlines():
                    tmp = line.strip("\n\r").replace("\xef\xbb\xbf",
                                                     "").split(',')
                    points = tmp[:8]
                    s = []
                    for i in range(0, len(points), 2):
                        b = points[i:i + 2]
                        b = [int(t) for t in b]
                        s.append(b)
                    result = {"transcription": tmp[8], "points": s}
                    label.append(result)

            out_file.write(img_path + '\t' + json.dumps(
                label, ensure_ascii=False) + '\n')


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--mode',
        type=str,
        default="rec",
        help='Generate rec_label or det_label, can be set rec or det')
    parser.add_argument(
        '--root_path',
        type=str,
        default=".",
        help='The root directory of images.Only takes effect when mode=det ')
    parser.add_argument(
        '--input_path',
        type=str,
        default=".",
        help='Input_label or input path to be converted')
    parser.add_argument(
        '--output_label',
        type=str,
        default="out_label.txt",
        help='Output file name')

    args = parser.parse_args()
    if args.mode == "rec":
        print("Generate rec label")
        gen_rec_label(args.input_path, args.output_label)
    elif args.mode == "det":
        gen_det_label(args.root_path, args.input_path, args.output_label)
0
收藏
回复
全部评论(31)
时间顺序
ninetailskim
#22 回复于2020-12

其实也可以使用argparse中group的语法

0
回复
AIStudio810260
#23 回复于2020-12
现在都用什么,比较好奇

来了来了,百人血书语法高亮【滑稽】

3/100

0
回复
thinc
#24 回复于2020-12
来了来了,百人血书语法高亮【滑稽】 3/100

姐 我那两人中有你了,哈哈哈

0
回复
AIStudio810260
#25 回复于2020-12
thinc #24
姐 我那两人中有你了,哈哈哈

我知道啊,这不是加了楼下吗

0
回复
thinc
#26 回复于2020-12
我知道啊,这不是加了楼下吗

慢了半拍 = =

0
回复
AIStudio810260
#27 回复于2020-12
thinc #26
慢了半拍 = =

太惨了,平均3天一个人

0
回复
thinc
#28 回复于2020-12
太惨了,平均3天一个人

去群里捞一捞~

0
回复
AIStudio810259
#29 回复于2020-12

我要抄抄抄

0
回复
AIStudio810258
#30 回复于2020-12
来了来了,百人血书语法高亮【滑稽】 3/100

说不定哪天就悄悄的更新了

0
回复
AIStudio810260
#31 回复于2020-12
我要抄抄抄

这个不用抄吧……

0
回复
潮流MI
#32 回复于2022-04

谢谢分享

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户