cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
我试图理解,这个函数需要什么参数,为此我正在阅读这个页面 http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#bitwise-and
它说这个函数接受以下参数
但是,我不明白这个函数的表示,例如,为什么方括号中的函数参数以及逗号的位置令人困惑。请解释 。
最佳答案
据我所知,这个库的文档似乎没有指定使用的正式语法,但是许多开发人员会认出 convention。使用方括号来表示可选字段/参数。
如果我们遵循这个约定,然后分解他们提供的定义:cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
这表示函数 bitwise_and
需要src1
和 src2
无条件作为输入。 dst
出现在 [...]
中 block ,表示它是可选的。 mask
参数显示为嵌套在 dst
中的另一个可选 block 。可选 block ,这表明它不仅是可选的,而且只有在我们之前指定了 dst
时才相关。在外 block 。
因此,本文档建议以下都是有效输入:
cv2.bitwise_and(src1, src2)
cv2.bitwise_and(src1, src2, dst)
cv2.bitwise_and(src1, src2, dst, mask)
但暗示这将是无效的(以某种未定义的方式):
cv2.bitwise_and(src1, src2, mask)
但是,如果我们查看实际的 Python 函数定义,则如下所示:
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
提供如果是这样,我认为更好的文档字符串应该是:cv2.bitwise_and(src1, src2[, dst][, mask]) → dst
但同样,由于文档没有正式定义的语法,因此可以解释和推测。
关于Opencv 库中的 Python 函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342113/