Python在Opencv库中运行原型

时间:2017-06-03 08:48:39

标签: python opencv

cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst

我想了解这个函数需要什么参数,为此我正在阅读这个页面http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#bitwise-and

它说这个函数接受以下参数

  • src1 array
  • src2 array
  • des array
  • 面具[可选]

但是,我不理解这个函数的表示,比如,为什么方括号中的函数参数以及逗号的位置令人困惑。请解释一下。

1 个答案:

答案 0 :(得分:0)

这个库的文档似乎没有指定我使用的正式语法,但是很多开发人员会认识到convention使用方括号来表示可选字段/参数。

如果我们遵循这个惯例,然后细分他们提供的定义:

cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst

这表示函数bitwise_and无条件地输入src1src2作为输入。 dst块内显示[...],表示它是可选的。 mask参数显示为嵌套在dst可选块中的另一个可选块,这表示它不仅是可选的,而且仅在我们之前指定{{{ 1}}在外部区块。

因此,本文档建议以下所有内容均为有效输入:

dst

但暗示这将是无效的(以某种未定义的方式):

cv2.bitwise_and(src1, src2)
cv2.bitwise_and(src1, src2, dst)
cv2.bitwise_and(src1, src2, dst, mask)

但是,如果我们查看实际的 Python函数定义,它将如下所示:

cv2.bitwise_and(src1, src2, mask)

现在我们可以清楚地看到def bitwise_and(src1, src2, dst=None, mask=None): # real signature unknown; restored from __doc__ """ bitwise_and(src1, src2[, dst[, mask]]) -> dst """ pass dst都是可选的(默认为mask)。严格来说,我们可以在不提供None的情况下提供mask,但文档暗示我们如果未指定dst则不会使用它。

推测:我一点都不熟悉这个库,但我猜测dst是可选的,好像没有提供,输出将从函数返回。如果是这样的话,dst实际上可以独立于mask提供,如果是这样,我会认为更好的文档字符串应该是:

dst

但是,由于文档没有正式定义的语法,因此可以解释和推测。