300 likes | 543 Views
Image Processing & Computer Vision. การแปลงข้อมูลภาพในสองมิติ Two Dimensional Geometric Transformation. Image Transformation.
E N D
Image Processing & Computer Vision การแปลงข้อมูลภาพในสองมิติ Two Dimensional Geometric Transformation
Image Transformation • การแปลงข้อมูลภาพ (Image Transformation) มีความจำเป็นมากในการทำการประมวลผลภาพ ยกตัวอย่างเช่น การทำ Template matching, Shape Matching, Image Search, Generalized Hough Transform • ซึ่งการใช้ Image Transformation นั้น ใช้เพื่อต้องการ ทำการหมุนภาพ, ปรับตำแหน่งของภาพ, หรือเลื่อนภาพ เพื่อให้อยู่ในตำแหน่งที่เหมาะสม
การแปลงข้อมูลภาพแบบพื้นฐานการแปลงข้อมูลภาพแบบพื้นฐาน • การเลื่อนภาพ (Translation) ใช้เพื่อทำการเลื่อนภาพให้ไปวางยังตำแหน่งใหม่ • การหมุนภาพ(Rotation)ใช้เพื่อทำการหมุนภาพไปตามทิศทาง เช่น clockwise(ตามเข็ม)หรือ counterclockwise(ทวนเข็ม)โดยมีการระบุองศาที่จะทำการหมุนด้วย • การย่อหรือขยายภาพ (Scaling)ใช้เพื่อทำการย่อ หรือ ขยายภาพโดยต้องมีการระบุจำนวนเท่าของภาพที่จะทำการย่อหรือขยายด้วย • การบิดภาพ(Shearing)ใช้เพื่อทำการบิดภาพให้มีรูปทรงหรือทิศทางต่างไปจากเดิม ซึ่งสามารถระบุให้บิดภาพได้ทั้งในแนวแกน x และ y
การเลื่อนภาพ (Translation) • เป็นการเลื่อนตำแหน่งของภาพตามระยะการขจัดตามแนวแกน x(Tx) และตามแนวแกน y(Ty) • เมื่อกำหนดให้พิกัดเดิมคือ (x, y) และพิกัดใหม่คือ (x’, y’) ซึ่งจะทำให้ได้สมการของการเลื่อนภาพ ดังนี้ Tx = ระยะห่างจากจุด x ทางแกนนอน x’ = x + Tx y’ = y + Ty Ty = ระยะห่างจากจุด y ทางแกนตั้ง ซึ่งสามารถเขียนให้อยู่ในรูปแบบของ Matrix ได้มีลักษณะดังนี้คือ P’ = P + T เมื่อ และ
การเลื่อนภาพ (Translation) การย้ายภาพจากจุด (x, y) ไปยังจุด (x’, y’) เช่น
การหมุนภาพ (Rotation) จากรูปเป็นการหมุนภาพในระนาบ xy เมื่อจุดศูนย์กลางการหมุน (Pivot Point) อยู่ที่จุด Origin(0,0)
การหมุนภาพ (Rotation) การหมุนภาพต้องกำหนดว่าจุดใดเป็นหมุนเสมอ และแบ่งเป็น • หมุนแบบทวนเข็มนาฬิกา • หมุนแบบตามเข็มนาฬิกา • จุดหมุนอยู่ที่จุดกำเนิด (origin) (0,0) • จุดหมุนไม่อยู่ที่จุดกำเนิด (จุด x,y ใด ๆ)
การหมุนภาพ (Rotation) • จุดพิกัด (x,y) ในระบบพิกัดฉาก คือกำหนดตำแหน่งจุดโดยบอกระยะทางในแนวนอนและแนวดิ่ง • จุดพิกัด (x,y) ในระบบโพลาร์ คือการบอกตำแหน่งจุดโดยใช้เวกเตอร์
การหมุนภาพ (Rotation) ดังนั้นพิกัดของจุด (x’,y’) จะเกิดจากการนำเอา +
การหมุนภาพ (Rotation) x = r cos (f) y = r sin (f) x’ = r cos (f + ) y’ = r sin (f + ) Trig Identity… x’ = r cos(f) cos() – r sin(f) sin() y’ = r sin(f) sin() + r cos(f) cos() Substitute… x’ = x cos() - y sin() y’ = y sin() + x cos()
การหมุนภาพ (Rotation) x’ = x cos() - y sin() y’ = y sin() + x cos() ดังนั้นจากสมการ จะสามารถเขียนเป็น Matrix ได้ดังนี้ P’ = R.P P P’ R
การหมุนภาพ (Rotation) • การหมุนภาพ ณ จุดใด ๆ ที่ไม่ใช่จุดกำเนิดสำหรับกรณีนี้ต้องใช้ 3 ขั้นตอนดังนี้ 1. ย้ายจุดหมุน (xp,yp) ไปที่ (0,0) และย้ายจุดหมุนไปที่จุดใหม่ให้ ห่างจุดหมุนเดิม
การหมุนภาพ (Rotation) 2. ย้ายจุดหมุน (xp,yp) ไปยังจุดกำเนิด (0,0) เมื่อย้ายแล้วทุกๆ จุด (x,y) ที่ใช้นิยามภาพ ก็จะถูกย้ายไปยังจุดใหม่ (x’,y’) ด้วย 3. ทำการหมุนรอบจุดกำเนิด(origin) 4. ทำการย้ายไปจุดเดิมโดยการบวก xp และ yp 5. สมการหมุนรอบจุด Pivot ใด ๆ ที่ไม่ใช่จุด origin คือ x’ = x - xp y’ = y - yp x’ = [(x – xp)cos - (y - yp)sin] + xp y’ = [(y – yp)sin + (x-xp)cos] + yp
การย่อและขยายภาพ (Scaling) • การย่อและขยายภาพสามารถทำได้โดยใช้ Scaling factor ได้แก่ Sx และ Sy ซึ่งใช้ในการย่อและขยายภาพแกน x และ y ตามลำดับโดย 0 < Sx,Sy < 1 แสดงว่าเป็นการย่อภาพ Sx,Sy > 1 แสดงว่าเป็นการขยายภาพ Sx = Sy แสดงว่าการย่อและขยายเป็นไปตามอัตราส่วน Sx Sy แสดงว่าการย่อและขยายไม่เป็นไปตามอัตราส่วน รูปการย่อขยายภาพ ทำให้ระยะห่างระหว่างภาพกับจุดประจำที่ (fix point) เปลี่ยนไป
X 2,Y 0.5 การย่อและขยายภาพ (Scaling) แสดงการย่อและขยายภาพกรณี Sx และ Sy ไม่เท่ากัน
การย่อและขยายภาพ (Scaling) • สมการของการ Scaling จะมีลักษณะ ดังนี้ P’ x’ = x . Sx y’ = y . Sy P ดังนั้นการย่อและขยายภาพโดยใช้ Matrix จะมีลักษณะดังนี้ คือP’ = S.P สังเกตว่าการย่อและขยายภาพจะทำให้เกิดการเลื่อนตำแหน่งของภาพ
การย่อและขยายภาพ (Scaling) • การย่อและขยายภาพเมื่อจุด Fixed ไม่ได้อยู่ที่จุด Origin 1. ให้ย้ายตำแหน่งไปที่จุด origin 2. ทำการย่อหรือขยายรอบจุด origin 3. ย้ายไปยังจุด Fixed point เหมือนเดิม ซึ่งจะได้สมการ ดังนี้ x’ = (x - xf).Sx + xf y’ = (y - yf).Sy + yf
การย่อและขยายภาพ (Scaling) 4. จะแปลงได้เป็นดังนี้ คือ 5. ดังนั้นการย่อและขยายภาพ จะอยู่ในรูป Matrix ดังนี้ x’ = xSx + xf(1 - Sx) y’ = ySy + yf(1 - Sy)
การบิดภาพ (Shearing) • คือการปรับทิศทางของภาพให้เพี้ยนไปจากเดิมมีสองแบบ คือ 1. การบิดภาพทางแกน x 2. การบิดภาพทางแกน y - การบิดภาพทางแกน y ทำให้เกิดการย้ายจุด (x,y) ไป (x’,y’) โดยที่ x’ = x y’ = Shy.x + y
การบิดภาพ (Shearing) - การบิดภาพทางแกน x ทำให้เกิดการย้ายจุด (x,y) ไป (x’,y’) โดยที่ x’ = Shx.y + x y’ = y
Homogeneous Coordinate • การอ้างอิงโคออดิเนตที่ผ่านมาจะมีสองตำแหน่งคือ x และ y ซึ่งเรียกว่า Cartesian coordinate ข้อเสียของ cartesian คือเมื่อมีการแปลงภาพหลาย ๆ อย่างเข้าด้วยกันจะทำให้ผลลัพธ์ของ Matrix การแปลงภาพอยู่ในรูปของการบวกและการคูณกันของ Matrix ดังนั้นเพื่อให้ผลลัพธ์ของการแปลงภาพอยู่ในรูปของการคูณกันของ Matrix ทั้งหมด จะทำให้ง่ายต่อการคำนวณจึงกำหนดให้มี Homogeneous coordinate ขึ้น ซึ่งมีลักษณะ ดังนี้
Homogeneous Coordinate • ดังนั้น Matrix ของการแปลงแบบต่าง ๆ จะมีลักษณะ ดังนี้ การหมุนภาพ การเลื่อนภาพ การย่อขยายภาพ การบิดภาพ
Combining Transformation • ตัวอย่างของการเลื่อนภาพ ถ้ามีการแปลงภาพ 2 ครั้ง 1. ย้ายโดยใช้ (Tx1,Ty1) 2. ย้ายโดยใช้ (Tx2,Ty2)สมการของการเลื่อนภาพจะมีลักษณะ ดังนี้
Combining Transformation • ตัวอย่างของการหมุนภาพ ถ้ามีการหมุนภาพสองครั้ง 1. หมุนภาพโดยใช้ R(1) 2. หมุนภาพโดยใช้ R(2) สมการของการหมุนภาพจะมีลักษณะดังนี้
Combining Transformation • ตัวอย่างการย่อขยายภาพถ้ามีการย่อขยายภาพ 2 ครั้ง 1. ย่อภาพโดยใช้ S(Sx1,Sy1) 2. ย่อภาพโดยใช้ S(Sx2,Sy2) สมการของการย่อขยายภาพจะมีลักษณะดังนี้
Example of Composition • ตัวอย่างแสดงการ Rotation ร่วมกัน Translation ทำการหมุนเส้นตรงเป็นเป็นมุม 45 องศา โดยใช้จุด a เป็นจุดหมุน a a
Example of Composition • จากตัวอย่างถ้าทำการหมุนตามปกติ จะทำให้เส้นตรงมีการเลื่อนผิดไปจากตำแหน่งเดิม • ดังนั้นการหมุนจะต้องมีการ เลื่อนเข้ามาเกี่ยวข้องด้วย a a a Wrong Correct T(-3) R(45) T(3) R(45)
Example of Composition • การหมุนเส้นตรงบนจุดใด ๆ ที่ไม่ใช่ origin ทำได้ดังนี้ 1. ทำการเลื่อนจุด a ไปยังจุด origin : T(-3) 2. Rotate เส้นตรง 45 องศา : R(45) 3. เลื่อนเส้นไปยังตำแหน่งเดิม : T(3) a a a a
Example of Composition • ดังนั้นจะสามารถเขียน Matrix ต่าง ๆ ได้ดังนี้