Log-Polar DFT Based การลงทะเบียนภาพขนาดคงที่


10

ฉันพยายามที่จะทำลงทะเบียนภาพโดยใช้ความสัมพันธ์ขั้นตอนที่อธิบายไว้ในกระดาษเรดดี้ Chatterji ในกรณีของฉันรูปภาพอาจถูกปรับขนาดและแปลให้สัมพันธ์กัน

อัลกอริทึมสำหรับการค้นหาสเกลสัมพัทธ์ตามที่ฉันเข้าใจคือ (ดู: แผนผังลำดับงานจากกระดาษ ):

F1 = DFT(I1)
F2 = DFT(I2)
H1 = Highpass(F1)
H2 = Highpass(F2)
L1 = LogPolar(Magnitude(H1))
L2 = LogPolar(Magnitude(H2))
PC = PhaseCorrelate(L1,L2)
PM = norm(PC)
R = IDFT(PhaseCorr/PM)
P = Peak(R)
Scale = LogBase^P[1]

สเกลให้ค่าที่ดูไร้สาระ (แตกต่างจากภาพต่อภาพและไม่ถูกต้อง)

แต่ไม่สนใจสเกลวิธีการสหสัมพันธ์เฟสเดียวกันนั้นใช้ได้ผลดีสำหรับการแปล และฉันก็สงสัยว่าฉันมีปัญหากับการแปลงขั้ว - นี่คือตัวอย่างที่ฉันแก้ไขสำหรับการแปล - รูปภาพด้านซ้ายเป็นต้นฉบับและด้านขวาถูกตัดและแปล - วิธีแก้ไขจะปรากฏที่ด้านบนของ orignal:

การแปลเพียงอย่างเดียวทำงานได้

สำหรับการแปลงล็อก - โพลาร์ฉันเปลี่ยนเป็นพื้นที่ขั้ว: ที่เป็นภาพดั้งเดิมคือ รัศมีภาพ (ความกว้างครึ่งหนึ่ง) และคือจำนวนตัวอย่างในทิศทางจากนั้นฉันจะสุ่มตัวอย่างจากสิ่งนี้เพื่อแปลงเป็นพื้นที่ขั้วโลกบันทึก: โดยที่ตามที่อธิบายไว้ใน1เพื่อให้ครอบคลุมพื้นที่ขั้วโลกทั้งหมด

ผม^(ρ,θ)=ผม(R+ρcos(2πθยังไม่มีข้อความθ),R-ρบาป(2πθยังไม่มีข้อความθ))
ผมRยังไม่มีข้อความθθ
ผม^ล.โอก.(ρ,θ)=ผม^(เข้าสู่ระบบ(ρ),θ)
=(2R)-ยังไม่มีข้อความρ

นี่คือภาพตัวอย่างในพื้นที่บันทึกโดยมี (ในกรณีที่มีบางอย่างผิดปกติอย่างเห็นได้ชัด):ρ=θ=256

บันทึกขั้วโลก

สุดท้ายนี้แสดงให้เห็นถึงการเปลี่ยนแปลงที่เกิดขึ้นจริงของภาพก่อนขั้นตอนความสัมพันธ์ของเฟส (ด้านบนคือ DFT ขนาดโพสต์ตัวกรอง highpass ด้านล่างคือในพื้นที่ขั้วโลกบันทึก):

Log Polar ของ DFT

ฉันใช้ OpenCV ซึ่งมีวิธี LogPolar และ PhaseCorrelate ในขณะที่ PhaseCorrelate เช่นเดียวกับการติดตั้งด้วยตนเองของฉันให้คำตอบที่ถูกต้องสำหรับการแปล เนื่องจากการใช้ OpenCV LogPolar หรือของฉันเองไม่ส่งผลกระทบต่อความถูกต้องฉันจะต้องหายไปบางสิ่งบางอย่าง

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม


1
คุณคิดว่าผิดหรือเปล่า?
Mr.WorshipMe

1
@ Mr.WorshipMe น่าเสียดายไม่ใช่
Drew Cummins

@Drew Cummins ฉันคิดว่ามันเป็นเพราะภาพทดสอบที่คุณใช้เพราะมีการเปลี่ยนแปลงอย่างรุนแรงจากพื้นหลัง ภาพทดสอบอื่น ๆ เป็นอย่างไร? นอกจากนี้จากตัวเลขสุดท้ายมีความแตกต่างที่ชัดเจนระหว่างสองขนาดดังนั้นจึงเป็นการดีกว่าที่จะ preform การประมวลผลล่วงหน้าที่เหมาะสมสำหรับการประมวลผลล่วงหน้าก่อน DFT
lxg

สองสามวันก่อนที่ฉันจะพบกระดาษนั้นและฉันพยายามที่จะใช้อัลกอริทึมไม่ประสบความสำเร็จ ฉันสงสัยว่าคุณสามารถแบ่งปันการนำไปใช้กับผู้เริ่มต้นได้ไหม :)
อเล็กซิสเอสปานา

คำตอบ:


1

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


0

ฉันเดาว่ามันเป็นเพราะปัญหาการใช้งานที่เฉพาะเจาะจง ตัวอย่างเช่น (1) เป็นการดีกว่าที่จะดำเนินการประมวลผลล่วงหน้าของหน้าต่างก่อนหน้า DFT (2) คุณสามารถตรวจสอบฟังก์ชั่น Highpass () และคุณสามารถอ้างถึงหนึ่งใน Eq ของกระดาษของ Reddy Chatterji (23) - (24) นอกจากนี้ยังมีข้อ จำกัด สำหรับค่าสเกลและคุณสามารถลองใช้ค่าสเกลอื่น ๆ ได้

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