OpenCV 中 TermCriteria 类型的差异:COUNT 和 MAX_ITER
Difference of TermCriteria type in OpenCV : COUNT and MAX_ITER
TermCriteria
的 The doc page 表示 MAX_ITER
与 COUNT
相同,类型可以是以下之一:COUNT
、EPS
或 COUNT + EPS
。我想知道 COUNT + EPS
和 MAX_ITER + EPS
之间是否有区别。我发现在不同的地方,有这两种不同的风格。 运行?
时会产生不同的效果吗
没有区别。 COUNT 和 MAX_ITER 意思相同。它们具有相同的值,因此无法区分。
好吧,它们的含义 取决于采用 TermCriteria 的函数 tuple/struct/object。不过,相同的值意味着标识符是可以互换的。
那些命名常量存在于枚举中。这些值被选择为位域中的位。所以它们实际上是 flags 并且通常应该与 |
(按位或运算符)结合使用。
+
是一个有趣的习俗,可能是因为以下原因...如果您给出两个终止条件,则算法会在其中任何一个为真时终止。所以一个人可以说 both 一个 and 另一个被给出了......现在人们的大脑回旋扭曲思考“和”和“要么”。将这些标志与 +
结合起来很好地回避了。
cv.TermCriteria_COUNT == 1
cv.TermCriteria_MAX_ITER == 1
cv.TermCriteria_EPS == 2
所以你的选择是:
COUNT (means MAX_ITER)
MAX_ITER (means COUNT)
EPS
COUNT + EPS
MAX_ITER + EPS
注意你不要说 COUNT + MAX_ITER
(错了!)因为那是1 + 1 = 2
并且 现在是 EPS
,这不是该表达式应该表达的意思。
文档可能不包含所有信息,它是从 OpenCV public 头文件(通过 doxygen 及其配置文件)生成的。
就用一个IDE/Editor,浏览源代码,搜索TermCriteria
,会看到MAX_ITER
和COUNT
枚举元素值。应该是一样的。
TermCriteria
的 The doc page 表示 MAX_ITER
与 COUNT
相同,类型可以是以下之一:COUNT
、EPS
或 COUNT + EPS
。我想知道 COUNT + EPS
和 MAX_ITER + EPS
之间是否有区别。我发现在不同的地方,有这两种不同的风格。 运行?
没有区别。 COUNT 和 MAX_ITER 意思相同。它们具有相同的值,因此无法区分。
好吧,它们的含义 取决于采用 TermCriteria 的函数 tuple/struct/object。不过,相同的值意味着标识符是可以互换的。
那些命名常量存在于枚举中。这些值被选择为位域中的位。所以它们实际上是 flags 并且通常应该与 |
(按位或运算符)结合使用。
+
是一个有趣的习俗,可能是因为以下原因...如果您给出两个终止条件,则算法会在其中任何一个为真时终止。所以一个人可以说 both 一个 and 另一个被给出了......现在人们的大脑回旋扭曲思考“和”和“要么”。将这些标志与 +
结合起来很好地回避了。
cv.TermCriteria_COUNT == 1
cv.TermCriteria_MAX_ITER == 1
cv.TermCriteria_EPS == 2
所以你的选择是:
COUNT (means MAX_ITER)
MAX_ITER (means COUNT)
EPS
COUNT + EPS
MAX_ITER + EPS
注意你不要说 COUNT + MAX_ITER
(错了!)因为那是1 + 1 = 2
并且 现在是 EPS
,这不是该表达式应该表达的意思。
文档可能不包含所有信息,它是从 OpenCV public 头文件(通过 doxygen 及其配置文件)生成的。
就用一个IDE/Editor,浏览源代码,搜索TermCriteria
,会看到MAX_ITER
和COUNT
枚举元素值。应该是一样的。