ความแตกต่างระหว่าง Hough และ Radon เปลี่ยนไปอย่างไร


34

ฉันคุ้นเคยกับการแปลงเรดอนจากการเรียนรู้เกี่ยวกับการสแกน CT แต่ไม่ใช่การแปลง Hough Wikipedia พูดว่า

บางครั้งเครื่องบิน (r, θ) บางครั้งเรียกว่า Hough space สำหรับชุดของเส้นตรงในสองมิติ การเป็นตัวแทนนี้ทำให้การแปลง Hough ในเชิงแนวคิดใกล้เคียงกับการแปลงเรดอนสองมิติ (พวกเขาสามารถมองเห็นวิธีต่าง ๆ ในการดูการเปลี่ยนแปลงแบบเดียวกัน [5])

ผลลัพธ์ของพวกเขาดูเหมือนกันสำหรับฉัน:

rho vs-by-side rho vs theta แปลงสำหรับการแปลง Hough และ Radon

ดังนั้นฉันไม่เข้าใจว่าความแตกต่างคืออะไร พวกเขาเป็นเพียงสิ่งเดียวกันที่เห็นในรูปแบบที่แตกต่างกัน? ประโยชน์ของมุมมองที่ต่างกันคืออะไร ทำไมพวกเขาถึงไม่รวมเข้ากับ "การแปลงร่างของ Hough-Radon"?


เฮ้คำถามที่ไม่เกี่ยวข้องเรียงกัน แต่คุณสามารถแชร์ภาพสี Heatz ของ Bezier ในรูปนี้ได้ไหม? มันดูค่อนข้างดีและฉันก็สงสัยว่าคุณมีค่า RGBของอาร์เรย์ที่อธิบายอยู่หรือไม่ M×3
DumpsterDoofus

@DumpsterDoofus ผมคิดว่าผมยังไม่ได้รับการตีพิมพ์มันเพราะมันเป็น kludgy และฉันอยากจะขัดมันเป็นครั้งแรก แต่ตั้งแต่ผมยังไม่ได้: ไม่ใช่ Bezier รุ่นอยู่ที่นี่gist.github.com/endolith/2879736และพยายาม Bezier อยู่ที่นี่เค้า .github.com / endolith / ef948b924abf289287bd ยังใช้ที่นี่flic.kr/p/dWSfUd
endolith

ขอบคุณฉันคิดออกเมื่อคืนจริง ๆ มันสามารถเขียนดานเป็นRGB(x)=((2x)xBoole[0x1]x2Boole[1x1]x(x+2)Boole[1x0]).
DumpsterDoofus

@DumpsterDoofus อย่าลังเลที่จะทำความสะอาดโค้ดของฉัน :)
endolith

คำตอบ:


31

การแปลง Hough และการแปลงเรดอนนั้นคล้ายกันมากและความสัมพันธ์ของพวกเขาสามารถนิยามได้อย่างหลวม ๆ ว่าเมื่อก่อนเป็นรูปแบบการแยกส่วนหลัง

เรดอนเปลี่ยนเป็นหนึ่งทางคณิตศาสตร์แปลงที่กำหนดไว้สำหรับการทำงานอย่างต่อเนื่องในใน hyperplanes ใน n ในทางกลับกันการแปลงของ Hough นั้นเป็นอัลกอริธึมที่แยกกันโดยสิ้นเชิงที่ตรวจจับเส้น (ขยายไปยังรูปร่างอื่น ๆ ) ในภาพโดยการสำรวจและการแยก (หรือการลงคะแนน)R nRnRn

ฉันคิดว่าการเปรียบเทียบที่สมเหตุสมผลสำหรับความแตกต่างระหว่างทั้งสองจะเป็นเหมือนความแตกต่างระหว่าง

  1. การคำนวณฟังก์ชั่นลักษณะของตัวแปรสุ่มเป็นการแปลงฟูริเยร์ของฟังก์ชันความหนาแน่นของความน่าจะเป็น (PDF) และ
  2. สร้างลำดับสุ่มคำนวณ PDF เชิงประจักษ์ของมันโดยการฮิสโตแกรม binning แล้วเปลี่ยนมันอย่างเหมาะสม

อย่างไรก็ตามการแปลง Hough เป็นอัลกอริธึมแบบรวดเร็วที่สามารถโน้มน้าวสิ่งประดิษฐ์บางอย่างได้ เรดอนซึ่งเป็นเสียงทางคณิตศาสตร์มีความแม่นยำมากขึ้น แต่ช้าลง ในความเป็นจริงคุณสามารถเห็นสิ่งประดิษฐ์ในตัวอย่างการแปลง Hough ของคุณเป็นเส้นแนวตั้ง นี่คืออีกตัวอย่างรวดเร็วใน Mathematica:

img = Import["http://i.stack.imgur.com/mODZj.gif"];
radon = Radon[img, Method -> "Radon"];
hough = Radon[img, Method -> "Hough"];
GraphicsRow[{#1, #2, ColorNegate@ImageDifference[#1, #2]} & @@ {radon,hough}]

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

เหตุผลส่วนหนึ่งที่ว่าทำไมความเหมือนกันระหว่างทั้งสองจึงไม่ค่อยเป็นที่รู้จักกันมากนักเนื่องจากสาขาวิทยาศาสตร์และวิศวกรรมที่แตกต่างกันมีการใช้ประวัติศาสตร์เพียงหนึ่งในสองสิ่งนี้เพื่อความต้องการของพวกเขา ตัวอย่างเช่นในการตรวจเอกซ์เรย์ (ทางการแพทย์แผ่นดินไหว ฯลฯ ) กล้องจุลทรรศน์ ฯลฯ การแปลงเรดอนอาจใช้เฉพาะ ฉันคิดว่าเหตุผลสำหรับสิ่งนี้คือการรักษาสิ่งประดิษฐ์ให้มีความสำคัญน้อยที่สุด (สิ่งประดิษฐ์อาจเป็นเนื้องอกที่วินิจฉัยผิดพลาดได้) ในทางกลับกันในการประมวลผลภาพการมองเห็นคอมพิวเตอร์ ฯลฯ มันเป็นการแปลงแบบ Hough ที่ใช้เนื่องจากความเร็วเป็นหลัก


คุณอาจพบบทความนี้ค่อนข้างน่าสนใจและเฉพาะ:

M. van Ginkel, CL Luengo Hendriks และ LJ van Vliet เป็นการแนะนำสั้น ๆ เกี่ยวกับการแปลง Radon และ Hough และวิธีการที่เกี่ยวข้องกับแต่ละอื่น ๆกลุ่มการถ่ายภาพเชิงปริมาณแผนกวิทยาศาสตร์และเทคโนโลยีการถ่ายภาพ TU Delft

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


นอกจากนี้ยังมีการแปลงเรดอนทั่วไปที่คล้ายกับการแปลง Hough ทั่วไปซึ่งทำงานกับโค้ง parametrized แทนเส้น นี่คือการอ้างอิงที่เกี่ยวข้องกับมัน:

Toft, PA, "การใช้การแปลงเรดอนทั่วไปเพื่อตรวจจับส่วนโค้งในภาพที่มีเสียงดัง" , IEEE ICASSP-96, ฉบับที่ 4, 2219-2222 (1996)


โอ้ฉันคิดว่าสิ่งเหล่านั้นถูกเพิ่มเข้าไปในภาพโดยเจตนา ไม่ได้ตระหนักว่าพวกเขาเป็นสิ่งประดิษฐ์ เรดอนคือ Hough เช่นเดียวกับ DFT คือ FFT แต่ยังมีการแปลงรูปทั่วไปของ Hough ที่สามารถค้นหาวงกลมและสิ่งของต่าง ๆ และอาจคล้ายกับการแปลงเรดอน
endolith

1
ใช่มีการแปลงเรดอนทั่วไปที่ใช้กับเส้นโค้ง parametrized ฉันคิดว่ามันยากที่จะทำเพื่อเส้นโค้งโดยพลการ แต่ฉันไม่รู้เกี่ยวกับเรื่องนี้มากนัก ฉันได้เพิ่มการอ้างอิงไปยังคำตอบของฉัน
Lorem Ipsum

การแปลงเรดอนสามารถเร่งด้วยวิธี FFT ได้เช่นกัน ฉันเดาว่า Hough เป็นไปไม่ได้เหรอ? Hough ยังเร็วกว่าหรือไม่ ฉันเดาว่ามันขึ้นอยู่กับขนาดของรูป?
endolith

1
@endolith มันเป็นประสบการณ์ของฉันที่ Hough เร็วขึ้น อย่างไรก็ตามการที่ฉันใช้สองสิ่งนี้คือการตรวจจับเส้นคี่สองสามเส้นในบางสิ่งที่ฉันเล่นซอไปด้วย ไม่เคยใช้มันในการทำงานอย่างจริงจังและฉันก็ไม่ได้นำไปใช้เอง ดังนั้นฉันขอแนะนำให้ถามว่าเป็นคำถามใหม่เพราะฉันไม่สามารถตอบด้วยความมั่นใจ
Lorem Ipsum

6

นอกจากนี้คำตอบของ Lorem Ipsum ที่อธิบายการแปลง Hough เป็นรูปแบบการแปลงเรดอนที่ไม่น่าเชื่อฉันชอบคำอธิบายที่อธิบายนี้ - ตามGinkel และคนอื่น ๆ :

ทั้ง Radon และ Hough เป็นการทำแผนที่จากพื้นที่รูปภาพไปยังพื้นที่พารามิเตอร์ของและแต่พวกเขาต่างกันในมุมมองของพวกเขา ในขณะที่เรดอนเปลี่ยนเกิดขึ้นในพื้นที่พารามิเตอร์จากพื้นที่ภาพ ( กระบวนทัศน์การอ่าน ), Hough แปลงแผนที่จุดข้อมูลอย่างชัดเจนจากพื้นที่ภาพไปยังพื้นที่พารามิเตอร์ ( กระบวนทัศน์การเขียน ) อย่างชัดเจนθρθ

สิ่งนี้จะชัดเจนโดยการเปรียบเทียบอัลกอริทึม (ไม่ต่อเนื่อง) สำหรับแต่ละในพื้นที่พารามิเตอร์เรดอนโครงการจุดภาพบนเส้นอธิบายโดย (มุม)ใช้ถังขนาด\ในทางกลับกันการใช้จุดภาพแต่ละจุดและเพิ่มความเข้มที่เหมาะสมให้กับช่องว่างพารามิเตอร์พารามิเตอร์ที่เกี่ยวข้องทั้งหมดθ Δ ρ ( x , Y )θθΔρ(x,y)

เป็นผลให้ Hough ทนทุกข์ทรมานกับสิ่งประดิษฐ์ในขณะที่เรดอนอนุญาตให้มีความละเอียดสูงในพื้นที่พารามิเตอร์ (โดยการปรับและและแบ่งพิกเซลเป็นพิกเซลย่อย)Δ ρΔθΔρ

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

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

ดูการอ้างอิง Matlab (ขยายแท็บอัลกอริทึม ):

www.mathworks.com/help/images/ref/radon.html

www.mathworks.com/help/images/ref/hough.html

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