如何使用OpenCV提高Grabcut算法的准确性?

2024-01-31

我正在使用 OpenCV 的抓取算法在 android 中对图像进行背景减除。算法运行良好,但给出的结果不准确。 例如。我的输入图像是:

输出图像如下所示:

那么我们如何提高Grabcut算法的准确性呢?

P.S:由于声誉低而没有上传示例图像,对此表示歉意:(


我已经与同样的问题作斗争有一段时间了。我对此有一些提示和技巧

1> 改良你的种子。考虑到 GrabCut 基本上是一个黑匣子,您向其提供种子并期望分割的图像作为输出,种子是您可以控制的,因此选择好的种子变得势在必行。如果您对要分割的图像有一定的期望,您可以在这方面执行许多操作。对于一些情况,请考虑以下内容:

a> 你的形象中有人类吗?使用面部检测器查找面部并将这些像素标记为您认为合适的可能/确定的前景。您还可以在某些感兴趣的区域内使用肤色模型来进一步细化您的种子

b> 如果您有一些关于分割后期望的前景类型的数据,您可以训练颜色模型并使用它们来标记更多像素

这样的名单还会继续下去。您需要创造性地想出不同的方法来添加更准确的种子。

2> 后处理:尝试简单的后处理技术,例如打开和关闭操作,以平滑您的 fgmask。它们将帮助您消除最终输出中的大量噪音。

一般来说,图切(以及抓取切)往往会快速捕捉到边缘,因此如果您的前景边界附近有强边缘,则结果可能会不准确。

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

如何使用OpenCV提高Grabcut算法的准确性? 的相关文章

  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android:膨胀布局时出现 StackOverFlowError 和 InvokingTargetException

    首先 对不起我的英语 我在膨胀布局时有一个问题 我有一个自定义视图 从 LinearLayout 扩展而来 称为按钮帮助 我在名为的布局上使用该视图加载活动 我的以下代码在所有设备和模拟器上都能完美运行 但具有 QVGA 屏幕 例如 Sam
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以

随机推荐

  • Convert.ToBase64String/Convert.FromBase64String 和 Encoding.UTF8.GetBytes/Encoding.UTF8.GetString 之间的区别

    我目前正在学习 NET 中的对称密码学 我写了一个demo如下 private byte key Encoding ASCII GetBytes abcdefgh private byte IV Encoding ASCII GetByte
  • SwiftUI:选择器不会更新同一视图中的文本

    我有这个简单的情况 struct User Hashable Identifiable var id Int var name String func hash into hasher inout Hasher hasher combine
  • Python 函数告诉我,当我只发送一个参数时,我发送了两个参数

    我正在使用谷歌的webapp http code google com appengine docs python tools webapp 框架 我下面想做的只是发送结果查询 fetch http code google com appe
  • 为每个 CouchDB 用户提供一个单独的数据库是一个好的做法吗?

    我对用户及其文档的结构有一些概念性问题 为 CouchDB 中的每个用户提供自己的保存文档的数据库是一个好习惯吗 我读到 couchDB 可以处理数千个数据库 并且每个用户拥有自己的数据库并不罕见 Reason 提出这个问题的原因是我正在尝
  • 显示多值参数

    我有一个多值参数 其中大约有 25 个元素 如果用户选择 全选 并且我使用标准 至少据我所知 方法在报告顶部显示参数 join Parameters ProductClass Value 而不是 全部 这个词或我得到的东西 01 02 03
  • V-html只用于文本,安全吗?

    我现在在关于原始 HTML 的 Vue 文档 https v2 vuejs org v2 guide syntax html Raw HTML说明我们可以使用v html渲染一些内部 html 我承认这是合法且最简单的技巧 但由于我很担心
  • CodeIgniter .htaccess index.php 重写不适用于用户目录

    我在使用 codeigniter 时遇到了一些问题 我有一个 htaccess 来重写 index php 如果我将我的项目放在 var www 上或者为其创建一个虚拟主机 它会很好地工作 但我想使用我的用户目录 例如http localh
  • 如何更改富文本框 wpf c# 中选定的文本背景颜色

    如何在 to 中显示 html 文本RichTextBox控制 实际上我想更改所选文本的背景颜色RichTextBox在 C 中 wpf 我尝试了这段代码 但它不显示格式化文本 请帮助我 提前致谢 void rtbTextEditor Se
  • xsd 架构文件必须在 SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class 中进行注释?

    这是使用 SQLXMLBULKLOADLib SQLXMLBulkLoad4Class 的示例 STAThread static void Main string args try SQLXMLBULKLOADLib SQLXMLBulkL
  • 将多个 PHP 脚本合并到一个文件中

    我有一个 PHP 脚本 其中包含一两个其他库 它依赖于使用 include 陈述 为了使其更容易移植 我想以某种方式 编译 脚本和included 将其库放入单个 PHP 脚本中 与ack http betterthangrep com将其
  • 尝试从 Chrome 实现拖放 Gmail 附件

    我一直在尝试将 Gmail 附件从 Chrome 拖放到我的应用程序中 可以将文件从电子邮件拖到桌面并在那里创建附件 所以我知道这一定是可能的 我已经能够让它读取文件名 但是当我从数据对象读取 FileContents 时 我得到一个带有该
  • 将 HTML 转换为 CSV

    我想将从下面的脚本获得的 HTML 表转换为 CSV 文件 但出现类型错误 如下所示 类型错误 序列项 0 预期字符串 找到标签 from bs4 import BeautifulSoup import urllib2 url http w
  • 使用 SQL 按日期过滤

    我想知道您的想法 我必须获得会话期间与系统的所有连接 为了使这个过程自动化 我决定使用 current date 但这不起作用 因为 current date 不是字符串 而是函数 所以我的问题是是否有人可以帮助我查询以获取当天所有连接的数
  • 将基本身份验证和表单登录结合到同一个 REST Api

    有没有办法为同一个 REST 服务设置基本身份验证和表单登录 我想让登录的用户在登录后通过网络浏览器以及从命令行运行来触发此服务curl u username password hostname com api process现在我看到了这
  • 网站加载时显示旋转轮或进度条

    我正在使用名为 jquery treeview 的 jQuery 插件构建一个树视图 构建此树视图需要花费大量时间 大约 5 7 秒 并且我想在页面加载时显示旋转轮或进度条 有谁知道这是怎么做到的吗 我只找到了加载视频或图像的解决方案 其中
  • 来自 Google 的带有 Charts API 示例的 GWT 无法正常工作

    我已经下载了在 GWT 中使用图表所需的 jar 附带的存档 存档中还有示例应用程序 http gwt google com samples hellovisualization 1 1 0 HelloVisualization html
  • 向量和平均数的随机化

    我有一个计算累积平均值和标准差的脚本 library tidyverse tibble aa c 2 3 4 5 6 7 8 gt mutate running mean sapply seq n function i mean aa se
  • .NET 4.5 中等待完成后 HttpContext.Current 为 null

    我在 NET 4 5 Web 应用程序中定义了以下简单的 WCF 服务 ServiceContract public interface IService1 OperationContract WebGet UriTemplate json
  • 将猪结果存储到本地文件

    我运行pig脚本做了一些夸张的操作 并且输出大小非常小 现在我跑 hadoop fs getmerge 分别地 有什么办法让pig脚本将结果直接转储到本地文件中吗 如果您不担心将所有内容合并到一个文件中 那么您可以在 grunt 中使用 c
  • 如何使用OpenCV提高Grabcut算法的准确性?

    我正在使用 OpenCV 的抓取算法在 android 中对图像进行背景减除 算法运行良好 但给出的结果不准确 例如 我的输入图像是 输出图像如下所示 那么我们如何提高Grabcut算法的准确性呢 P S 由于声誉低而没有上传示例图像 对此