cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
我想了解这个函数需要什么参数,为此我正在阅读这个页面http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#bitwise-and
它说这个函数接受以下参数
但是,我不理解这个函数的表示,比如,为什么方括号中的函数参数以及逗号的位置令人困惑。请解释一下。
答案 0 :(得分:0)
这个库的文档似乎没有指定我使用的正式语法,但是很多开发人员会认识到convention使用方括号来表示可选字段/参数。
如果我们遵循这个惯例,然后细分他们提供的定义:
cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
这表示函数bitwise_and
无条件地输入src1
和src2
作为输入。 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
但是,由于文档没有正式定义的语法,因此可以解释和推测。