我在另一张表面上有一张纸。我想知道纸张何时结束并且表面开始。
我使用这种方法: 1.将图像转换为像素阵列 2.挑选3个随机的20x20正方形并对频率进行频率计数 3.最高频率是背景
然而,问题是我每次在相机拍摄的实际图像上都会拍摄100多种颜色。
我想我可以通过将图像放在16色调色板中来解决它。有没有办法在UIImage或CGImage上进行此更改?
由于
答案 0 :(得分:1)
你的颜色可能非常接近。如何计算从每个采样颜色到参考颜色的距离(红色,绿色和蓝色值之间的累积绝对差值) - 只需使用您抽样的第一个作为参考。如果距离很大,则颜色不同。如果距离很小,则颜色相同,光线或其他相机伪影会有微小变化。
基本上这是以非常简单的方式应用过滤器。您可以决定将颜色视为不同的差异有多大,但您可以通过查看所有颜色的中间差异并将其分组为样本上/下来来决定。
将Core Image滤镜应用于样本图像也可能获得良好效果,例如CIColorClamp(CISpotColor看起来更好,但仅限OS X)。如果你能找到一个合适的过滤器,它很可能比你自己做的更简单,更快。