Привет, ребята

Вот в чем суть проблемы: есть папка A, в которой имеется порядка 10 000 изображений такого вида:

и есть папка B, в которой имеется порядка 100 изображений такого вида:

И задача состоит в том, что нужно среди изображений из папки A найти совпадающие с изображениями из папки B. Также известно следующее:
1) Водяной знак присутствует только на картинках из папки B, располагается в центре изображения и имеет фиксированные размеры.
2) Если картинки совпадают, как на примере выше, то они точно имеют одинаковые размеры и отличаются, по сути, только наличием водяного знака.
3) Картинки из папки A могут иметь различные размеры.
4) Фон картинки необязательно белый и может быть сколь угодно пестрым.
5) И самое коварное – неизвестно, есть ли в папке A изображение совпадающее с изображением из папки B.
Я попробовал решить задачу в лоб:
1) Берем очередную картинку из папки B и последовательно сравниваем ее со всеми картинками из папки A.
2) Если их размеры не совпадают, то переходим к следующей картинке из папки A.
3) Если размеры совпадают начинаем сравнивать их попиксельно. И если (кол-во совпавших пикселей / полное кол-во пикселей) > 0.8, то считаем изображения совпадающими.

Код AS3:
if (WMBitmapData.width == picBitmapData.width && WMBitmapData.height == picBitmapData.height)
{
var coinCount:int = 0;
var w:int = WMBitmapData.width;
var h:int = WMBitmapData.height;
for (var a:int = 0; a < w; ++a)
for (var b:int = 0; b < h; ++b)
{
if (WMBitmapData.getPixel32(a, b) == picBitmapData.getPixel32(a, b))
++coinCount;
}
if (Number(coinCount) / Number(w * h) > 0.8)
{
// Фиксируем совпадение
...
}
}
Столь монструозное количество сравнений некритично.
Проблема в том, что иногда алгоритм ошибается, неверно определяя совпадение картинок. Думаю здесь дело в большом количестве белого фона, что гарантирует превышение лимита совпадения в 0.8. Но дело в том, что я не представляю как подобрать нужную константу вместо 0.8, потому что картинка может быть и меньших размеров (приведенные выше были 500x500), и тогда водяной знак будет занимать значительную площадь изображения.
Подскажите, как быть?
P.S. Также вместо getPixel32 я использовал BitmapData.compare, но это не суть, так как относится уже к реализации.