การหมุนภาพ (Rotation)

Download Report

Transcript การหมุนภาพ (Rotation)

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 ทางแกนนอน
Ty = ระยะห่ างจากจุด y ทางแกนตั้ง
x’ = x + Tx
y’ = y + Ty
ซึ่งสามารถเขียนให้ อยู่ในรูปแบบของ Matrix ได้ มลี กั ษณะดังนีค้ อื P’ = P + T เมือ่
 x' 
P'   
 y '
x 
P 
 y
และ
Tx 
T  
Ty 
การเลือ่ นภาพ (Translation)
y
5 pixels
(x’,y’)
10 pixels
(x,y)
0
x
การย้ ายภาพจากจุด (x, y) ไปยังจุด (x’, y’) เช่ น
x'  x  (5)
y'  y  10
การหมุนภาพ (Rotation)
จากรูปเป็ นการหมุนภาพในระนาบ xy เมือ่ จุดศูนย์ กลางการหมุน (Pivot Point)
อยู่ทจี่ ุด Origin (0,0)
การหมุนภาพ (Rotation)
การหมุนภาพต้ องกาหนดว่ าจุดใดเป็ นหมุนเสมอ และแบ่ งเป็ น
1.
2.
3.
4.
หมุนแบบทวนเข็มนาฬิ กา
หมุนแบบตามเข็มนาฬิ กา
จุดหมุนอยู่ทจี่ ุดกาเนิด (origin) (0,0)
จุดหมุนไม่ อยู่ทจี่ ุดกาเนิด (จุด x,y ใด ๆ)
การหมุนภาพ (Rotation)


จุดพิกดั (x,y) ในระบบพิกดั ฉาก คือกาหนดตาแหน่ งจุดโดยบอกระยะทางใน
แนวนอนและแนวดิง่
จุดพิกดั (x,y) ในระบบโพลาร์ คือการบอกตาแหน่ งจุดโดยใช้ เวกเตอร์
การหมุนภาพ (Rotation)
ดังนั้นพิกดั ของจุด (x’,y’) จะเกิดจากการนาเอา + 
การหมุนภาพ (Rotation)
x = r cos ()
y = r sin ()
x’ = r cos ( + )
y’ = r sin ( + )
Trig Identity…
x’ = r cos() cos() – r sin() sin()
y’ = r sin() sin() + r cos() 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
 x cos
 y   sin 
  
P’
 sin    x 
. 

cos   y 
R
P
การหมุนภาพ (Rotation)

การหมุนภาพ ณ จดุ ใด ๆ ทีไ่ ม่ ใช่ จดุ กาเนิดสาหรับกรณีนี้ต้องใช้ 3 ขัน้ ตอน
ดังนี้
1. ย้ ายจุดหมุน (xp,yp) ไปที่ (0,0) และย้ ายจุดหมุนไปทีจ่ ุดใหม่ ให้
ห่ างจุดหมุนเดิม
การหมุนภาพ (Rotation)
2. ย้ ายจุดหมุน (xp,yp) ไปยังจุดกาเนิด (0,0) เมื่อย้ ายแล้ วทุกๆ จุด
(x,y) ทีใ่ ช้ นิยามภาพ ก็จะถูกย้ ายไปยังจุดใหม่ (x’,y’) ด้ วย
x’ = x - xp
y’ = y - yp
3. ทาการหมุนรอบจุดกาเนิด(origin)
4. ทาการย้ ายไปจุดเดิมโดยการบวก xp และ yp
5. สมการหมุนรอบจุด Pivot ใด ๆ ทีไ่ ม่ ใช่ จุด origin คือ
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
y
y
0
fix point
x
0
x
fix point
รูปการย่ อขยายภาพ ทาให้ ระยะห่ างระหว่ างภาพกับจุดประจาที่ (fix point) เปลี่ยนไป
การย่ อและขยายภาพ (Scaling)
X  2,
Y  0.5
แสดงการย่ อและขยายภาพกรณี Sx และ Sy ไม่ เท่ ากัน
การย่ อและขยายภาพ (Scaling)

สมการของการ Scaling จะมีลกั ษณะ ดังนี้
x’ = x . Sx
y’ = y . Sy
ดังนั้นการย่ อและขยายภาพโดยใช้ Matrix จะมีลกั ษณะดังนี้ คือ P’ = S.P
สังเกตว่ าการย่ อและขยายภาพจะทาให้ เกิดการเลื่อนตาแหน่ งของภาพ
P’
P
การย่ อและขยายภาพ (Scaling)

การย่ อและขยายภาพเมื่อจุด Fixed ไม่ ได้ อยู่ทจี่ ุด Origin
1. ให้ ย้ายตาแหน่ งไปทีจ่ ดุ origin
2. ทาการย่ อหรือขยายรอบจดุ origin
3. ย้ ายไปยังจดุ Fixed point เหมือนเดิม ซึ่งจะได้ สมการ ดังนี้
x’ = (x - xf).Sx + xf
y’ = (y - yf).Sy + yf
การย่ อและขยายภาพ (Scaling)
4. จะแปลงได้ เป็ นดังนี้ คือ
x’ = xSx + xf(1 - Sx)
y’ = ySy + yf(1 - Sy)
5. ดังนั้นการย่ อและขยายภาพ จะอย่ ใู นรูป Matrix ดังนี้
การบิดภาพ (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
Wrong
R(45)
a
Correct
T(-3) R(45) T(3)
Example of Composition

การหมุนเส้ นตรงบนจุดใด ๆ ที่ไม่ ใช่ origin ทาได้ ดงั นี้
a
1. ทาการเลือ่ นจุด a ไปยังจุด origin : T(-3)
2. Rotate เส้ นตรง 45 องศา : R(45)
a
a
3. เลือ่ นเส้ นไปยังตาแหน่ งเดิม : T(3)
a
Example of Composition

ดังนั้นจะสามารถเขียน Matrix ต่ าง ๆ ได้ ดงั นี้