我们有这张地图,我们需要使用PHP来获取所有蓝色阴影以及百分比。问题是,有些百分比与边界颜色相同,有时,百分比进入边界。我们需要使用这个图像。
答案 0 :(得分:4)
没有(AFAIK)真正简单的方法。
最简单的方法不会给您带来好的结果:分离渠道并删除小组件。
结果如下:
正如您所看到的,还有一些数字和百分号仍然存在,因为它们连接到分隔线并删除小组件对它们不起作用。
如果您需要更好的工作,则应将图像与每个数字的模板相关联,并在识别后将其删除。
在这里,您可以看到与数字“2”的相关性结果:
识别出一个错误的“2”(见左上角),因此一般程序可能需要更复杂的方法。
无论如何,我认为这种操控远远超出你对K-12的期望。
HTH!
修改
根据您的要求,有关第一种方法的一些细节。
首先将三个频道分开,然后获得三张图片:
你保留第三个(蓝色通道)
然后您需要删除较小的组件。有很多方法可以做到这一点,最简单的方法可能来自flood-fill algorithm中的连通性检测,但您只需测量组件而不填充它们。
基本(未优化)的想法是移动图像中的每个像素并计算与其“连接”的像素数。如果小于指定的数量(阈值),则只删除整个集合。大多数图像处理库都已经实现了所有这些功能。
答案 1 :(得分:1)
对于此特定图像,如果在图像编辑软件中打开图像,将模式从索引转换为真彩色(RGB),然后用黄色(RGB:255,255,0)对整个图像进行颜色躲避,最终结束带有由轮廓和数字组成的黑白图像。 (这也是蓝色通道看起来像BTW)
因此要么扔掉红色和绿色通道,要么实施颜色减淡算法。
另一种选择是对每个像素进行采样,并设置该像素的R& G分量为B值
编辑:实际上,我忘记了白色数字。得到那些,用rgb(0,0,255)填充外部白色,反转整个图像,并用(255,255,0)颜色闪避,红色或绿色通道现在是缺少的数字。将这些叠加在上述前面步骤中处理过的图像之上。
答案 2 :(得分:0)
摆脱阴影颜色应该很容易。
摆脱这些数字更加棘手。我会:
由于数字隐藏原始信息,因此无法保证准确性。但是,我认为上述步骤可以让您在不费力的情况下获得接近100%的准确度。