我试图理解函数cv2.bitwise_and(src1,src2,mask)的工作原理。所以我尝试了这段代码:
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]
不等于零,则会执行和操作。但我没有理解这一点。
答案 0 :(得分:3)
我认为你得到了正确的理解,你刚刚称错SELECT parameter, reportDate, count
FROM
(SELECT parameter,
reportDate,
count,
@reportDate_rank := IF(@current_reportDate = reportDate,@reportDate_rank + 1, 1) AS reportDate_rank,
@current_reportDate := reportDate
FROM report
ORDER BY reportDate, count DESC
) dateRanked
WHERE reportDate_rank <= 10;
。使用
bitwise_and
从the documentation开始,res=cv2.bitwise_and(src1,src1,mask=mask_bin)
只有两个源图像。
cv2.bitwise_and(src1,src2 [,dst [,mask]])→dst
给它一个没有其他信息的第三个参数(bitwise_and
),它默认将它视为它的第一个选项参数,即mask_bin
,一个输出数组。你需要告诉他你希望dst
成为mask optionnal参数。
替换此行会产生mask_bin
,这是您应该期待的。