使用 OpenCV 检测灰色物体

2023-11-23

我想使用 OpenCV 检测一个与场景中其他元素明显不同的对象,因为它是灰色的。这很好,因为我可以使用 R == G == B 运行测试,并且它允许独立于亮度,但逐像素执行速度很慢。

有没有更快的方法来检测灰色的东西?也许有一个 OpenCV 方法可以进行 R == G == B 测试......cv2.inRange进行颜色阈值处理,这不完全是我想要的。


我在 Python 中能找到的最快方法是使用切片来比较每个通道。经过几次测试运行后,该方法比两个嵌套 for 循环快 200 倍以上。

bg = im[:,:,0] == im[:,:,1] # B == G
gr = im[:,:,1] == im[:,:,2] # G == R
slices = np.bitwise_and(bg, gr, dtype= np.uint8) * 255

这将生成一个二值图像,其中灰色对象由白色像素表示。如果您不需要二值图像,而只需要一个逻辑数组,其中灰色像素由True值,此方法变得更快:

slices = np.bitwise_and(bg, gr)

省略类型转换和乘法产生的方法比嵌套循环快 500 倍。

在此测试图像上运行此操作:

image with gray object

给出以下结果:

gray object detection mask

如您所见,灰色物体被正确检测到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 OpenCV 检测灰色物体 的相关文章

  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 当我有自定义身份验证模型时,如何登录 Django Rest 可浏览 API?

    我有一个自定义用户模型 如下所示account models py from django contrib auth modles import AbstractUser from django db models signals impo
  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • Virtualenv 在 OS X Yosemite 上失败并出现 OSError

    我最近更新到 OSX Yosemite 现在无法使用virtualenv pip 每当我执行 virtualenv env 它抛出一个 OSError Command Users administrator ux env bin pytho
  • 按边距(“全部”)值列对 Pandas 数据透视表进行排序

    我试图根据 pandas 数据透视表中的行总和对最后一列 边距 aggrfunc 进行降序排序 我知道我在这里错过了一些简单的东西 但我无法弄清楚 数据框 数据透视表 WIDGETS DATE 2 1 16 2 2 16 2 3 16 Al
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 使用 Paramiko 进行 DSA 密钥转发?

    我正在使用 Paramiko 在远程服务器上执行 bash 脚本 在其中一些脚本中 存在与其他服务器的 ssh 连接 如果我只使用 bash 不使用 Python 我的 DSA 密钥将被第一个远程服务器上的 bash 脚本转发并使用 以连接
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • Plotly:如何检查基本图形结构(版本 4)

    对于旧版本的plotly 例如在 Jupyterlab 中 您可以简单地运行figure像这样检查你的图形的基础知识 Ouput data marker color red size 10 symbol 104 mode markers l
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • 给定一个排序数组,就地删除重复项,使每个元素仅出现一次并返回新长度

    完整的问题 我开始在线学习 python 但对这个标记为简单的问题有疑问 给定一个排序数组 就地删除重复项 使得每个 元素只出现一次并返回新的长度 不分配 另一个数组的额外空间 您必须通过修改输入来完成此操作 数组就地 具有 O 1 额外内
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix

随机推荐

  • 是否可以在 Azure 应用服务上安装字体?

    我们正在使用 MigraDoc PDFsharp GDI 它依赖于将字体安装到系统中以便进行渲染 我们尝试过嵌入字体 但 MigraDoc 的 GDI 版本似乎不支持此功能 尝试将此组件移动到 Azure 应用服务时 它找不到字体 有没有办
  • 如何在 PyCharm 的运行/调试配置中将环境变量作为命令行参数传递?

    我正在尝试学习 PyCharm 需要将环境变量作为命令行参数传递给我的进程 例如执行相当于myScript py u myVar在 Linux 上 或者myScript py u myVar 在 Windows 上 如何在 PyCharm
  • 如果从静态构造函数启动并等待空的 .NET 任务,为什么不会完成?

    我不明白为什么下面的代码不起作用 var task new Task gt task Start if task Wait 10000 logger Info Works else logger Info Doesn t work 超时后
  • UIBarButtonItem 图标通过 IB 添加时为白色,以编程方式添加时为黑色

    当我将图标添加到UIBarButtonItem通过 Interface Builder 该图标显示为白色 当我以编程方式将相同的图标文件添加到另一个图标文件时UIToolbar 图标显示为黑色 为什么 UIImage image UIIma
  • Tesseract OCR:是否可以强制使用特定模式?

    我正在使用 Tesseract 我想开发一个能够识别字符序列的应用程序 我取得了不错的成绩 但并不出色 我想读取的字符序列有always一个特定的模式 比方说 数字数字数字字符字符 例如 123AB 有没有办法 告诉 ocr引擎结构始终是固
  • C# 理论:将 JMP 写入 asm 中的 codecave

    假设我已经使用以下命令分配了放置我的 codecave 的地址VirtualAllocEx 它返回地址 我使用以下命令将代码写入该地址WriteProcessMemory 这是问题 如何编写跳转到我的 Codecave 的跳转 我知道跳跃开
  • 按钮显示内联CSS

    我有以下 CSS 和 HTML http jsfiddle net 47w0h73r 6 one padding 20px background f00 two padding 20px background 00f a button fo
  • Jenkins 主/从配置

    我一直在阅读有关 Jenkins 主 从配置的信息 但我仍然有一些问题 是不是从机 Jenkins 并没有像主机 Jenkins 那样实际安装和启动 我假设我会以相同的方式安装一个主詹金斯和另一个从詹金斯 然后主詹金斯将控制从詹金斯 例如通
  • Visual Studio 2015 输出窗口丢失

    缺少显示 Visual Studio 中所有构建消息的输出窗口 我无法使用视图菜单将其恢复 我尝试了安全模式和诊断模式 然后重新启动了一切 怎样才能把窗户找回来 去引用MSDN 在 Visual Studio Express 版本中 输出
  • Rtti 访问复杂数据结构中的字段和属性

    正如已经讨论过的Delphi 2010 中的 Rtti 数据操作和一致性可以通过使用一对 TRttiField 和实例指针访问成员来达到原始数据和 rtti 值之间的一致性 对于仅具有基本成员类型 例如整数或字符串 的简单类 这将非常容易
  • 具有属性包装器的不可用属性

    我正在开发一个支持 iOS 14 及更高版本的应用程序 但我想使用一些 SwiftUI 3 属性包装器 例如 FocusState 我该如何解决这个问题Stored properties cannot be marked potential
  • D3.js v3 到 v4 刷机改动

    我希望从 d3v3 迁移到 d3v4 特别是我在迁移画笔时遇到困难 有人可以查看下面的链接并让我知道更改吗 http bl ocks org zanarmstrong ddff7cd0b1220bc68a58 我发现了一些变化 d3 tim
  • 为 MAUI Visual Studio 2022 安装 Android 工作负载时出现问题

    我已按照以下说明安装了 Visual Studio 2022 Preview 4 1 https learn microsoft com en us dotnet maui get started installation 我启动了一个新的
  • 如何检查输入是否为二进制格式(1 和 0)?

    我已经制作了一个程序 但是如果用户输入不是二进制格式 我想添加一个例外 我已经尝试了很多次添加例外 但似乎无法让它工作 下面是程序代码 如果有人可以提供帮助 我将不胜感激 import time error True n 0 while n
  • makefile 中的错误:_start 的多个定义

    我尝试编写一个makefile CC g LD ld CFLAGS Wall std c 0x O3 LDFLAGS lgsl lgslcblas lpthread SOURCES main cpp OBJECTS SOURCES cpp
  • 使用 jdbc 和 oracle 驱动程序时结果集的存储位置

    一旦我将jdbc与oracle驱动程序一起使用并运行select查询 查询的结果是否存储在oracle内存或文件系统或临时表的服务器中 一旦我通过获取下一行来运行下一个方法 它是否会从 oracle 服务器内存加载到 jvm 内存 如果我将
  • 如何使用 Jest 和 Enzyme 模拟 React 组件生命周期方法?

    完整 DOM 渲染的 Enzyme 文档here包含以下使用 Sinon 监视生命周期方法的示例 describe
  • ffmpeg:连接视频和图像

    我有 2 个视频 相同的分辨率 相同的编码 文件 我想要连接它们 并且我想在它们之间插入一些文本 3 秒 作为分割器 我在 Windows 上使用 ffmpeg 执行此操作 我感兴趣的可选想法 避免在此过程中重新编码视频 在每个部分的交叉处
  • Presto SQL:使用作为查询结果的时区字符串更改时区不起作用

    我通过 Mode Analytics Platform 连接到 AWS Athena 并使用其查询引擎 基于 Presto 0 172 查询表 这张表public zones时区信息存储在名为的列中time zone在我感兴趣的一些区域 存
  • 使用 OpenCV 检测灰色物体

    我想使用 OpenCV 检测一个与场景中其他元素明显不同的对象 因为它是灰色的 这很好 因为我可以使用 R G B 运行测试 并且它允许独立于亮度 但逐像素执行速度很慢 有没有更快的方法来检测灰色的东西 也许有一个 OpenCV 方法可以进