错误:需要以下参数:-i/--image
Posted
技术标签:
【中文标题】错误:需要以下参数:-i/--image【英文标题】:Error: the following arguments are required: -i/--image 【发布时间】:2021-07-12 04:14:06 【问题描述】:我对 argparse 的含义不是很了解。当我用这段代码测试时,它总是这个错误:
usage: test1.py [-h] -i IMAGE
test1.py: error: the following arguments are required: -i/--image
这是我的代码:
# (1) import the necessary packages
import argparse
import imutils
import cv2
# (2) construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True, help="path to the input image")
args = vars(ap.parse_args())
# (3) load the image, convert it to grayscale, blur it slightly,
# and threshold it
image = cv2.imread(args["image"])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) cv2.imwrite('C:\\Users\\Hoang Cao Chuyen\\Downloads\\shapes.png', gray)
blurred = cv2.GaussianBlur(gray, (5,5), 0)
cv2.imwrite('C:\\Users\\Hoang Cao Chuyen\\Downloads\\shapes.png', blurred)
thresh = cv2.threshold(blurred, 60, 255, cv2.THRESH_BINARY)[1]
cv2.imwrite('C:\\Users\\Hoang Cao Chuyen\\Downloads\\shapes.png', thresh)
# find contours in the thresholded image
cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if imutils.is_cv2() else cnts[1]
【问题讨论】:
你在命令行中输入了什么?当你设置required=True
时,你需要像test1.py -i image
这样输入,test1.py image
会报错。
你是如何测试这个的? image
的值是多少,您是如何提供的?
使用pycharm
,您必须在一些额外的窗口中指定命令行参数。您不能只按run
按钮。我不知道为什么许多新用户会错过这个。 IDE 文档没有解释如何使用参数运行脚本吗?
谢谢你们。你这么好心回答我。正如我首先所说,我没有理解argparse的极端含义。我阅读了一些文档但仍然无法。
path 的输入是我的 C:/ 路径中的图像,但是'-image','-i',我不知道它来自哪里?
【参考方案1】:
这行代码添加了一个必需的标志-i
或--image
:
ap.add_argument("-i", "--image", required=True, help="path to the input image")
这意味着脚本希望您使用参数指定 -i
或 --image
标志,如下所示:
python test1.py --image C:\path\to\image.png
如果您希望图像路径成为位置参数,则可以将该行代码更改为:
ap.add_argument("image", help="path to the input image")
然后你可以这样调用你的脚本:
python test1.py C:\path\to\image.png
相关文档:https://docs.python.org/3/library/argparse.html#name-or-flags
【讨论】:
根据您的建议和我的理解,我尝试在终端中编写代码:python test1.py --image C:\pythonProject\venv\bill_gates.jfif,但失败了。 @ChuyênHoàng 你收到了什么错误信息?确保python
在您的路径上或引用正确的 Python 可执行文件,并且 test1.py
应该是您的脚本文件的路径。
在 Youtube 上找到一些东西后,我修复了错误。答案和你的一样。谢谢
另一个错误出现在我的代码中,不再出现在 argparse 中以上是关于错误:需要以下参数:-i/--image的主要内容,如果未能解决你的问题,请参考以下文章