如何在 OpenCV 中为 InRange 阈值选择最佳 HSV 值

2024-04-02

我有两个相关问题:

  1. 我正在 OpenCV 中使用以下命令进行颜色对象检测inRange阈值函数。如果我手动选择 HSV 下限和上限,我会得到出色的结果,但这对照明条件非常敏感。是否有一种算法可以根据目标和背景的 HSV 值确定最佳阈值范围?

    例如,以下是我正在使用的值:

    目标 HSV 值:[15, 37, 51]

    背景 HSV 值:[90,21,211]

  2. inRange是简单的逐像素过滤器。它不会动态改变阈值条件。是否存在与自适应阈值或大津阈值相当的颜色?或者一种可以利用目标和背景的先验 HSV 值的算法?


如果图像的大部分内容或多或少相同(例如大部分是背景),则可以执行以下操作:

  1. 计算图像中像素值的中值 (M)。有些人使用平均值,但我更喜欢中值,因为它的鲁棒性。

  2. 计算图像中像素值的中值绝对偏差 (MAD)。与标准差相比,我更喜欢它的稳健性。

落在 (M - k * MAD) 和 (M + k * MAD) 之间范围内的所有内容都将成为背景(或对象)。根据您的应用选择常数“k”的值(我猜它会在 1 到 5 之间)。

小提示,如果这是您第一次使用 MAD:在正态分布的情况下,1 个标准差大约等于 1.5 MAD。

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

如何在 OpenCV 中为 InRange 阈值选择最佳 HSV 值 的相关文章

  • 如何使用 EMGU 计算 DFT 及其逆函数?

    如何计算图像的 DFT 使用 EMGU 显示它 然后计算反向值以返回原始图像 我将在这里回答我自己的问题 因为我花了一段时间才弄清楚 To test that it works here s an image and here s the
  • 仅获取图像中的外部轮廓

    我有这段代码 可以在图像中绘制轮廓 但我只需要外部轮廓 import cv2 import numpy as np camino C Users Usuario Documents Deteccion de Objetos 123 jpg
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

    我在Imagick中找到了两种设置图像压缩质量的方法 A 设置图像压缩质量 B 设置压缩质量 所以我想知道哪一个是最好的以及为什么在以下条件下 我读到了setCompressionQuality方法仅适用于新图像 我正在尝试压缩文件 jpe
  • 在 Visual Studio 中调试非托管 C++ 图像

    我确实在 Visual Studio 2010 下的非托管 C 上编写了大量图像处理代码 其中涉及许多不同的图像 我希望能够在逐步调试时像简单标识符一样轻松地观看它们 我当前的解决方案是使用一些在 Matlab 控制台中导出图像的函数 可以
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • 如何使用 Python 裁剪图像中的矩形

    谁能给我关于如何裁剪两个矩形框并保存它的建议 我已经尝试过这段代码 但效果不佳 import cv2 import numpy as np Run the code with the image name keep pressing spa
  • OpenCV 错误:connectedComponents_sub1 中断言失败 (L.channels() == 1 && I.channels() == 1) [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在 OpenCV python 中遇到以下错误 并用 google 搜索了很多 但无法解决 如果有人能为我提供一些线索
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 在 Python 中将 OpenCV 帧流式传输为 HTML

    我正在尝试从 opencv Pyt hon 中的 URL 读取视频 然后逐帧处理它 然后将其发送到 HTML 页面 But I am only getting the first frame after that the program g
  • 二值图像中骨架上两点之间的最短路径

    我有一个二进制图像 其中包含图像的一个像素宽度骨架 您可能基本上知道 在这个二值图像中 我在骨架上有 1 在其他地方有 0 如何找到骨架上两个非零元素之间的最短距离 路径也应该在骨架本身上 我想使用 A star 算法的 C 实现 我找到了
  • 在 Visual Studio 2012 中安装 OpenCV

    我正在尝试安装 OpenCV 来与 Visual Studio 一起使用 我使用的是2012Pro版本 但我认为它应该与vs10相同 我正在关注这个教程 http docs opencv org doc tutorials introduc
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 是否可以在 PyScript 中使用 OpenCV 模块?

    我想使用 opencv 模块 但无法导入 OpenCV 那么我该如何解决这个问题呢 顺便说一句 Pyodide 支持 OpenCV 示例代码 https i stack imgur com ahwex jpg 尚不支持 OpenCV 此时O
  • 在 Visual Studio C++ 2008 中包含 dll

    有没有办法将 dll 包含在项目中 这样我就不必在编译后将这些 dll 与可执行文件放在同一文件夹中 这样我就可以用它们编译我的项目 这是否有可能 如果是 有人可以指导我 我的项目是一个 opencv 项目 有很多 dll 我必须包含在文件

随机推荐

  • 从头开始创建,还是从头开始构建?

    我正在考虑建立一个可视化编程语言 http en wikipedia org wiki Visual programming language 类似于Scratch http scratch mit edu 供儿童 又称可怜的打字员 在对微
  • Go中如何生成固定长度的随机数?

    在 Go 中生成固定长度随机数的最快 最简单的方法是什么 假设要生成8位长数字 问题是rand Intn 100000000 是结果可能远小于 8 位数字 并且用前导零填充它对我来说看起来不是一个好的答案 也就是说 我更关心随机性的质量 因
  • 将 Visual Studio 2008 指向第三方 DLL 的源代码进行调试

    我有一个 VS 2008 C 项目 它使用第三方库 开放场景图 当我开始调试项目时 每次调用此外部库中的函数时 调试器都会跳过它 因为 显然 调试器没有可在其中查找代码的 cpp 文件 它只会跳转到链接到我的项目的头文件 因为这些文件存在并
  • 如何将 Semantic-UI 导入 Angular 项目

    我正在开发一个基于 Semantic UI 框架 这是 Semantic UI 的一个分支 的 Angular 项目 我已经安装了 npm install save fomantic ui 然后我在中添加了以下几行angular json
  • Crashlytics Android NDK:崩溃报告中缺少所有符号

    我们的原生 Crashlytics 崩溃报告最近缺少所有符号信息 我曾希望最新的 Crashlytics NDK 能够解决该问题 但事实并非如此 我看到那里有一个类似的查询 但在这种情况下 我没有使用 Firebase 只是使用 Crash
  • 互动网留下大量多余粉丝是常事吗?

    我正在将 lambda 演算项编译到交互网络中 以便使用 Lamping 的抽象算法对其进行评估 为了测试我的实现 我使用了这个教堂编号除法函数 div a b c d b e e d a b e f g e h f h g e e e f
  • 是否可以用 CSS 来设计 C# 应用程序

    我更擅长用 C 创建基于计算机的应用程序 而不是用 ASP net 创建网页 但是 CSS 在设计按钮 表单等方面的强大功能确实让我喜欢它 我在谷歌上搜索是否可以在软件中只使用CSS 但还没有结果 是否可以 我知道这个问题太国外了而且有点愚
  • 如何在 Asp.net MVC 中编写集成和系统测试

    我的应用程序 我的应用程序设计如下所示 Web 应用程序层 带有使用 POCO 和调用服务的控制器和视图的 asp net MVC 应用程序 服务层 使用 POCO 和调用存储库的业务流程 数据层 使用 POCO 并以 EF 模型形式与模型
  • 将 Excel 工作簿的一部分复制/粘贴到当前未打开的工作簿

    我需要将 Excel 工作簿的一部分复制到大约 3500 个其他工作簿 由于工作簿数量众多 在每个工作簿上运行宏是不可行的 有没有办法复制该部分并将其粘贴到其他工作簿而不打开它们 番茄 不幸的是 正如 Ken White 和 L42 都指出
  • Windows 上“没有名为 scipy 的模块”

    在 sklearn base py 中 我有这样的声明from scipy import sparse 我收到这个错误 no module named scipy 我尝试安装使用pip install scipy 但我收到了很多错误 lib
  • 在 Xna/MonoGame 中按程序生成 Texture2D

    如何使用代码按程序生成Texture2D 例如 我希望在 32x32 图像上交替出现黑白像素 您可以使用 GraphicsDevice 创建一个新的纹理 public static Texture2D CreateTexture Graph
  • 将 UIViewController 添加到 UIScrollView

    我有一个UIViewCOntroller我已经添加了很多 UI 组件 标签 文本字段等 现在 我需要向其中添加更多字段 我发现我的视图控制器中没有任何空间可以添加任何空间 所以我想添加一个scrollView来解决这个问题 我可以在哪里添加
  • .net中RSA公钥模数和指数的格式是什么?

    一个简短的问题 如果我有来自第三方的以下输入 我该如何填写 RSAParameters 模数 123456 指数 111 长话短说 我使用以下代码 RSACryptoServiceProvider RSAalg 新 RSACryptoSer
  • 在选项卡式 UIPopover 中使用 UIImagePicker

    我正在开发一个 iPad 应用程序 需要在设备 相册 远程和应用程序中包含多个图像源 现在理想的情况是拥有一个 UIPopover 控制器 每个源有 3 个选项卡 唯一的问题是我似乎无法弄清楚如何让 UIImagePicker 位于其自己的
  • 客户端不可编辑属性的资源的 REST API 设计

    处理必须通过不向 API 使用者公开的另一种方法修改 更新的资源属性的最佳方法是什么 例子 请求用于 X 的新令牌 令牌必须按照一组特定的业务规则 逻辑生成 旧汇率到期后请求 刷新货币汇率 该汇率仅供参考 将在后续交易中使用 请注意 在上面
  • T-SQL 的漂亮打印机?

    我正在寻找一个好的 T SQL 漂亮打印机 以便我们项目中的开发人员之间的所有代码看起来都一致 最好是免费 开源的 但只要价格合理 付费也不是不可能的 有没有特定的行业领导者 我并不太关心它使用什么特定标准 但可配置性越高越好 这样 我们就
  • 为什么在 forEach 中重新分配参数元素不起作用[重复]

    这个问题在这里已经有答案了 对于以下代码块 const items id 1 name one id 2 name two const changes name hello items forEach item i gt item item
  • 无法无条件访问属性“isEmpty”,因为接收者可以为“null”

    import package flutter material dart import package flutter app 1 utils routes dart class LoginPage extends StatefulWidg
  • 使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节

    如何使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节 我尝试使用 av read frame input avFormatContext avPkt API 从 mp4 视频 编解码器为 h264 文件
  • 如何在 OpenCV 中为 InRange 阈值选择最佳 HSV 值

    我有两个相关问题 我正在 OpenCV 中使用以下命令进行颜色对象检测inRange阈值函数 如果我手动选择 HSV 下限和上限 我会得到出色的结果 但这对照明条件非常敏感 是否有一种算法可以根据目标和背景的 HSV 值确定最佳阈值范围 例