首页 PaddleOCR 帖子详情
分享argparse使用案例
收藏
快速回复
PaddleOCR 文章OCR 2657 31
分享argparse使用案例
收藏
快速回复
PaddleOCR 文章OCR 2657 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)
时间顺序
AIStudio810258
#2 回复于2020-12

argparse非常方便

0
回复
AIStudio810258
#3 回复于2020-12

paddle的套件基本都用这个包

包括paddle clas、paddle detection、paddle seg、paddle gan

0
回复
AIStudio810258
#4 回复于2020-12

没图形界面当然只能这么解析参数了~~

0
回复
AIStudio810258
#5 回复于2020-12

专业工具包有带gui的么~~

0
回复
AIStudio810260
#6 回复于2020-12

再一次嫌弃社区没有代码高亮/狗头

0
回复
AIStudio810260
#7 回复于2020-12

这个案例可以当模板了,记下来

0
回复
水水水的老师
#8 回复于2020-12

现在都不用argparse了  有更好的

0
回复
AIStudio810260
#9 回复于2020-12
现在都不用argparse了  有更好的

搬起小板凳,大佬分享下……

0
回复
thinc
#10 回复于2020-12
再一次嫌弃社区没有代码高亮/狗头

不用狗头,百人血书语法高亮【滑稽】

2/100

0
回复
thinc
#11 回复于2020-12
专业工具包有带gui的么~~

可以用PyQT做一个,,我前段时间那个截屏识别就是

0
回复
AIStudio810260
#12 回复于2020-12
thinc #10
不用狗头,百人血书语法高亮【滑稽】 2/100

这个有点难,每月兑换贴都不一定有百人/狗头

0
回复
周小鱼whoyou
#13 回复于2020-12

谢谢分享

0
回复
thinc
#14 回复于2020-12
这个有点难,每月兑换贴都不一定有百人/狗头

你发现没现在兑换贴官方都没有传送门了

0
回复
AIStudio810260
#15 回复于2020-12
thinc #14
你发现没现在兑换贴官方都没有传送门了

给我们每月发帖的机会/狗头

0
回复
AIStudio810258
#16 回复于2020-12
现在都不用argparse了  有更好的

什么包?

0
回复
AIStudio810258
#17 回复于2020-12
thinc #10
不用狗头,百人血书语法高亮【滑稽】 2/100

番茄酱行不~

我用插件,看不出效果了。。。

0
回复
AIStudio810258
#18 回复于2020-12
thinc #11
可以用PyQT做一个,,我前段时间那个截屏识别就是[图片]

就是不想自己做才。。。

0
回复
AIStudio810258
#19 回复于2020-12
thinc #11
可以用PyQT做一个,,我前段时间那个截屏识别就是[图片]

以前生嫖mfc惯了~~

以后得注意版权,pyqt也差不太多

0
回复
r
rose20135188
#20 回复于2020-12

果断收藏了。谢谢分享。

0
回复
ninetailskim
#21 回复于2020-12
现在都不用argparse了  有更好的

现在都用什么,比较好奇

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