我从 python 中的 opencv 开始,我有一个关于如何应用 mask 的问题
bitwise_and(src1, src2, mask=mask)
以下哪一项描述了实现:
-
A.全部按位,先屏蔽
- src1 与掩码进行“与”运算
- src2 与 mask 进行 AND 运算
- src1 和 src2 的剩余内容通过 AND 组合在一起
-
B.全部按位,图像优先
- src1 与 src2 进行 AND 运算
- 结果与掩码进行“与”运算
-
C. 条件 AND
- 掩码被“迭代”(例如循环)
- 对于 mask 中的每个像素,如果它非零,则对 src1、src2 中的对应像素进行 AND 运算并复制到输出
我认为每个的性能特征可能略有不同。
其中哪一个(或其他方式)是实际实现的? (以及为什么,如果我可以问的话)
我试图查看来源,但无法完全弄清楚他们做了什么:https://github.com/opencv/opencv/blob/ca0b6fbb952899a1c7de91b909d3acd8e682cedf/modules/core/src/arithm.cpp https://github.com/opencv/opencv/blob/ca0b6fbb952899a1c7de91b909d3acd8e682cedf/modules/core/src/arithm.cpp
我已经制定了两个实现cv2.bitwise_and()
使用彩色图像和二值图像。
1. 使用二值图像
假设我们有以下二值图像:
屏幕 1:
屏幕 2:
按位执行时:
fin = cv2.bitwise_and(screen1, screen2)
cv2.imwrite("Final image.jpg", fin)
我们得到以下信息:
2. 对彩色图像进行遮罩:
您也可以使用相同的函数屏蔽给定彩色图像的特定区域。
考虑下图:
并考虑Screen 1(上面给出)作为面具
fin = cv2.bitwise_and(image, image, mask = screen1)
cv2.imwrite("Masked image.jpg", fin)
给你:
Note:执行按位 AND 运算时,图像必须具有相同的大小
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)