opencv边界框问题

2024-04-16

我有一个图像需要在周围绘制一个边界框,我正在尝试使用本文底部的代码。 我遇到的问题是我尝试模糊蓝色框形状以删除其细节,例如

cv2.blur(img,(20,20)) 

但模糊图像似乎没有足够好的边缘来生成边界框。

我发现,如果我将下面的代码与具有与下图相同大小的锐边的纯蓝色正方形一起使用,则效果很好。蓝色区域内的细节似乎阻止了边界框的绘制。

我希望有人能告诉我如何让它发挥作用。

import cv2

# Load the image - container completely blurred out so no hinges,locking bars , writing etc are visible, just a blank blue square
img = cv2.imread('blue_object.jpg')

# convert to grayscale
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

edged = cv2.Canny(img, 120,890)
# Apply adaptive threshold
thresh = cv2.adaptiveThreshold(edged, 255, 1, 1, 11, 2)
thresh_color = cv2.cvtColor(thresh, cv2.COLOR_GRAY2BGR)

# apply some dilation and erosion to join the gaps - change iteration to detect more or less area's
thresh = cv2.dilate(thresh,None,iterations = 50)
thresh = cv2.erode(thresh,None,iterations = 50)

# Find the contours
contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

# For each contour, find the bounding rectangle and draw it
for cnt in contours:
    area = cv2.contourArea(cnt)
    if area > 50000:
        x,y,w,h = cv2.boundingRect(cnt)
        cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)


cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

The image below is the yellow container after lower HSV mask range of 8,0,0 and upper range of 78,255,255 . Trees are above and to top right of the container, so hard to separate the tress from the container to put a proper bounding box around it.Happy to move to chat if that helps.enter image description here


你正在变成灰色,扔掉所有有价值的东西颜色信息离开。你也很精明,这通常是一个坏主意。初学者没有判断力来明智地应用 Canny。最好远离它。

这个问题可以用通常的方法来解决:

  • 将色彩空间转换为有用的东西,比如 HSV
  • inRange on 饱和度良好的蓝色
  • 一些形态学操作来清理碎片
  • 边界框

假设您正在寻找蓝色容器,或任何饱和度良好的颜色。

im = cv.imread("i4nPk.jpg")
hsv = cv.cvtColor(im, cv.COLOR_BGR2HSV)

lower = (90, 84, 0)
upper = (180, 255, 255)
mask1 = cv.inRange(hsv, lower, upper)

mask2 = cv.erode(mask1, kernel=None, iterations=2)

(x, y, w, h) = cv.boundingRect(mask2) # yes that works on masks too

canvas = cv.cvtColor(mask2, cv.COLOR_GRAY2BGR)
cv.rectangle(canvas, (x,y), (x+w, y+h), color=(0,0,255), thickness=3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opencv边界框问题 的相关文章

  • 删除 python vaex 中的重复行

    我正在使用 python vaex 但我不知道如何删除数据框中的重复行 例如 在 pandas 中存在以下方法drop duplicates vaex中有没有类似的功能 似乎还没有 但我们应该在某个时候期待这个功能 其间 有vaex创始人的
  • django 管理站点导航侧边栏搞砸了

    我最近在我的项目中添加了一个包并做了一个pip freeze gt requirements txt然后 然后我做了pip install r requirements txt到我的本地 它添加了一个侧边栏 I did a pip inst
  • 将 SQLite 的 FTS3/4 与 Python 3 结合使用

    我一直在使用 python 的 Flask 框架开发 peewee 的示例博客应用程序 看https github com coleifer peewee https github com coleifer peewee 内部示例 gt 博
  • 如何在 Python 中获得两个变量的逻辑异或?

    你如何获得逻辑异或 http en wikipedia org wiki Exclusive orPython 中的两个变量 例如 我有两个希望是字符串的变量 我想测试其中只有一个包含 True 值 不是 None 或空字符串 str1 r
  • uwsgi + Django REST框架:空闲时间后很少有缓慢的请求

    我正在运行 Django REST 框架 白天每分钟的请求率相当低 我注意到一个我无法解释或重现的问题 每天 在夜间或清晨 当我的 RPM 接近于零时 我会收到 1 10 个超慢的请求 我的平均响应时间100 到 200 毫秒之间 但是这个
  • Python 包?

    好吧 我认为无论我做错了什么 它可能都是显而易见的 但我无法弄清楚 我已经阅读并重新阅读了有关包的教程部分 我唯一能想到的是这不起作用 因为我直接执行它 这是目录设置 eulerproject init py euler1 py euler
  • 解析器生成

    我正在做一个项目软件抄袭检测 我打算用C语言来做这件事 因为我应该创建一个令牌生成器和一个解析器 但我不知道从哪里开始 任何人都可以帮助我解决这个问题 我创建了一个令牌数据库 并将令牌与我的程序分开 接下来我想做的就是比较两个程序以查明它是
  • 如何从字典列表中查找键的值?

    如何从字典列表中获取给定键的值 mylist powerpoint color blue client name Sport Parents Regrouped sort order ascending chart layout 1 cha
  • 将这个使用 lambda 解包的元组从 Python 2 移植到 Python 3 的最 Pythonic 方法

    我有以下 Python 2 代码 它在 lambda 中解压元组 该 lambda 包含在 for 循环内 for lab lab pred length in zip labels labels pred sequence lengths
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • 使用 string.whitespace 删除 Python 中的空格

    Python 的 string whitespace 很棒 gt gt gt string whitespace t n x0b x0c r 如何在不手动输入 t n 等正则表达式的情况下将其与字符串一起使用 例如 它应该能够转动 请不要伤
  • Seaborn 条形图条之间没有空格

    我使用下面的代码创建了一个 Seaborn 条形图 它来自https www machinelearningplus com plots top 50 matplotlib visualizations the master plots p
  • 我是否必须使用我的数据库训练 Viola-Jones 算法才能获得准确的结果?

    我尝试提取面部数据库的面部特征 但我认识到 Viola Jones 算法在两种情况下效果不佳 当我尝试单独检测眼睛时 当我尝试检测嘴巴时 运作不佳 检测图像的不同部分 例如眼睛或嘴巴 或者有时会检测到其中几个 这是不可能的情况 我使用的图像
  • 默认可变参数的惯用方式

    在 python 中 如果直接将可变类型设置为默认参数 则会出现众所周知的边缘情况 def foo x return x y foo y append 1 print foo 通常的解决方法是将参数默认为None然后将其放入体内 然而 有
  • Django ConnectionAbortedError:[WinError 10053]已建立的连接被主机中的软件中止

    我将 django 与 postgresql 一起使用 每当我尝试保存或删除任何内容时 都会发生此错误 Traceback most recent call last File c program files x86 python35 32
  • Python 中的数据可用性图表

    我想知道Python是否有一些东西可以绘制具有多个变量的时间序列的数据可用性 下面显示了一个示例 取自Visavail js 时间数据可用性图表 https github com flrs visavail 1 description 以下
  • Python:ConfigParser.NoSectionError:没有部分:“TestInformation”

    我使用上面的代码收到 ConfigParser NoSectionError No section TestInformation 错误 def LoadTestInformation self config ConfigParser Co
  • 如何在Python中从stdin中逐行读取

    每个人都知道如何在 C 中计算 STDIN 中的字符 但是 当我尝试在 python3 中执行此操作时 我发现这是一个难题 计数器 py import sys chrCounter 0 for line in sys stdin readl
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi

随机推荐

  • 在没有互联网的情况下使用 Javascript 获取 GPS 位置 [重复]

    这个问题在这里已经有答案了 您好 如果设备具有 GPS 硬件 我们可以在没有互联网连接的情况下使用 JavaScript 获取 GPS 位置吗 请注意谁将其标记为重复 我需要 JavaScript 在没有互联网连接的情况下工作 并使用 GP
  • 从 mysql 表获取行到 php 数组

    如何获取 mysql 表的每一行并将其放入 php 数组中 我需要一个多维数组吗 所有这一切的目的是稍后在谷歌地图上显示一些点 您需要从表中获取所需的所有数据 像这样的事情会起作用 SQLCommand SELECT someFieldNa
  • 如何使用 CSS 更改图标图像的颜色? [复制]

    这个问题在这里已经有答案了 我想弄清楚如何更改半透明和半纯色图像的颜色 我希望能够更改白色的颜色 这样我就可以添加悬停 并添加以动态方式更改 WordPress 中颜色的功能 使用 Photoshop 来填充图像不是一个选项 因为我要在我的
  • Android 将 Px 转换为 Dp(视频宽高比)[重复]

    这个问题在这里已经有答案了 可能的重复 在android中将像素转换为dp https stackoverflow com questions 4605527 converting pixels to dp in android 我正在尝试
  • 有没有办法为 Heroku Toolbelt 设置默认应用程序?

    我在heroku上有多个app git远程 我想知道是否可以配置一个默认应用程序 这样 每当我忘记指定应用程序时 app 工具带会使用它 您可以设置heroku remote在存储库的 Git 配置中键入默认远程名称 例如 如果您的遥控器被
  • Gradle:战争任务有冲突的包含/排除

    我正在尝试使用 Gradle 构建一个 war 文件 但遇到了一个问题 即排除一个目录并包含另一个恰好具有相同名称但父目录不同的目录 请注意 在下面的第一个代码示例中 两者都没有css 目录将包含在最终版本中war文件 我假设是因为 Gra
  • 如何设置 JSlider 的大小?

    我在网上搜索了此问题的解决方案 但没有找到任何有效的方法 我在 JPanel 中有一个垂直 JSlider 它使用 GridBagLayout 和 GridBagConstraints 将对象定位在面板上 目前我有以下代码 gbc grid
  • 有返回值的 C void 函数

    据我所知 returnvoid 函数中的语句将引发错误 但在下面的程序中 情况并非如此 这里显示的输出是1 怎么会 main int i 5 printf d fun fun fun i void fun int i if i 2 retu
  • R 图中行的恒定绝对间距

    In R 我该如何调整height绘图设备的价值 例如 windows or png 以便点之间的绝对间距保持不变 这是一个例子来说明我的意思 n lt 10 windows width 4 height 4 par xpd NA plot
  • 带水平滚动的 C3 / D3 条形图

    我正在创建一个 c3 条形图 其中每个条形代表在给定的一周内加入某个计划的人数 数据只是一个对象数组 其中包含 week of people week of people 等 理想情况下 我希望图表中显示最近 6 周的数据 但我希望能够水平
  • Windows 上 Python 3.4 中的 Tkinter 在退出时不会将内部剪贴板数据发布到 Windows 剪贴板

    我使用以下代码将小脚本的结果放置在剪贴板中 from tkinter import Tk r Tk r withdraw r clipboard clear r clipboard append Result 它在 Python 3 3 5
  • 如何使用 Celery、RabbitMQ 和 Django 确保每个用户的任务执行顺序?

    我正在运行 Django Celery 和 RabbitMQ 我想要实现的是确保与一个用户相关的任务按顺序执行 具体来说 一次执行一个 我不希望每个用户执行任务并发 每当为用户添加新任务时 它应该取决于最近添加的任务 如果此类型的任务已为此
  • 和发动机施加力

    有谁知道为什么 applyforce 只适用于我的精灵之一 此外 当我按下其他精灵时 它也会对单个精灵施加力 nextTile 方法工作正常 enter code herecom martynnorman jude 包 作者尼古拉斯 格拉姆
  • css - 垂直滚动条删除

    下面是带有左右附加图像的菜单行的代码 我需要这样的行为 当屏幕宽度的分辨率从 960px 到 1398px 时 左右 div 同时隐藏 这段代码完全符合我的要求 问题是 在低屏幕宽度 960px 到 1398px 上 它会向浏览器添加水平滚
  • Facebook Messenger Bot 可以与群组中的两个或更多人聊天吗?

    所有消息机器人一次只与一名用户直接交互吗 机器人可以加入两人或多人组成的群组并与他们交谈吗 目前 Facebook Messenger 机器人只能在一对一的基础上工作 原因之一可能是隐私 Facebook 在在群组环境中推出机器人之前非常谨
  • 快速获取当前设备在 wifi 和蜂窝网络中的 IP 地址

    func getIPAddress gt String var address String var ifaddr UnsafeMutablePointer
  • 使用 PowerShell 删除文本文件的顶行

    我试图在导入之前删除大约 5000 个文本文件的第一行 我对 PowerShell 还很陌生 所以不确定要搜索什么或如何解决这个问题 我当前使用伪代码的概念 set content file get content unless line
  • 使用 jQuery 和 Select2 时“按键”事件无法正常工作

    我有一个论坛 我在其中更改选项卡的功能以进入 当用户按下 Enter 下一个输入字段时获得焦点并以某种方式 iImanage 打开 select2 选择框focusin事件 因此选择 2 框打开 但是 当我选择该值并在 selec2 选择框
  • Laravel/Symfony:无法加载“app”配置文件

    升级我的家园并安装我的软件包后 我遇到了一个奇怪的错误 通话中php artisan输出如下 In LoadConfiguration php line 68 Unable to load the app configuration fil
  • opencv边界框问题

    我有一个图像需要在周围绘制一个边界框 我正在尝试使用本文底部的代码 我遇到的问题是我尝试模糊蓝色框形状以删除其细节 例如 cv2 blur img 20 20 但模糊图像似乎没有足够好的边缘来生成边界框 我发现 如果我将下面的代码与具有与下