为什么我会收到此错误?语法错误:位置参数跟随关键字参数[关闭]

问题描述 投票:0回答:1

here is the code screenshot

and this is the error its showing

我正在制作一个手部识别应用程序,当我输入手部地标编号时,它应该在其周围画一个圆圈。这工作正常,但是当我尝试填充圆圈时,它应该填充它,但我不知道为什么,cv2.FILLED 显示错误。有什么问题吗?

python syntax-error
1个回答
-1
投票

解决方案:

if filled:
    cv2.circle((lmlist[1], lmlist[2]), radius=radius, color=(col[3], col[2], col[1]), thickness=cv2.FILLED)
else:
    ...

说明:

您的代码有两个问题。

首先,正如Friedrich在你的问题的评论中提到的那样,你不能在关键字参数之后有位置参数。也就是说,你不能在 Python 中执行此操作:

func(1, 2, x=3, y='b', 8)
#                     ^^^
# This must also be a keyword argument

其次,您将

thickness
的值传递两次。 这是
cv2.circle
的函数签名:

def circle(
    img: cv2.typing.MatLike, 
    center: cv2.typing.Point, 
    radius: int, 
    color: cv2.typing.Scalar, 
    thickness: int = ..., 
    lineType: int = ..., 
    shift: int = ...) -> cv2.typing.MatLike:

要填充圆圈,您可以传递

-1
(或
cv2.FILLED
)作为
thickness
参数。 检查文档中的
cv2::circle

厚度 圆形轮廓的厚度(如果为正)。负值(如 FILLED)表示要绘制实心圆。

© www.soinside.com 2019 - 2024. All rights reserved.