目录
argparse库用于解析命令行参数,通常用于从命令行传入参数以控制程序。此处将示范两种传递参数的方式,分别是pycharm中和命令提示符中。
1.参数定义
import argparse
ap = argparse.ArgumentParser()
# 创建一个ArgumentParser()对象ap,用于解析命令行参数
ap.add_argument("-i", "--image", required=True,help="path to input image")
# 添加一个命令行参数
# -i或--image指定参数名称,可以通过-i或--image参数指定输入图像的路径
# required=True表示该参数是必须的,必须提供输入图像的路径
# help="path to input image" 提示用户该参数是用于指定输入图像的路径
ap.add_argument("-t", "--template", required=True,help="path to template OCR-A image")
# 添加另一个命令行参数,类似于上一步
# -t或--template指定参数名称,可以通过-t或--template参数指定OCR-A模板图像的路径
# required=True表示该参数是必须的,必须提供OCR-A模板图像的路径
# help="path to template OCR-A image" 提示用户该参数是用于指定OCR-A模板图像的路径
args = vars(ap.parse_args())
# 使用ap.parse_args()方法解析命令行参数,并将解析后的结果存储在args变量中
# parse_args()会自动处理命令行参数并返回一个包含解析结果的Namespace对象
# vars()方法将Namespace对象转换为包含对象的属性和值的字典
程序中可以通过args["image"]和args["template"]来获取用户传入的图像路径和模板路径。
2.pycharm传递参数
1)找到编辑环境变量
2)添加参数
在script parameters中输入以下代码:
-i ./images/credit_card_01.png -t ocr_a_reference.png
单击OK,完成。
3)参数使用
使用此参数传入指定图片
img = cv2.imread(args["template"])
cv2.imshow('img', img)
cv2.waitKey(0)
image = cv2.imread(args["image"])
cv2.imshow('image',image)
cv2.waitKey(0)
运行结果
3.命令提示符传递参数
首先进入程序文件所在路径,然后运行以下命令:
python main.py -i ./images/credit_card_01.png -t ocr_a_reference.png
# main.py为Python脚本文件名
# ./images/credit_card_01.png为图片路径
# ocr_a_reference.png为模板路径
# -i和-t是在ap.add_argument()中定义的参数名
运行结果同上。