Мы иногда показываем нашу работу друзьям. Некоторые спрашивают нас, может ли компьютер найти фигуру определенного цвета на изображении. Тот же самый вопрос мы получили от нескольких людей по интернету.

Это, на самом деле, очень интересный вопрос. И пускай это не относится к нашей нынешней задаче, мы расскажем и покажем, как компьютер находит цветные фигуры на изображении. Кто знает, может это небольшое лирическое отступление вдохновит кого-то на изучение программирования, или даже на свой собственный проект.

Возьмем для примера фотографию аналогового счетчика:

Вряд ли мы захотим повесить этот техногенный натюрморт на стену в гостиной. Зато мы можем получить какую-нибудь полезную информацию. Допустим, нас интересуют три последние цифры на табло. Пусть наша программа найдет и выделит их черным цветом, а все остальное „закрасит“ белым. И первая наша программка не будет различать цвета – мы попросим ее всего лишь отличить более темные пиксели от более светлых. Поехали!

Техногенный натюрморт превратился в кошмар авангардиста. Что произошло? Программа приняла провалы между барабанами за символ. Да и вообще, мы видим на изображении кучу ненужной нам информации, которую мы хотели бы убрать. Причина банальна – в то время, как мы прекрасно различаем конкретные цвета, наша первая, „глупая“ программа сравнивает только яркость одной области с яркостью другой. И, с точки зрения искусственного интеллекта, тень на пластике такая же „темная“, как цифра рядом с ней. С этим результатом можно долго и нудно работать, но лучше упростить себе задачу с помощью смекалки. Интересующие нас три цифры справа на табло отличаются от окружения цветом. Так давайте создадим следующую, более умную программу, которая будет искать на изображении красный цвет. Немного теории. Компьютер, на самом деле, не знает ничего, кроме цифр. И цвета в компьютере тоже представлены определенными численными значениями. Тогда мы делаем примерно следующее:

— читаем значения каждого пикселя изображения;
— каждое значение сравниваем с числом, которое соответствует тому оттенку красного цвета, который нам нужен;
— есть совпадение — „красим“ пиксель в черный;
— нет совпадения – делаем его белым.

Как видим, красная надпись успешно найдена. Кроме нее, осталось пятно от красной детали, которое наш искусственный интеллект уже ни с чем не сможет спутать и выбракует при распознавании. Все остальное – рудименты деталей устройства, неинтересные нам надписи, которые заняли бы рабочее время и ресурсы компьютера, — все было аккуратно убрано простым алгоритмом еще до начала распознавания.

Итак, отвечая на вопросы друзей: да, можно найти фигуру определенного цвета на изображении. И вполне вероятно, что в некоторых случаях это может быть лучшим решением какой-либо задачи для „умного дома“.