错误:需要以下参数:-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的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“错误:需要以下参数:-i / - image”

Python Argparse“需要以下参数”错误

Kivy buildozer:toolchain.py:错误:需要以下参数:--package

在python中解析命令行参数

如何修复:“错误:需要数据和哈希参数”

请我需要帮助,我是 react-native-reanimated 的新手,我遇到以下错误