2017-04-04 75 views
1

我想了解的功能cv2.bitwise_and(SRC1,SRC2,面罩)是如何工作的。所以,我想這個代碼:bitwise_and它是如何工作的?

src1=np.array([1, 2, 3]) 

src1=np.uint8(src1) 

mask=np.array([1,1,4]) 

mask=np.uint8(mask) 

_, mask_bin= cv2.threshold(mask,3,1,cv2.THRESH_BINARY) 

res=cv2.bitwise_and(src1,src1,mask_bin) 

從技術文檔我理解和操作將做,如果不mask[I]等於零。但我沒有明白爲什麼。

回答

3

我覺得你有正確的理解,你剛纔叫bitwise_and錯誤。使用

res=cv2.bitwise_and(src1,src1,mask=mask_bin) 

the documentationbitwise_and唯一的強制性參數是兩個源的圖像。

cv2.bitwise_and(SRC1,SRC2 [,DST [,掩蔽]])→DST

給它的第三參數(mask_bin)不包含其他信息,它將被默認爲考慮它它的第一個選項參數,即dst,一個輸出數組。你需要告訴他你想讓mask_bin成爲掩模選項的參數。

更換該行給出[0,0,3],這是你應該期望什麼。

+0

那是當場上! –

+0

是的,你是對的。非常感謝 –

+0

@MohammedAwney因爲它解決你的問題,你可能要接受這個答案。 – Antonio

相關問題