Я не знаю Mathematica.,,очень плохо.Но мне нравится ответ выше, по большей части.
Тем не менее есть большой недостаток в использовании полос для получения ответа (лично у меня нет проблем с one ручной настройкой).Существует пример (приведенный Бреттом Чемпионом, здесь ), который показывает, что они порой ломают рисунок рубашки.Так что это становится более сложной моделью.
Я бы попробовал подход идентификатора формы и цвета, а также пространственные отношения.Подобно распознаванию лиц, вы можете искать геометрические узоры в определенных соотношениях друг от друга.Предостережение заключается в том, что обычно одна или несколько из этих форм закрыты.
Получить баланс белого на изображении и красный баланс красного на изображении.Я считаю, что Уолдо всегда имеет одинаковое значение / оттенок, но изображение может быть отсканированным или плохой копии.Затем всегда обращайтесь к массиву цветов, которыми на самом деле является Уолдо: красный, белый, темно-коричневый, синий, персиковый, {цвет обуви}.
Есть рисунок рубашки, а также брюки, очки, волосы, лицо, обувь и шляпа, которые определяют Уолдо.Кроме того, по отношению к другим людям в изображении, Уолдо на худой стороне.
Итак, найдите случайных людей, чтобы получить рост людей на этой картинке.Измерьте среднюю высоту группы вещей в случайных точках на изображении (простой контур даст довольно много отдельных людей).Если каждая вещь не находится в пределах стандартного отклонения друг от друга, они пока игнорируются.Сравните средние высоты с высотой изображения.Если соотношение слишком велико (например, 1: 2, 1: 4 или аналогично близко), попробуйте еще раз.Запустите его 10 (?) Раз, чтобы убедиться, что сэмплы все довольно близко друг к другу, исключая любое среднее значение, выходящее за пределы стандартного отклонения.Возможно в Mathematica?
Это ваш размер Уолдо.Уолсо тощий, поэтому вы ищете что-то 5: 1 или 6: 1 (или что-то еще) ht: wd.Однако этого недостаточно.Если Уолдо частично скрыт, высота может измениться.Итак, вы ищете блок красно-белого цвета, который ~ 2: 1.Но должно быть больше показателей.
- У Уолдо есть очки.Найдите два кружка 0,5: 1 над красно-белым.
- Синие штаны.Любое количество синего на той же ширине в пределах любого расстояния между концом красно-белого и расстоянием до его ног.Обратите внимание, что он носит короткую рубашку, поэтому ноги не слишком близко.
- Шляпа.Красно-белый на любом расстоянии до макушки головы.Обратите внимание, что у него должны быть темные волосы внизу и, вероятно, очки.
- Длинные рукава.красно-белый под некоторым углом от основного красно-белый.
- темные волосы.
- Цвет обуви.Я не знаю цвет.
Может подойти любой из них.Это также негативные проверки против похожих людей на картинке - например, № 2 отрицает ношение красно-белого фартука (слишком близко к обуви), # 5 устраняет светлые волосы.Кроме того, форма является только одним показателем для каждого из этих испытаний.,,Один только цвет в пределах указанного расстояния может дать хорошие результаты.
Это сузит области для обработки.
Сохранение этих результатов приведет к набору областей, которые должны иметьУолдо в этом.Исключите все остальные области (например, для каждой области выберите круг, в два раза превышающий средний размер человека), а затем запустите процесс, который выложил @Heike, удалив все, кроме красного, и так далее.
Есть мысли о том, как это кодировать?
Редактировать:
Мысли о том, как это кодировать.,,исключите все области, кроме красного Уолдо, скелетируйте красные области и обрежьте их до одной точки.Сделайте то же самое для волос Waldo коричневого цвета, брюк Waldo синего цвета, цвета обуви Waldo.Для цвета кожи Уолдо исключите, затем найдите контур.
Затем исключите не красные, расширите (много) все красные области, затем скелетируйте и обрежьте. Эта часть даст список возможных точек центра Уолдо. Это будет маркер для сравнения всех других цветовых срезов Waldo.
Отсюда, используя скелетонизированные красные области (не расширенные), подсчитайте линии в каждой области. Если есть правильное число (четыре, верно?), Это, безусловно, возможная область. Если нет, я просто исключаю это (как центр Уолдо ... это все еще может быть его шляпа).
Затем проверьте, есть ли форма лица вверху, точка волос вверху, брюки внизу, точки обуви внизу и т. Д.
Пока нет кода - все еще читаете документы.