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