我试图了解函数cv2.bitwise_and(src1,src2,掩码)是如何工作的。所以我尝试了这个代码:
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]不等于零,就会执行and操作。但我不明白为什么。
发布于 2017-04-04 08:48:03
我认为你的理解是正确的,你只是说bitwise_and错了。使用
res=cv2.bitwise_and(src1,src1,mask=mask_bin)在文献资料中,bitwise_and唯一的强制参数是两个源图像。
cv2.bitwise_and(src1,src2[,dst,掩码])→dst
给它一个没有其他信息的第三个参数(mask_bin),默认情况下,它将把它作为第一个选项参数,即dst,一个输出数组。你需要告诉他,你想让mask_bin成为备选论点的面具。
替换这一行将给出[0,0,3],这正是您应该期望的。
https://stackoverflow.com/questions/43202067
复制相似问题