【问题标题】:Getting an error while using opencv in jupyter notebook:在 jupyter notebook 中使用 opencv 时出错:
【发布时间】:2020-02-04 17:24:58
【问题描述】:

使用这段代码时遇到语法错误:

kernel_1 = np.ones((5, 5), np.uint8)

img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,kernel_1)

错误信息:

img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,kernel_1) ^ SyntaxError: 位置参数跟随关键字参数

【问题讨论】:

  • 你的论点倒退了。试试kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel, iterations=1)

标签: python opencv jupyter image-morphology


【解决方案1】:

错误是因为你在kernal_1之前对参数使用了=语句

如果你这样做,python 会报错,解决方案是试试这个:

kernel_1 = np.ones((5, 5), np.uint8)

img_open = cv2.morphologyEx(img, kernel_1,op=cv2.MORPH_OPEN)

我不知道参数的位置是否正确,但什么时候可以解决你的问题

否则你也可以这样做:

img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,{parameter_name}=kernel_1)

解决这个问题

【讨论】:

  • 这给出了错误:----> 3 img_open =cv2.morphologyEx(img, kernel_1,op=cv2.MORPH_OPEN) TypeError: Argument given by name ('op') and position (2)
【解决方案2】:

您不能在关键字参数之后跟随位置参数。

func(my_argu=True)  # keyword argument i.e. position doesn't matter. it always goes to my_argu
func(my_argh_1, my_arg_2)  # positional argument i.e. position/order matters

所以要在不查看文档的情况下完成您的功能:

cv.morphology(img, kernel_1, op=cv2.MORPH_OPEN)
or 
cv2.morphologyEx(img, cv2.MORPH_OPEN,kernel_1)

【讨论】:

  • 只需删除op = 即可完美运行
  • 好。如果解决了问题,请务必标记为已回答。
【解决方案3】:

img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,kernel_1)

op= cv.MORPH_OPEN 是关键字参数,imgkernel_1 是位置参数。

python 不允许在位置参数之前使用关键字参数

试试cv2.morphologyEx(img, cv2.MORPH_OPEN,kernel_1)

【讨论】:

  • 只需删除op=即可完美运行
猜你喜欢
  • 2021-05-31
  • 1970-01-01
  • 2021-12-02
  • 2020-06-02
  • 2021-03-31
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多