在jupyter笔记本电脑中使用opencv时出错:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在jupyter笔记本电脑中使用opencv时出错:相关的知识,希望对你有一定的参考价值。

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

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:位置参数跟随关键字参数

答案

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)

另一答案

错误是因为您在== kernel_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)

解决此问题

另一答案

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

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)
另一答案

用途:

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

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

在python中,在调用函数时,语法要求您先提及关键字参数(op=cv2.MORPH_OPEN),然后再提及位置参数(任何未明确提及关键字或参数名称的地方)。对于位置参数,参数的顺序很重要。

以上是关于在jupyter笔记本电脑中使用opencv时出错:的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spacy 使用 PySpark 和 Jupyter 解析文本时出错

启动jupyter Notebook时出错

使用jupyter notebook时导入文件时出错

在Jupyter中导入csv文件时出错

Ipython笔记本(jupyter),opencv(cv2)和绘图?

在 Jupyter 笔记本上导入 openCV 时出现问题,即使它安装在我的机器上