แยกส่วนที่ไม่เบลอของภาพ foucsed


10

ฉันมีภาพที่ถ่ายโดยกล้องโทรศัพท์มือถือโดยเน้นที่ส่วนหนึ่งของมัน ฉันต้องการที่จะรู้ว่า - ประมาณ - ซึ่งเป็นพื้นที่ที่มุ่งเน้น ตัวอย่างเช่นกล่องขอบเขตรอบ ๆ พื้นที่ที่มุ่งเน้น ตัวอย่าง: เป็นต้นฉบับ หลังจากตรวจจับ

คำตอบ:


7

โดยทั่วไปนี่เป็นปัญหาการแบ่งส่วนภาพ ( http://en.wikipedia.org/wiki/Image_segmentation ) ซึ่งคุณจะพยายามแยกโฟกัสที่อยู่ในบริเวณที่ไม่ได้โฟกัสของภาพ

เลนส์ออฟติคอลเทียบเท่ากับฟิลเตอร์กรองความถี่ต่ำและเอฟเฟ็กต์ของฟิลเตอร์กรองความถี่ต่ำบนสัญญาณคือทำให้ราบรื่นขึ้นโดย จำกัด เนื้อหาความถี่ที่สูงขึ้น

ในการประมวลผลภาพดิจิตอลความถี่ต่ำจะสอดคล้องกับวัตถุขนาดใหญ่ (รูปแบบทั่วไป) และความถี่ที่สูงขึ้นนั้นสอดคล้องกับวัตถุขนาดเล็ก (รายละเอียด)

ดังนั้นเพื่อแยกพื้นที่โฟกัสคุณอาจมองหาพื้นที่ที่มีค่าเบี่ยงเบนมาตรฐานที่สูงกว่าเมื่อเทียบกับพื้นที่ที่เบลอซึ่งจะมีค่าเบี่ยงเบนมาตรฐานต่ำกว่าเนื่องจากการทำงานที่ราบรื่นของเลนส์ที่ไม่อยู่ในโฟกัส

ในการแยกแยะภูมิภาค 'เบลอ' และ 'ไม่เบลอ' คุณสามารถตั้งค่า "หน้าต่าง" ของส่วนข้อมูล M×ยังไม่มีข้อความ และเลื่อนไปที่รูปภาพของคุณ

ที่แต่ละตำแหน่งของหน้าต่างคำนวณความแปรปรวนของค่า "แพทช์" ราวกับว่ามันเป็นเวกเตอร์หนึ่งมิติของ M×ยังไม่มีข้อความค่า สิ่งนี้จะส่งผลให้ "ภาพ" อื่น (หรือโดยทั่วไปเป็นอาเรย์สองมิติ) แสดงถึงความผันแปรของค่าเบี่ยงเบนมาตรฐานในแต่ละตำแหน่งบนภาพของคุณ จากนั้นคุณสามารถรวบรวมค่าเหล่านี้ทั้งหมดและรับฮิสโตแกรมของพวกเขา ฮิสโตแกรมจะแสดงการกระจายแบบหลายรูปแบบ (สำหรับข้อมูลเพิ่มเติมโปรดดูที่http://en.wikipedia.org/wiki/Multimodal_distribution )

ในกรณีของภาพในโพสต์ของคุณฮิสโตแกรมมีแนวโน้มว่าจะแสดงสองโหมด หนึ่งที่สอดคล้องกับค่าที่ค่อนข้างสูงของค่าเบี่ยงเบนมาตรฐาน (พื้นที่โฟกัส) และหนึ่งที่สอดคล้องกับค่าที่ค่อนข้างต่ำของค่าเบี่ยงเบนมาตรฐาน (พื้นที่เบลอ)

จากนั้นคุณสามารถวางตำแหน่งขีด จำกัด ตัวอย่างเช่นระหว่างสองโหมดเพื่อสร้างเกณฑ์ระหว่างภูมิภาคที่คุณสนใจและไม่ได้โฟกัสจากนั้นเลือก "แพตช์" ทั้งหมด (หรือพื้นที่หน้าต่าง MxN) ที่มีค่าเบี่ยงเบนมาตรฐานสูงกว่าเกณฑ์ของคุณ (สำหรับข้อมูลเพิ่มเติมโปรดดู: http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29 )

สิ่งนี้จะแยกส่วนที่โฟกัสของภาพให้คุณ

หวังว่านี่จะช่วยได้


ฉันจะอ่านลึก ๆ เพื่อหาคำตอบของคุณและกลับมาพร้อมกับฟีดแบ็กขอบคุณมาก
Humam Helfawi

ขอบคุณมากคำตอบที่ยอดเยี่ยมและมีรายละเอียดฉันจะแบ่งปันการใช้งานถ้าฉันได้รับผลลัพธ์ที่ดีโดยใช้ opencv ขอบคุณอีกครั้ง
Humam Helfawi

ตัวแทนสีเทาของภาพนั้นเพียงพอหรือฉันต้องการประมวลผลแต่ละช่อง
Humam Helfawi

ดีใจที่คุณพบว่ามีประโยชน์ การทำงานในโทนสีเทาจะทำงานได้ดีสำหรับการแบ่งแยกระหว่างพื้นที่ที่เบลอและโฟกัส แต่การรวมข้อมูลสีเพิ่มเติมสามารถช่วยให้คุณกำหนดพื้นที่ที่ซับซ้อนมากขึ้น (ตัวอย่างเช่นติดตามพื้นที่ใบหน้าในแนวตั้งหรือแยกดอกไม้ในรูปภาพใน โพสต์ของคุณ)
A_A

คำถามนี้ได้รับการแก้ไขกลับไปที่รูปแบบดั้งเดิมหลังจากการสนทนาที่: meta.dsp.stackexchange.com/questions/1337/… @ นักวิชาการผู้ยิ่งใหญ่ ส่วนหลักได้รับการเก็บรักษาไว้ที่: pastebin.com/kjCC1wM6
A_A

5

นี่เป็นวิธีที่ง่ายกว่าซึ่งไม่เกี่ยวข้องกับการวิเคราะห์หน้าต่างแบบเลื่อน

  • แปลงภาพของคุณเป็นโทนสีเทา (ไม่จำเป็น แต่ฉันจะสมมติว่าคุณมีช่องทางเดียวเท่านั้นเพื่อความชัดเจน)

  • คำนวณการไล่ระดับสีในทั้งสองทิศทาง

  • คำนวณขนาด (หรือเพียงแค่ยกกำลังสองลาด)

  • รวมทั้งภาพไล่ระดับสีทั้งสองทิศทาง

ดังที่ได้กล่าวไปแล้วส่วนที่เน้นของภาพจะมีความถี่สูงกว่าพื้นที่ที่ไม่ได้เน้น จากการรวมคุณจะจบลงด้วยการฉายสองภาพซึ่งมีการเปลี่ยนแปลงมากมาย (ค่าที่สูงขึ้น) ในส่วนนั้นซึ่งวางวัตถุเพ่งความสนใจไปตามทิศทางนี้ คุณสามารถทำสิ่งต่อไปนี้:

  • กำหนดจุดเริ่มต้นและจุดสิ้นสุดของค่าที่สูงขึ้นเหล่านี้ คุณสามารถใช้ขีด จำกัด อย่างง่าย (เช่น 0.7 * maximum_value) หรือทำให้เรียบโปรไฟล์ใช้อนุพันธ์อันดับสองและตรวจสอบค่าสูงสุดในนั้น

  • ตำแหน่งเริ่มต้น / หยุดจากขั้นตอนก่อนหน้านี้ให้ตำแหน่งพิกเซลตามทิศทางทั้งสองที่จะวางสี่เหลี่ยมที่แหลมคมของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.