在 jupyter notebook 中使用 opencv 时出现错误:

Getting an error while using opencv in jupyter notebook:

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

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: positional argument follows keyword argument

错误是因为你在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)

解决这个问题

关键字参数后不能跟位置参数。

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, op= cv2.MORPH_OPEN,kernel_1)

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

python 位置参数前不允许关键字参数

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