python-opencv函数调用时指定形参名和不指定得到的结果不一样?

hu365958153 2017-10-13 09:52:19
最近在使用python-opencv做霍夫圆检测时发现,调用cv2.HoughCircles这个函数传参数的时候,指定param1,param2,minRadius,maxRadius的形参名和不指定形参名直接传数值的运行结果不一样?一个能检测出来圆一个检测不出来。大家有知道为什么的么?代码如下:

import cv2
import numpy as np

im = cv2.imread('eye.png')
im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)

##### detect circles #####
circles = cv2.HoughCircles(im_gray, cv2.HOUGH_GRADIENT, 1, 100, param1=100, param2=30, minRadius=120, maxRadius=180)
#下面这个调用是检测不出圆的错误结果
circles = cv2.HoughCircles(im_gray, cv2.HOUGH_GRADIENT, 1, 100, 100, 30, 120, 180)

for i in circles[0,:]:
cv2.circle(im, (i[0], i[1]), i[2], (0,0,255), 2)

cv2.imshow("result", im)
cv2.waitKey()

里面两次调用HoughCircles的时候第一种可以检测出来,第二种检测不出来,参数都是一样的,只是一个指定了形参名一个没指定,为什么呀?
另外,我查opencv的文档时候,看见这个函数在文档说明里的写法是:
HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) -> circles
里面那一堆中括号是什么意思?就是说调用的时候需要指定形参名么?
求教了,谢谢大家
...全文
972 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧