c# - 检测图像中的颜色 Blob

标签 c# image-processing nui

我有一张深度热图图像,我已过滤掉比图像前 25% 更远的任何内容。

它看起来像这样: enter image description here

图像中有两个颜色的 Blob ,一个是我的手(后面有我的一部分脸),另一个是左下角的 table 。我如何搜索图像以找到这些 Blob ?如果可能的话,我希望能够在它们周围画一个矩形。

我也可以这样做(忽略阴影,过滤成黑色或白色): enter image description here

最佳答案

选择一个随机像素作为种子像素。这成为区域 A。重复扩展 A,直到 A 不再变大。那是你的领域。

扩展 A 的方法是寻找 A 的相邻像素,使得它们与 A 中的至少一个相邻像素具有相似的颜色。

“相似的颜色”对您来说意味着什么是多变的。如果你可以准确地制作两种颜色,就像你在另一个答案中所说的那样,那么“相似”就是“相等”。否则,“相似”是指具有 RGB 值的颜色或其他颜色,其中两种颜色的每个分量彼此之间的距离很小(即 255、128、128 类似于 252、125、130)。

您还可以限制所选像素,使它们必须与种子像素相似,但当人工采摘种子时效果更好。 (例如,我相信这是在 Photoshop 中完成的。)

这可能比边缘检测更好,因为您可以处理梯度而无需将它们过滤掉,并且您不需要将检测到的边缘结果处理成一个连贯的区域。它的缺点是渐变可以从黑色一直延伸到白色,并且它会注册为同一区域,但这可能就是您想要的。此外,您必须小心实现,否则它会太慢。

关于c# - 检测图像中的颜色 Blob ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786377/

相关文章:

ios - GPUImageHistogramFilter 用于提供零数据的静止图像

javascript - 如何检查图像的特定像素是否透明?

c++ - libjpeg jpeg_write_coefficients

c# - break 命令后循环多次点击

android - 使用选项卡主机滑动

kinect - NUI/触摸界面的一般注意事项

时间:2019-05-17 标签:c#winformscomboboxdisplaymember

c# - 基本 WPF 应用程序需要 10 秒才能打开 (.NET 4.5)

c# - 无效的 JSON 原语 : object : Passing Object as a Parameter from aspx

c# - 什么是 Server.HtmlEncode()?