
我们有了这张地图,我们需要使用PHP来去除所有的蓝色阴影,以及百分比。问题是,一些百分比与边框的颜色相同,而其他时候,百分比会进入边框。我们需要使用这个图像。
发布于 2011-02-24 06:49:57
没有真正简单的方法(AFAIK)。
最简单的方法不会给你带来好的结果:分离通道并删除小的组件。
结果是这样的:

正如您所看到的,还有一些数字和百分号,因为它们连接到分隔线,删除小组件对它们不起作用。
如果你需要一份更好的工作,你应该将图像与每个数字的模板相关联,一旦确定,就删除它。
在这里,您可以看到与数字“2”相关的结果:

识别出一个错误的"2“(见左上角),因此一般过程可能需要更复杂的方法。
无论如何,我认为这种操纵方式远远超出了你对K-12的期望。
哈!
编辑
根据您的请求,提供有关第一种方法的一些详细信息。
首先分离三个通道,并获得三个图像:

您保留第三个通道(蓝色通道)
然后,您需要删除较小的组件。有很多方法可以做到这一点,可能最简单的方法是从连接性检测中派生出来的,例如在flood-fill algorithm中,但您只需测量组件而不填充它们。
基本的(未优化的)想法是遍历图像中的每个像素,并计算有多少像素与其“连接”。如果少于指定的数量(阈值),您只需删除整个集合。大多数图像操作库都已经实现了所有这些函数。
发布于 2011-02-24 04:20:04
对于此特定图像,如果您在图像编辑软件中打开该图像,将模式从索引转换为真彩色(RGB),然后用黄色(RGB: 255,255,0)对整个图像进行颜色渐变,则会得到一个由轮廓和数字组成的黑白图像。(这也是蓝色通道BTW的样子)
因此,要么丢弃红色和绿色通道,要么实现颜色减淡算法。
另一种选择是对每个像素进行采样,并将该像素的R&G分量设置为B值
编辑:实际上,我忘记了白色数字。要获得这些,请用rgb(0,0,255)整体填充外部白色,反转整个图像,并使用(255,255,0)颜色减淡,红色或绿色通道现在是缺少的数字。将这些叠加在上述步骤中处理过的图像之上。
发布于 2011-02-24 04:16:30
去除阴影颜色应该很容易。
摆脱这些数字更加棘手。我会:
仅仅因为数字隐藏了原始信息,就不可能在保证精度的情况下这样做。然而,我认为上面的步骤会给你带来接近100%的准确率,而不需要太多的努力。
https://stackoverflow.com/questions/5096314
复制相似问题