我正在尝试使用python中的参数解析器库从命令行传递两个参数。 一个论据是我提供的输入图像 第二个参数是保存我的图像的名称。
这是Python代码:
import argparse
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-r", "--image", required = True, help = "Path to the image")
ap.add_argument("-l", "--location", required = True, help = "Filename")
args = vars(ap.parse_args())
image = cv2.imread(args["image"])
location = cv2.read(args["location"])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_,thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
im_thresh_gray = cv2.bitwise_and(gray, thresh)
mask3 = cv2.cvtColor(thresh, cv2.COLOR_GRAY2BGR)
im_thresh_color = cv2.bitwise_and(image, mask3)
cv2.imwrite(location, im_thresh_color)
print("[Info]:Processing Completed.")
我提供的命令是:
python image_thcolor.py --image image_test.jpg -l output.jpg
这是我得到的错误:
AttributeError:模块'cv2.cv2'没有属性'read'
由于我是python新手,请告诉我如何解析两个参数。
答案 0 :(得分:0)
ap.add_argument("-l", "--location", required = True, help = "Filename")
表示必须使用--location
参数。返回错误。
答案 1 :(得分:0)
您正在指定所需的location参数:
ap.add_argument("-l", "--location", required = True, help = "Filename")
您可以将该参数传递给脚本,也可以使用required=False