วิธีทำ De-Houghing ของรูปภาพที่แปลงสภาพ Hough


9

ฉันทำงานกับรหัสที่พบในรหัส Rosettaเพื่อสร้างการแปลง Hough ตอนนี้ฉันต้องการค้นหาทุกบรรทัดในภาพ ในการทำเช่นนั้นฉันต้องการค่าρและθของแต่ละจุดสูงสุดในพื้นที่ Hough ผลลัพธ์ตัวอย่างสำหรับรูปห้าเหลี่ยมมีลักษณะดังนี้:

Hough Space

ฉันจะหาพิกัด [θ, ρ] เดี่ยวสำหรับ 'ฮอตสปอต' ที่มองเห็นได้ในพื้นที่ Hough ได้อย่างไร

คำตอบ:


9

คุณกำลังค้นหาพิกัดของยอดเขาแล้วใช้แกนเพื่อปรับขนาดเหล่านั้นเป็น [θ, ρ] พิกัด

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

นอกจากนี้คุณยังสามารถลบ / หมุนหมายเลขภาพจนกระทั่งจุดสูงสุดแต่ละจุดเป็นพิกเซลเดียว


1
+1 สำหรับคำตอบที่แม่นยำ คุณกำหนด / คำนวณcenter of gravityอย่างไร
Dipan Mehta

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

2
@endolith - โดยทั่วไปกับ Hough แปลงความถูกต้องถูก จำกัด โดยการระบุขอบในภาพเริ่มต้นและ 'discretization' ของผลลัพธ์ในพื้นที่ Hough หากคุณต้องการผลลัพธ์ที่แม่นยำยิ่งขึ้นมันเป็นเรื่องปกติที่จะย้อนกลับและทำซ้ำการแปลงพิกัดในช่วงที่ จำกัด มากขึ้นของ [θ, limited] เพื่อให้ได้ความละเอียดที่สูงกว่าพื้นที่ว่างรอบ ๆ โซลูชันที่คุณพบ
Martin Beckett

@DipanMehta - สรุปผลรวม ( ค่า x ของแต่ละพิกเซล) และ (y .. ) จากนั้นหารด้วยความกว้าง X, Y ของช่องที่คุณกำลังค้นหา - แต่ดูความคิดเห็นของ endolith
Martin Beckett

2

รหัสนี้ในการแลกเปลี่ยนไฟล์จะช่วยให้คุณค้นหา maxima ท้องถิ่นทั้งหมด http://www.mathworks.com/matlabcentral/fileexchange/14498-local-maxima-minima

หากคุณมีความรู้เกี่ยวกับจำนวนบรรทัดที่คุณต้องการค้นหา (ในกรณีนี้ห้า) คุณเพียงแค่เลือก maxima ท้องถิ่นห้าแห่งที่มีคะแนน Hough สูงสุด


2

คุณสามารถค้นหา maxima ท้องถิ่นสำหรับรัศมีที่กำหนด ตัวอย่างเช่นคุณสแกนภาพ Hough ที่ถ่ายจุดสูงสุดเป็นสูงสุดเมื่อหน้าต่างเหล่านั้นมีขนาดสูงสุดในหน้าต่าง3×3

ขั้นตอนที่สองสามารถปรับแต่งตำแหน่งสูงสุดเป็นความแม่นยำของพิกเซลย่อย สามารถทำได้โดยการปรับพาราโบลา

สมมติว่าค่าในภาพ Hough คือโดยที่คือตำแหน่ง 2D ตอนนี้คุณต้องการที่จะหาการแก้ไขเวกเตอร์ที่เพิ่มP) สามารถเขียนได้โดยใช้การขยายตัวของเทย์เลอร์:f(x)xpf(x+p)

f(x+p)f(x)+pTf(x)+12pTf(x)+p

เวกเตอร์ที่ถูกต้องคือตอนนั้น

p=f(x)1f(x)

สัญญาซื้อขายล่วงหน้าสามารถคำนวณได้จากรูป Hough โดยความแตกต่างแน่นอน

โปรดทราบว่าคือเมทริกซ์ของ Hessianและคือ 2-vector (การไล่ระดับสีแนวนอนและแนวตั้ง) ดังนั้นจึงเป็น 2-vector ที่ระบุการเลื่อนพิกเซลย่อยเพื่อรับ ตำแหน่งที่ถูกต้องของ maximizer ท้องถิ่นf(x)2×2f(x)p

สมการข้างต้นบางครั้งอาจให้กะมากกว่า 1 พิกเซล ในกรณีดังกล่าวย่าน maximizer ไม่มีรูปร่างเป็นรูปโค้งและคุณอาจไม่ต้องการทำการแก้ไขหรือควรวาง maximizer ของผู้สมัคร


0

มีเทคนิคที่ดีมากที่พัฒนาขึ้นในช่วงกลาง 80 โดย Gerig และ Klein มันเป็นขั้นตอนการ backmapping ที่วิเคราะห์พื้นที่ Hough เพื่อระบุจุดที่เป็นไปได้มากที่สุดที่เกี่ยวข้องกับจุดขอบแต่ละจุดจากนั้นสร้างพื้นที่ Hough ที่สองที่การแมปจุดขอบกับพารามิเตอร์เป็นแบบหนึ่งต่อหนึ่งมากกว่าหนึ่งต่อหลาย เป็นขั้นตอนแรกตามปกติ ฉันไม่มีการอ้างอิงถึงมือ แต่ดูในเอกสารทบทวน Hough ของ Illingworth และ Kittler (ประมาณปี 1987?)

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