Keyword: การแม็บจุดจากสี่เหลี่ยมใดๆไปยังสี่เหลียมใด, Quadrilateral to Quadrilateral mapping, inverse, matlab, Algorithm, Source Code
input :
จุดมุมในสีเหลี่ยมใดๆต้นทาง 4 จุด คือ (u0,v0), (u1,v1), (u2,v2), (u3,v3)
จุดมุมในสีเหลี่ยมใดๆปลายทาง 4 จุด คือ (u0,v0), (u1,v1), (u2,v2), (u3,v3)
จุดที่ต้องการแม็บ สีเหลี่ยมต้นทาง ไปยังสีเหลี่ยมปลายทาง (u,v)
output:
จุดที่อยู่บนสีเหลี่ยมปลายทาง
Source Code
% Quadrilateral to Quadrilateral % By Nemin Suksen % Master Degree FIBO, KMUTT, Thailand % Reference: pages 17-21 of Fundamentals of Texture Mapping and Image Warping, Paul Heckbert, % Master’s thesis, UCB/CSD 89/516, CS Division, U.C. Berkeley, June 1989, % URL=http://www.cs.cmu.edu/˜ph. % Thank Nung Navakun Sebang for paper sample data and suggestion clc; clear all; close all; %% Source Quadrilateral % 4 Point of Quadrilateral = (u0,v0), (u1,v1), (u2,v2), (u3,v3) u0 = 7; v0 = 171; u1 = 294; v1 = 168; u2 = 307; v2 = 2; u3 = 1; v3 = 2; %% Destination Quadrilateral % 4 Point of Quadrilateral = (x0,y0), (x1,y1), (x2,y2), (x3,y3) x0 = 10; y0 = 190; x1 = 310; y1 = 190; x2 = 310; y2 = 10; x3 = 10; y3 = 10; %% slove 8 equation to find 8 unknowns a-h C =[ u0 v0 1 0 0 0 -u0*x0 -v0*x0 u1 v1 1 0 0 0 -u1*x1 -v1*x1 u2 v2 1 0 0 0 -u2*x2 -v2*x2 u3 v3 1 0 0 0 -u3*x3 -v3*x3 0 0 0 u0 v0 1 -u0*y0 -v0*y0 0 0 0 u1 v1 1 -u1*y1 -v1*y1 0 0 0 u2 v2 1 -u2*y2 -v2*y2 0 0 0 u3 v3 1 -u3*y3 -v3*y3]; % [C] * [unknow] = [Destination 4 point] % slove to fine unknow matrix by invert C method D4p= [x0; x1; x2; x3; y0; y1; y2; y3]; Unknown = inv(C) * D4p a = Unknown(1); b = Unknown(2); c = Unknown(3); d = Unknown(4); e = Unknown(5); f = Unknown(6); g = Unknown(7); h = Unknown(8); i = 1; Tf = [a b c; d e f; g h i]; %% Ex sample %point in source quadrilateral = (154,154) u = 154; v = 154; % point in destination qudrilateral % w = gu+hv+1 % x = (au+bv+c)/w % y = (du+ev+f)/w w = g*u + h*v + 1; x = (a*u + b*v + c) / w y = (d*u + e*v + f) / w |
เกร็ดความรู้เรื่องอินเวอร์ส
หากเรามีพารามิเตอร์ a-h ที่แปลงจาก สีเหลี่ยมQ ไป สีเหลี่ยมR แล้ว
หากต้องการหาพารามิเตอร์ a-h ที่แปลงจาก สีเหลี่ยมR ไป สีเหลี่ยมQ
สามารถใช้วิธีการ Inverse ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น