2017-06-03 132 views
0

cv2.bitwise_and(src1, src2[, dst[, mask]]) → dstPython函數原型OpenCV庫

我想明白了,這個功能需要什麼樣的參數,併爲我在閱讀此頁http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#bitwise-and

它說,這個功能需要以下參數

  • SRC1陣列
  • SRC2陣列
  • DES陣列
  • 面具[可選]

但是,我不明白這個函數的表示,比如,爲什麼在方括號中的函數參數,並且還,逗號的位置是混亂的。請解釋 。

+0

雖然他們沒有在他們的文檔中說明,但按照慣例,方括號表示可選字段/參數 – FujiApple

+0

在這個唯一的掩碼中是可選的,所以不應該是cv2.bitwise_and(src1,src2,dst,[mask]) →dst ?? –

回答

0

這個庫的文檔似乎沒有指定正式的語法,據我所知,然而許多開發人員會認識到使用方括號表示可選字段/參數的convention

如果我們遵守這個約定,然後打破他們提供的定義:

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

這表示該函數bitwise_and需要src1src2作爲輸入無條件。 dst出現在[...]塊內,表明它是可選的。 mask參數顯示爲另一個嵌套在dst可選塊內的可選塊,這表明它不僅是可選塊,而且它只在先前在外部塊中指定dst時才相關。

所以這個文件表明,以下都是有效的輸入:

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)。嚴格地說,我們可以在不提供dst的情況下提供mask,但是文檔是暗示對我們來說,如果沒有指定dst,它將不會被使用。

猜測:我對這個庫一點都不熟悉,但我猜想dst是可選的,如果沒有提供,輸出將從函數返回。如果是的話它可能是mask可實際上dst提供獨立的,如果是的話我會認爲,一個更好的文檔字符串本來:

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

但同樣因爲沒有正式定義語法文件它是開放的解釋和猜測。