【问题标题】:why do I get error in rectangle() command in opencv even though my syntax is correct即使我的语法正确,为什么我在 opencv 中的 rectangle() 命令中出现错误
【发布时间】:2020-01-02 09:53:05
【问题描述】:
TypeError                                 
Traceback (most recent call last)
<ipython-input-3-6da0b764e8c2> in <module>
----> 1 cv2.rectangle(blank_img,pt1=(384,0),pt2=(510,150),colour=(0,0,255),thickness=10)
      2 plt.imshow(blank_img)

TypeError: rectangle() missing required argument 'rec' (pos 2)

【问题讨论】:

  • 向我们展示您的代码
  • 从函数调用中移除变量。只需像这样输入数字。 cv2.rectangle(图像,(384,0),(510,150),(0,0,255),10)

标签: python opencv ubuntu jupyter-notebook


【解决方案1】:

所以你的问题似乎是你使用了一些随机的关键字参数,它不会像这样工作。

例如:

def some_function(param1, param2):
    print(param1, param2)

现在调用此函数将同时起作用:

>>> some_function("value of param1", "value of param2")
value of param1 value of param2

>>> some_function(param1="value of param1", param2="value of param2")
value of param1 value of param2

甚至

>>> some_function(param2="value of param2", param1="value of param1")
value of param1 value of param2

但是使用随机参数名称不会像这样工作:

      >>> some_function(newparam="new param",another_new_param="another new param")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: some_function() got an unexpected keyword argument 'newparam'

【讨论】:

  • 您重现的错误与OP显示的不一样。
  • 不完全是,但重点是。不要使用一些随机参数名称。我测试了带有和不带有参数名称的 OP-s cv2.rectangle。猜猜哪个有效。
  • @quamrana 错误与 OP 显示的不同的原因是因为 OpenCV 不是 Python 库。它收集参数并将它们传递给 C++ 函数调用,并且 OP 的错误消息就是您在此实例中得到的。 Python 处理的“更好”错误消息更有意义,但至少它们都是TypeErrors。
猜你喜欢
  • 1970-01-01
  • 2014-11-02
  • 2021-12-17
  • 2020-11-27
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多