首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从地图中清除像素

问从地图中清除像素
EN

Stack Overflow用户
提问于 2011-02-24 03:54:35
回答 3查看 174关注 0票数 1

​

​

我们有了这张地图,我们需要使用PHP来去除所有的蓝色阴影,以及百分比。问题是,一些百分比与边框的颜色相同,而其他时候,百分比会进入边框。我们需要使用这个图像。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-24 06:49:57

没有真正简单的方法(AFAIK)。

最简单的方法不会给你带来好的结果:分离通道并删除小的组件。

结果是这样的:

​

​

正如您所看到的,还有一些数字和百分号,因为它们连接到分隔线,删除小组件对它们不起作用。

如果你需要一份更好的工作,你应该将图像与每个数字的模板相关联,一旦确定,就删除它。

在这里,您可以看到与数字“2”相关的结果:

​

识别出一个错误的"2“(见左上角),因此一般过程可能需要更复杂的方法。

无论如何,我认为这种操纵方式远远超出了你对K-12的期望。

哈!

编辑

根据您的请求,提供有关第一种方法的一些详细信息。

首先分离三个通道,并获得三个图像:

​

​

您保留第三个通道(蓝色通道)

然后,您需要删除较小的组件。有很多方法可以做到这一点,可能最简单的方法是从连接性检测中派生出来的,例如在flood-fill algorithm中,但您只需测量组件而不填充它们。

基本的(未优化的)想法是遍历图像中的每个像素,并计算有多少像素与其“连接”。如果少于指定的数量(阈值),您只需删除整个集合。大多数图像操作库都已经实现了所有这些函数。

票数 4
EN

Stack Overflow用户

发布于 2011-02-24 04:20:04

对于此特定图像,如果您在图像编辑软件中打开该图像,将模式从索引转换为真彩色(RGB),然后用黄色(RGB: 255,255,0)对整个图像进行颜色渐变,则会得到一个由轮廓和数字组成的黑白图像。(这也是蓝色通道BTW的样子)

因此,要么丢弃红色和绿色通道,要么实现颜色减淡算法。

另一种选择是对每个像素进行采样,并将该像素的R&G分量设置为B值

编辑:实际上,我忘记了白色数字。要获得这些,请用rgb(0,0,255)整体填充外部白色,反转整个图像,并使用(255,255,0)颜色减淡,红色或绿色通道现在是缺少的数字。将这些叠加在上述步骤中处理过的图像之上。

票数 1
EN

Stack Overflow用户

发布于 2011-02-24 04:16:30

去除阴影颜色应该很容易。

摆脱这些数字更加棘手。我会:

  • 创建与每个数字和%符号关联的像素数据的查找表。
  • 清除区域时,查找数字(黑色或白色),并仅通过在不同阴影之间添加黑色来清除区域之间边界的确切模式。

仅仅因为数字隐藏了原始信息,就不可能在保证精度的情况下这样做。然而,我认为上面的步骤会给你带来接近100%的准确率,而不需要太多的努力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5096314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档