洪水填充算法是否考虑了 alpha 且不会在抗锯齿线周围留下边缘?

2024-04-21

我已经实现了一个典型的洪水填充算法,当使用纯色时,它按预期工作,其中我使用 ARGB 分量之间的欧几里德距离来比较颜色。

我的问题是,如果您在透明背景上绘制类似抗锯齿红线的内容,我的洪水填充算法将不会填充大多数半透明像素,从而在对象周围留下条纹。具体来说,对于此示例,线条的中心为纯红色(即 ARGB 格式中的 (255, 255, 0, 0)),线条的边缘也是纯红色,但这些像素的 alpha 范围低至 1% alpha (即 (1, 255, 0, 0))。一般来说,我希望能够绘制抗锯齿圆形轮廓,在中心进行洪水填充,并且不让它留下边缘。

我应该使用什么函数来比较颜色和/或如何调整洪水填充算法,以便在对象周围不会留下此类条纹?

我尝试告诉算法,如果 alpha

编辑:为了详细说明它的外观,其中 0 - 5 代表红色像素 a 0、20、40、60、80 和 100% alpha,抗锯齿红线的图像可能如下所示:

0 0 0 0 0 0 0

0 0 0 3 0 0 0

0 0 3 5 3 0 0

0 0 3 5 3 0 0

0 0 3 5 3 0 0

0 0 0 3 0 0 0

0 0 0 0 0 0 0

我当前的洪水填充算法在左上角填充红色,会将所有 0 替换为 5。剩下的 3 会在线周围形成一个丑陋的光环。


您的洪水填充应替换颜色的 RGB 部分,但保留原始 Alpha。这样您就可以在不改变混合比例的情况下获得新的颜色。

(如果您的位图使用预乘 Alpha,那么您应该按现有 Alpha 缩放替换 RGB,但在您的示例中,您没有使用预乘 Alpha。)

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

洪水填充算法是否考虑了 alpha 且不会在抗锯齿线周围留下边缘? 的相关文章

  • 从图像中识别数字

    我正在尝试编写一个应用程序来查找图像内的数字并将它们相加 如何识别图像中的书写数字 图像中有很多框 我需要获取左侧的数字并将它们相加得出总数 我怎样才能实现这个目标 编辑 我对图像进行了 java tesseract ocr 但没有得到任何
  • 如何在 WPF 中的窗口上绘图(最佳实践)?

    我正在尝试编写一个类似交互式游戏的小型应用程序 我需要有一个Draw方法将在屏幕上绘制 但无法弄清楚如何构造 WPF 的方法 如果这是Winforms 我可以使用 public void Draw Graphics g 但对于一个WPF W
  • 如何用凸形状形成凹形状?

    我试图绕过只能在 SFML C 库中形成凸形状的规则 为此 我计划测试给定的顶点 如果是凹的 将顶点分成组 测试每个组的凹性 并重复直到得到看起来像的全套凹形形状 就像组合在一起时的原始形状一样 我想知道的是 测试形状凹度的方程式是什么 它
  • 用于色彩空间转换的 IMTransform 视频处理器的设置

    我正在尝试使用视频处理器 MFT 进行一些基本的色彩空间转换 我的相机本身支持 NV12 我需要 RGB24 来编写一些着色器 以提供类似卡通的效果 下面是用于执行 MF 的 Media 类的定义 class Media public IM
  • 使用 QueueLinearFloodFill 算法着色时留下空白

    我正在尝试在android中实现洪水填充算法 它的工作速度非常慢 所以我根据此链接尝试了队列线性洪水填充算法 Android中如何使用洪水填充算法 https stackoverflow com questions 16968412 how
  • 为什么输出窗口无法显示结果。图像处理-线条检测

    该霍夫变换程序应该在执行时显示源图像 输出图像 带有图像的边缘检测结果窗口 但是 即使源图像和边缘检测结果 输出图像窗口也不会显示任何内容 链接https github com eToTheEcs hough transform blob
  • 哪个 Haskell 计算机图形几何库?

    我想用 Haskell 做一些计算机图形学实验 这将包括进行一些几何计算并最终编写光线追踪器 我应该选择哪个库来轻松处理向量 矩阵及其相关操作 Hackage 上很少有包括像这样好看的vect http hackage haskell or
  • 如何使用PIL读取原始图像?

    我有一个原始图像 其中每个像素对应一个 16 位无符号整数 我正在尝试使用 PIL Image fromstring 函数进行读取 如以下代码所示 if name main if len sys argv 4 print Error mis
  • 标准化设备坐标

    我正在编写一个处理 2D 图形形状的库 I m just wondering why should my coordinate system range from 1 1 for both the x and y axis instead
  • Fabric JS ClipPath:裁剪后如何使图像适合画布?

    我使用 FabricJS 和 ClipPath 属性实现了图像裁剪 问题是如何使裁剪后的图像适合画布 我希望裁剪后的图像填充画布区域 但不知道是否可以使用 Fabric js 来完成 因此 我希望用户单击 裁剪 按钮后图像的选定部分适合画布
  • 将嘈杂的硬币重塑为圆形

    我正在使用 JavaCV OpenCV 包装器 进行硬币检测 但是当硬币连接时我遇到了一些问题 如果我尝试侵蚀它们以分离这些硬币 它们就会失去圆形形状 如果我尝试计算每个硬币内部的像素 可能会出现问题 因此某些硬币可能会被误算为更大的硬币
  • 使用 OpenCV 查找重叠/复杂的圆

    我想计算红圈半径 图2 我在使用 OpenCV 的 HoughCircles 找到这些圆圈时遇到了麻烦 如图所示 2 我只能使用 HoughCircles 找到中心以黑色显示的小圆圈 original fig 2 由于我知道红色圆圈的中心
  • 如何使图像呈现出陈旧、布满灰尘、颜色褪色的外观?

    我有旧画的图像 这些画很旧 布满灰尘 颜色褪色 如图所示here https i stack imgur com xuoEF jpg 如何赋予任何图像这种 旧 外观 我找不到任何过滤器或 openCV 函数来实现这种类型的外观 EDIT 我
  • 测量字符串的像素宽度

    我需要在 Cocoa Touch 中测量字符串的像素宽度 谁能给我指出一个解释如何执行此操作的链接 在 iPhone 操作系统上略有不同 请查看NSString UIKit 添加参考 http developer apple com iph
  • HTML5 Canvas 避免任何子像素渲染

    As seen here https stackoverflow com questions 7017998 html 5 canvas avoid fill behaviour on overlap我在画布中的亚像素精度方面遇到了一些问题
  • 在 RGB 图像上绘制多类语义分割透明叠加

    我有语义分割掩码的结果 值在 0 1 之间 需要大津阈值来确定什么是积极的 我想直接在 RGB 图像上绘制 在 RGB 图像上每个预测类具有不同的随机颜色 我使用以下内容绘制了具有单一颜色的单个蒙版 是否有一个包或简单的策略可以为多类别做到
  • DPI 图形屏幕分辨率像素 WinForm PrintPageEventArgs

    对于运行我的应用程序的任何显示器 Dpi 点与像素有何关系 int points Screen primary public Form1 InitializeComponent points 1 primary null void OnPa
  • 对图像使用 Pixellib 自定义训练时出现 input_image 元形状错误

    我正在使用 Pixellib 来训练自定义图像实例分割 我创建了一个数据集 可以在下面的链接中看到 数据集 https drive google com drive folders 1MjpDNZtzGRNxEtCDcTmrjUuB1ics
  • PyQt - 如何检查 QDialog 是否可见?

    我有个问题 我有这个代码 balls Ball for i in range 1 10 因此 当我说 Ball 时 这将在 QDialog 上绘制一个球 然后当这完成后 我正在移动球QDialog无限循环中 我想说类似的话while QDi
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont

随机推荐

  • 如何仅将缩进序列化应用于某些属性?

    我想以人类可读的方式将 NET 对象序列化为 JSON 但我希望对对象的属性或数组的元素是否最终位于自己的一行上有更多的控制 目前我正在使用 JSON NETJsonConvert SerializeObject object Format
  • 如何改变字典中的数组?

    我在操场上尝试过以下操作 var d1 String String d1 a String var a1 d1 a a1 append s1 println d1 输出是 a 我希望 a s1 改变字典中数组的正确方法是什么 在 swift
  • C++:不同翻译单元中具有相同名称的不同类

    考虑以下示例 usedclass1 hpp include
  • pmap 和线程数

    user gt Runtime getRuntime availableProcessors 2 并评估这个例子 http clojuredocs org clojure core clojure core pmap example 684
  • “PKIX 路径构建失败”和“无法找到请求目标的有效证书路径”

    我正在尝试使用 twitter4j 库为我的 java 项目获取推文 该项目在幕后使用java net HttpURLConnection 如堆栈跟踪中所示 第一次运行时 我收到有关证书的错误sun security validator V
  • PyQt:QFileSystemModel 复选框过滤器

    我正在尝试使用 python pyqt 创建一个实用程序来从QFileSystemModel 仅包括已检查的项目 现在我想要控制QFileSystemModel使用文件名 文件类型 文件大小进行过滤的复选框 我如何勾选 取消勾选QFileS
  • MediatR 和 SimpleInjector 的依赖范围问题

    我一直在使用中介者模式和 CQRS 进行实验MediatR https github com jbogard MediatR使用实体框架进行数据访问的 WinForms 应用程序中的库 该应用程序用于批次制造工厂 允许用户查看活动批次和已完
  • 有没有办法在没有样式组件的情况下为整个反应应用程序设置默认字体系列?

    我正在寻找一种方法来设置整个反应应用程序的默认字体系列 但所有结果 包都指向反应本机 对于React 有没有一种方法可以默认全局字体设置 而无需在每个CSS中指定font family 谢谢 如果我正确理解你的问题 应该这样做 import
  • C代码运行速度更快吗?

    从 Objective C 调用 C 代码是否有任何性能提升 我在某处读到 与使用函数调用的其他语言相比 消息传递速度较慢 那么 如果我从 Objective C 代码调用 C 函数 我是否可以避免消息传递开销 在优化性能时 是否建议使用
  • 如何在 Ubuntu 20.04 中安装 Python2.7 的 pip

    有什么方法可以为 Python2 7 安装 pip 吗 我可以通过安装 python2 7 sudo apt install python2 minimal 我尝试为此安装 pip sudo apt install python pip p
  • 为什么我的 JQuery .ajax 请求没有并行发出?

    我正在尝试使用 jQuery 并行发出两个 ajax 请求 如下所示 var sources source1 source2 sources each function var source this ajax async true typ
  • 是否可以使用 np 数组作为 h5py 数据集中的索引?

    我需要将多个数据集 每个数据集包含在一个单独的文件中 合并到属于最终文件的另一个数据集中 当部分数据集中的数据被复制到最终数据集中时 它们的顺序不会保留 部分数据集中的数据通过索引 映射 到最终数据集中 我创建了两个列表 final ind
  • 如何检测我的任何活动是否位于最前面并且对用户可见?

    我想在我的任何活动可见时启动一个意图 否则我会将其作为通知发布 并将由用户触发 为了决定这一点 我需要知道我的任何活动是否是最重要的 我该怎么做 我不知道有一种方法可以获取当前显示的活动 但是您可以结合使用活动生命周期 http devel
  • 使用迭代器从“查找”或“删除”中删除

    我想知道在 C 中从向量中删除元素的最佳实践是什么 我多次看到人们使用 std remove 查找并删除元素 然后使用擦除从向量中删除元素 但为什么它比使用 find 获取要删除的元素的迭代器然后使用该迭代器的擦除更好呢 Thanks st
  • Android核心库错误

    当我包含 jaxp jar 时 出现以下错误 trouble processing javax xml XMLConstants class 2009 05 08 16 53 18 TestProject Attempt to includ
  • bash:找不到 nodemon 命令 Windows 10

    I spent a lot of time looking for a solution but didn t find anything with my case So I checked global packages npm list
  • 我想检查android中的声音响度

    我正在开发一个应用程序 我必须检测语音的响度 意味着手机上有一些喊叫 它会在屏幕上显示响度级别 哪个 API 可以用于此目的 Look at http developer android com reference android medi
  • Android 流量统计数据报告的内容比我下载的内容还要多

    您好 我正在运行一个简单的下载测试 看看我的连接速度有多快 我记录了trafficStats rx值 然后下载了一个5MB的文件 记录了rx值 然后计算了差异 我知道这个文件正好是 5MB 这是代码 URL url new URL urlS
  • 如何在 sed 命令中使用变量

    我有一个名为 text file1 txt 的文件 文件中的内容是 主题 C US O AAA OU QA OU 12345 OU TESTAPP 现在我想要实现的是如下内容 主题 C US O AAA QA 12345 TESTAPP 当
  • 洪水填充算法是否考虑了 alpha 且不会在抗锯齿线周围留下边缘?

    我已经实现了一个典型的洪水填充算法 当使用纯色时 它按预期工作 其中我使用 ARGB 分量之间的欧几里德距离来比较颜色 我的问题是 如果您在透明背景上绘制类似抗锯齿红线的内容 我的洪水填充算法将不会填充大多数半透明像素 从而在对象周围留下条