我从 python 中的 opencv 开始,我有一个关于如何应用掩码的问题
bitwise_and(src1, src2, mask=mask)
以下哪些描述了实现:
A. 全部按位,先屏蔽
B. 全部按位,图像优先
C. 有条件的 AND
我认为每个的性能特征可能略有不同。
其中哪些(或其他方式)是实际实现?(以及为什么,如果我可以问)
我试图查看源代码,但无法完全弄清楚他们做了什么: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)
Run Code Online (Sandbox Code Playgroud)
我们得到以下信息:
2. 对彩色图像进行遮罩:
您也可以使用相同的功能屏蔽给定彩色图像的某个区域。
考虑下图:
并考虑将屏幕 1(上面给出)作为掩码
fin = cv2.bitwise_and(image, image, mask = screen1)
cv2.imwrite("Masked image.jpg", fin)
Run Code Online (Sandbox Code Playgroud)
给你:
注意:在执行按位与操作时,图像必须具有相同的大小
如果您查看文档,第三个参数是您错过的目标图像。
仅当掩码如此表示时,此操作才会更改目标图像的值(在这种情况下,它将执行两个源图像的按位与)。对于不在掩码中的像素,目标将包含之前包含的相同值。
| 归档时间: |
|
| 查看次数: |
11098 次 |
| 最近记录: |