Как OpenCV обрабатывает прозрачность изображения во время сопоставления с шаблоном?
Проблема заключается в том, что образ шаблона должен иметь прозрачные части, потому что в исходном изображении в этих местах может быть что-то.
Я пробовал все методы, и ни один из них не дал положительных результатов (например, положение шаблона в исходном изображении не было обнаружено правильно).
Изменить: Хорошо, я вижу, что это необходимо для предоставления примеров.
Как вы можете видеть, почти невозможно сопоставить такой шаблон с таким изображением. "Фон" вокруг объекта может иметь любой цвет (например, белый или коричневый...)
Собель на изображении в сером и шаблоне + cvConvertScaleAbs
Дополнительное исходное изображение
Изменить 2: Решение misha работает даже с небольшим количеством препятствий (работает "прозрачность" ). Пример:
Изменить 3 - множественные вхождения:
Я сделал быстрое и грязное решение для поиска нескольких вхождений шаблона, однако, когда шаблон не найден, я получаю "много" ложных срабатываний. Главным образом из-за моей реализации:
- итерация по данным изображения
- if (imageData [y, x, 0] >= maxValue * 0.95f), то он считает [x, y] как совпадение (maxValue от cvMinMaxLoc)
работает для изображений, когда есть хотя бы одно положительное совпадение, однако приводит к ужасной ситуации для изображений, на которых есть не является таким шаблоном.