找出差异 - 14x14图像

时间:2012-02-16 20:14:32

标签: php

我有23张图片,它们都是14像素x 14像素。

每一个都有一个白色背景上的字母(255 255 255 RGB)。

我想比较它们并找到唯一的空白像素来识别该字母。

例如在比较过程之后,我想说具有像素数(3宽,2高)白色的图像14x14肯定是“A”。

有可能吗?

我有一个主循环检查每个像素,但我现在卡住了:

function getpixelat($img,$x,$y) {
    $rgb = imagecolorat($img,$x,$y);
    $r = ($rgb >> 16) & 0xFF;
    $g = ($rgb >> 8) & 0xFF;
    $b = $rgb & 0xFF;
    return $r.$g.$b;
}

for( $y=$inity; $y<$h; $y++) {
   for( $x=$initx; $x<$w; $x++) {
       $pixel = getpixelat($img,$x,$y);
    }
}

1 个答案:

答案 0 :(得分:2)

要查找特定字母的唯一空白像素:

  1. 您需要为每个字母创建遮罩。从空白掩模开始,例如14x14数组,所有条目都设置为零。
  2. 然后,对于有问题的字母(例如A),将您知道的每个像素标记为空白。
  3. 对于所有剩余的字母,将其与A的掩码进行比较。如果任何其他字母具有相同的空白像素,请将该像素标记为不可用。
  4. 对所有其他字母重复此过程,即将每个字母与每个其他字母进行比较。
  5. 一旦你有一套完整的所有字母的面具,将每个面具与每个其他面具进行比较,以确保你没有任何重复。如果你不这样做,你可能会有一些你可以参考的东西,以确定你正在处理哪个字母。