ฉันไม่รู้ Mathematica . . เลวร้ายเกินไป. แต่ฉันชอบคำตอบข้างต้นส่วนใหญ่
ยังคงมีข้อบกพร่องที่สำคัญในการพึ่งพาแถบเพียงอย่างเดียวเพื่อรวบรวมคำตอบ (โดยส่วนตัวฉันไม่มีปัญหากับการปรับด้วยตนเองเพียงครั้งเดียว ) มีตัวอย่าง (แสดงโดย Brett Champion ที่นี่ ) ซึ่งแสดงให้เห็นว่าบางครั้งพวกเขาก็สลายรูปแบบเสื้อ ดังนั้นมันจึงกลายเป็นลวดลายที่ซับซ้อนมากขึ้น
ฉันจะลองวิธีการของรูปร่าง id และสีพร้อมกับความสัมพันธ์พิเศษ เช่นเดียวกับการจดจำใบหน้าคุณสามารถมองหาลวดลายเรขาคณิตในอัตราส่วนที่แน่นอนจากกันและกัน ข้อแม้คือว่าโดยปกติจะมีรูปร่างหนึ่งรูปร่างหรือมากกว่านั้น
รับสมดุลแสงขาวที่ภาพและแดงสมดุลสีแดงจากภาพ ฉันเชื่อว่า Waldo นั้นมีค่า / สีเดียวกันอยู่เสมอ แต่ภาพนั้นอาจมาจากการสแกน จากนั้นอ้างถึงสีต่างๆที่ Waldo ใช้จริง ๆ คือ: สีแดงสีขาวสีน้ำตาลเข้มสีฟ้าสีพีชสี {สีรองเท้า}
มีรูปแบบเสื้อและกางเกง, แว่นตา, ผม, ใบหน้า, รองเท้าและหมวกที่กำหนด Waldo นอกจากนี้เมื่อเปรียบเทียบกับคนอื่น ๆ ในภาพวัลโดก็อยู่ข้างผอม
ดังนั้นหาคนสุ่มเพื่อให้ได้ความสูงของคนในรูปนี้ วัดความสูงเฉลี่ยของสิ่งต่าง ๆ ที่จุดสุ่มในภาพ (โครงร่างที่เรียบง่ายจะสร้างบุคคลไม่กี่คน) หากแต่ละสิ่งไม่ได้อยู่ในค่าเบี่ยงเบนมาตรฐานจากสิ่งอื่นพวกเขาจะถูกละเว้นในตอนนี้ เปรียบเทียบความสูงเฉลี่ยกับความสูงของภาพ หากอัตราส่วนนั้นมากเกินไป (เช่น 1: 2, 1: 4 หรือใกล้เคียงกัน) ให้ลองอีกครั้ง เรียกใช้ครั้งละ 10 (?) เพื่อให้แน่ใจว่าตัวอย่างอยู่ใกล้กันมากยกเว้นค่าเฉลี่ยใด ๆ ที่อยู่นอกค่าเบี่ยงเบนมาตรฐาน เป็นไปได้ใน Mathematica?
นี่คือขนาดวัลดาของคุณ Walso ผอมดังนั้นคุณกำลังมองหาบางอย่าง 5: 1 หรือ 6: 1 (หรืออะไรก็ตาม) ht: wd อย่างไรก็ตามนี่ไม่เพียงพอ หาก Waldo ถูกซ่อนไว้บางส่วนความสูงอาจเปลี่ยนไป ดังนั้นคุณกำลังมองหาบล็อกของสีแดงขาวที่ ~ 2: 1 แต่จะต้องมีตัวบ่งชี้เพิ่มเติม
- Waldo มีแว่นตา ค้นหาวงกลมสองวง 0.5: 1 เหนือสีแดงขาว
- กางเกงสีน้ำเงิน จำนวนสีน้ำเงินใด ๆ ที่มีความกว้างเท่ากันภายในระยะห่างระหว่างปลายแดงขาวกับระยะทางถึงเท้าของเขา โปรดทราบว่าเขาสวมเสื้อสั้น ๆ ดังนั้นเท้าไม่ใกล้เกินไป
- หมวก. แดงขาวระยะทางสูงสุดถึงสองเท่าของหัวเขา โปรดทราบว่ามันต้องมีผมสีเข้มด้านล่างและอาจเป็นแว่นตา
- แขนยาว แดงขาวในบางมุมจากหลักแดงขาว
- ผมสีเข้ม.
- สีรองเท้า ฉันไม่รู้สี
สามารถใช้สิ่งใดก็ได้ สิ่งเหล่านี้เป็นการตรวจสอบเชิงลบกับคนที่คล้ายกันในรูป - #, negates # 2 สวมผ้ากันเปื้อนสีแดงสีขาว (ใกล้กับรองเท้า), # 5 กำจัดขนสีอ่อน นอกจากนี้รูปร่างเป็นเพียงหนึ่งตัวบ่งชี้สำหรับการทดสอบแต่ละครั้ง . . สีเพียงอย่างเดียวในระยะทางที่กำหนดสามารถให้ผลลัพธ์ที่ดี
สิ่งนี้จะทำให้พื้นที่ที่ต้องดำเนินการแคบลง
การจัดเก็บผลลัพธ์เหล่านี้จะสร้างชุดของพื้นที่ที่ควรมี Waldo อยู่ในนั้น ยกเว้นพื้นที่อื่นทั้งหมด (เช่นสำหรับแต่ละพื้นที่ให้เลือกวงกลมใหญ่เป็นสองเท่าของขนาดบุคคลทั่วไป) จากนั้นเรียกใช้กระบวนการที่ @Heike กำหนดให้ลบทั้งหมดยกเว้นสีแดงและอื่น ๆ
มีความคิดเกี่ยวกับวิธีการรหัสนี้อย่างไร
แก้ไข:
ความคิดเกี่ยวกับวิธีการรหัสนี้ . . ยกเว้นทุกพื้นที่ยกเว้นวัลโดแดง, ปรับขนาดพื้นที่สีแดงและตัดลงไปจนถึงจุดเดียว ทำแบบเดียวกันกับผมสีน้ำตาล Waldo กางเกงสีฟ้า Waldo สีรองเท้า Waldo สำหรับสีผิวของ Waldo ให้แยกออกแล้วค้นหาโครงร่าง
ถัดไปแยกส่วนที่ไม่ใช่สีแดงขยาย (มาก) พื้นที่สีแดงทั้งหมดจากนั้นโครงกระดูกและพรุน ส่วนนี้จะให้รายชื่อของจุดศูนย์กลางที่เป็นไปได้ของ Waldo นี่คือเครื่องหมายเพื่อเปรียบเทียบส่วนสีอื่น ๆ ของ Waldo
จากจุดนี้ใช้พื้นที่สีแดงที่มีโครงกระดูก (ไม่ใช่ส่วนที่ขยาย) นับจำนวนเส้นในแต่ละพื้นที่ หากมีจำนวนที่ถูกต้อง (สี่ใช่มั้ย) นี่เป็นพื้นที่ที่เป็นไปได้อย่างแน่นอน ถ้าไม่ใช่ฉันเดาว่าไม่รวมมัน (เหมือนเป็นศูนย์กลางของวัลโด ... อาจเป็นหมวกของเขา)
จากนั้นตรวจสอบว่ามีรูปร่างใบหน้าด้านบนมีจุดขนด้านบนกางเกงชี้ด้านล่างจุดรองเท้าด้านล่างและอื่น ๆ
ยังไม่มีโค้ด - ยังอ่านเอกสารอยู่