OpenCV中是掩码按位与运算

2024-01-06

我从 python 中的 opencv 开始,我有一个关于如何应用 mask 的问题

bitwise_and(src1, src2, mask=mask)

以下哪一项描述了实现:

  • A.全部按位,先屏蔽

    1. src1 与掩码进行“与”运算
    2. src2 与 mask 进行 AND 运算
    3. src1 和 src2 的剩余内容通过 AND 组合在一起
  • B.全部按位,图像优先

    1. src1 与 src2 进行 AND 运算
    2. 结果与掩码进行“与”运算
  • C. 条件 AND

    1. 掩码被“迭代”(例如循环)
    2. 对于 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(使用前将#替换为@)

OpenCV中是掩码按位与运算 的相关文章

随机推荐

  • 序言中不能有内容

    我正在尝试转换xml到 html 使用xslt 我正在使用java xml transform在java中执行此操作 它工作得很好 直到我遇到了一些xml 它说以下错误 Fatal Error 1 1 Content is not allo
  • 哪个 Linux 进程处理系统调用?

    这可能是一个愚蠢的问题 但我正在使用 gdb 调试一个二进制文件 试图对其进行 逆向工程 并到达一条指令 该指令进行系统调用 之后出现我想要逆向工程的效果 我假设另一个进程正在接管并完成这项工作 所以我想知道是否可以调试使用 gdb 处理系
  • 如何将整数四舍五入到接近百位?

    我不知道我的命名是否正确 无论如何 这些是我拥有的整数 例如 76 121 9660 我想将它们四舍五入到接近一百 例如它们必须变成 100 100 9700 如何在 C 中更快地完成此操作 我想到了一种算法 但也许 C 上有一些实用程序
  • 为什么大多数序列化器使用流而不是字节数组?

    我目前正在开发套接字服务器 我想知道 为什么序列化器喜欢 Xml序列化器 https msdn microsoft com en us library system xml serialization xmlserializer v vs
  • 在 OpenCV 中使用 SURF 测量模式识别的准确性

    我目前正在 OpenCV 中使用 SURF 进行模式识别 到目前为止我有什么 我已经用 C 编写了一个程序 我可以在其中选择源图像和我想要查找的模板 之后 我将两张图片传输到 C dll 中 在其中使用 OpenCV SURFDetecto
  • 对象引用未设置为对象的实例(将列表映射到自动映射器)[重复]

    这个问题在这里已经有答案了 我正在尝试向 dto 添加一个列表 以便使用 AutoMapper 将 dto 顶部映射到实际的上下文类 出于某种原因 当我将列表添加到 dto 的属性并映射它时 在调试时它会抛出错误有这个特例 The obje
  • Spring MVC 4.2+ CORS 返回 403

    我创建了一个新鲜且简单的 Spring MVC 应用程序 使用 4 2 1 Release 现在切换到 4 2 7 Release 该应用程序很简单 WEB XML
  • 如何在不使用字符串名称的情况下引发 PropertyChanged 事件

    如果能够在不显式指定已更改属性的名称的情况下引发 PropertyChanged 事件 那就太好了 我想做这样的事情 public string MyString get return myString set ChangeProperty
  • ANTLR4 RegEx 词法分析器模式

    我正在为 XSD 内的 RegEx 开发一个 Regex 解析器 我之前的问题描述如下 ANTLR4 解析正则表达式 https stackoverflow com questions 34177478 antlr4 parsing reg
  • 不允许 Angular2 多个构造函数实现 TS2392

    如何避免在组件中使用多个构造函数 目前我收到错误 不允许多个构造函数实现 questions any constructor service QuestionSignupStepOneService this questions servi
  • 我可以通过 NSURLSession 在 Swift 中以某种方式执行同步 HTTP 请求吗

    我可以通过某种方式进行同步 HTTP 请求吗NSURLSession在斯威夫特 我可以通过以下代码执行异步请求 if let url NSURL string https 2ch hk b threads json let task NSU
  • 在java中从布尔值转换为字节

    我需要将字节值设置为方法参数 我有布尔变量isGenerated 它决定了该方法中要执行的逻辑 但我可以直接将布尔值作为字节参数传递 这是不允许的 并且不能在java中进行转换 所以我现在的解决方案如下所示 myObj setIsVisib
  • playframework如何从href中的html调用带有一个参数的方法?

    我有以下路线 GET company dev alvazan com test Web test GET company dev alvazan com samplepage Web samplePage 我可以访问 xxxx dev al
  • TCP 服务器未从客户端接收到正确的字节数

    我正在做一个用C语言进行TCP连接的小项目 标题中提到了我的代码的问题 以下是我的代码的上传部分 客户端 FILE fp fopen f2d rb if fp NULL perror Fail to upload client else f
  • 错误:请在 Android Studio 2.0 中选择 Android SDK

    我正在使用 Android Studio 2 0 Beta2 并且我正在尝试运行使用 google 地图 api v1 包com google android maps 作为 jar 文件 要运行这个旧项目 我需要指定早于上一个版本 23
  • Python 导入、路径、目录和模块

    首先我要说的是 我在过去的一周里做了广泛的研究 但还没有找到这些问题的实际答案 只是一些模糊的答案 并不能真正解释正在发生的事情 如果这只是因为我错过了我想要的东西 我很抱歉 请为我指出正确的方向 我的目录结构是 TestProject r
  • Spring Boot Web 应用程序错误:在名称为“dispatcherServlet”的 DispatcherServlet 中未找到带有 URI [/] 的 HTTP 请求的映射

    我检查了有关此警告的其他问题 但没有人工作 IDE Spring工具套件3 9 4 Java Oracle Java 8 当我尝试打开网页时显示错误页面 尝试本地主机 8080 https i stack imgur com FkoUo j
  • 主要 JavaScript 数据结构

    我即将参加面试 公司的核心技术之一是 JavaScript 有人告诉我 下一次面试将重点讨论 JS 数据结构 这个术语在我的任何教育中都从未出现过 我在谷歌上花了一段时间试图找到更多关于它们的信息 我能遇到的最好的事情是这个维基百科页面 h
  • PHP:open_basedir 允许的路径

    我有几个电话要打给is dir在一页上 他们一直工作没有问题 几天前 托管公司将PHP从5 2升级到5 3 从那时起 我所有的电话is dir导致以下错误 消息 Warning is dir open basedir restriction
  • OpenCV中是掩码按位与运算

    我从 python 中的 opencv 开始 我有一个关于如何应用 mask 的问题 bitwise and src1 src2 mask mask 以下哪一项描述了实现 A 全部按位 先屏蔽 src1 与掩码进行 与 运算 src2 与