首页 > 解决方案 > 解析两个参数错误:模块 'cv2.cv2' 没有属性 'read'

问题描述

我正在尝试通过在 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 新手,请告诉我如何解析两个参数。

标签: pythonopencv

解决方案


ap.add_argument("-l", "--location", required = True, help = "Filename")

表示--location参数是必需的。这将返回错误。


推荐阅读