Существует множество способов идентификации изображения, содержащего iTunes, среди 100 снимков экрана.
Конкретный маршрут, который вы выберете, будет зависеть от деталей вашей проблемы:
- Вы всегда ищете iTunes?
- Насколько точно это должно быть?
- Допустимы ли ложные срабатывания? Как насчет ложных негативов?
- Скриншоты всегда с одной и той же системы?
- Будет ли iTunes всегда максимизироваться?
- Будет ли когда-нибудь меняться фон рабочего стола?
- Это должно идентифицировать iTunes при других условиях, например, coverflow, визуализация, магазин iTunes?
- Будет ли iTunes всегда выглядеть одинаково?
Для начала я хотел бы взглянуть на абсолютные упрощенные метрики, которые вы можете придумать, и посмотреть, отличают ли они ваш iTunes от изображений, отличных от iTunes. Например, возможно, в изображениях iTunes больше серых пикселей, чем в любом другом. В этом случае вы можете просто посчитать серые пиксели.
Если это не сработает, подумайте о создании гистограмм цветов. Предположительно iTunes большую часть времени использует одни и те же цвета (серый, белый, синий и зеленый). Затем можно создать библиотеку гистограмм разных цветов, соответствующих сценариям использования iTunes (список воспроизведения, iTunes store, coverflow и т. Д.), И идентифицировать изображения, содержащие iTunes, путем сопоставления гистограмм. Посмотрите этот пример из книги O'reilly OpenCV .