当将参数传递给python / opencv函数时,给出参数'名称并没有导致不同的结果,为什么

时间:2017-10-13 14:33:13

标签: python opencv

这里:

import cv2
import numpy as np

im = cv2.imread('eye.png')
im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(im_gray, cv2.HOUGH_GRADIENT, 1, 100, 100, 30, 120, 180)
circles = cv2.HoughCircles(im_gray, cv2.HOUGH_GRADIENT, 1, 100, param1=100, param2=30, minRadius=120, maxRadius=180)

cv2.HoughCircles的两个函数调用得到不同的结果,第一个检测到没有圆,但第二个检测到圆圈。为什么呢?

另外,在opencv文档中,这是函数表达式:

  

cv2.HoughCircles(image,method,dp,minDist [,circles [,param1 [,   param2 [,minRadius [,maxRadius]]]]])→圆圈

这些括号是什么意思?

1 个答案:

答案 0 :(得分:2)

括号表示内部是可选的。

基于此文档:

  

cv2.HoughCircles(image,method,dp,minDist [,circles [,param1 [,param2 [,minRadius [,maxRadius]]]]])→圆圈

您的第一个电话是使用这些参数,而忽略了class HomeView(TemplateView): template_name = "home.html" def get_context_data(self, *args, **kwargs): context = super(HomeView, self).get_context_data(*args, **kwargs) context["form"] = SearchForm() return context

maxRadius

您的第二个电话正在使用这些参数,而忽略了circles = cv2.HoughCircles( im_gray, # image cv2.HOUGH_GRADIENT, # method 1, # dp 100, # minDist 100, # circles 30, # param1 120, # param2 180 # minRadius # maxRadius )

circles