Opencv 库中的 Python 函数原型(prototype)

标签 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 数组
  • src2 数组
  • des 数组
  • 掩码 [可选]

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

    最佳答案

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

    如果我们遵循这个约定,然后分解他们提供的定义:
    cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
    这表示函数 bitwise_and需要src1src2无条件作为输入。 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
    

    现在我们可以清楚地看到dstmask是可选的(都默认为 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/

    相关文章:

    python - 是否可以在不同线程上为不同图像运行 knnMatch?

    python - 如何抑制显示后续异常的父异常(原因)

    python - 将多个元素(基于条件)移动到列表末尾

    c++ - OpenCV WebAssembly

    python - 从明亮的彩条下发现图像

    python - 删除图像中的直线

    python - 将 distinct on (Postgres) 与 SqlAlchemy 一起使用的正确方法是什么?

    python - 将排列应用于列表的就地方法? (与按键排序相反)

    python - Elasticsearch 分页的最佳方法是什么?

    c++ - 捕获 OpenCV 后图像显示为绿色