FREE TRANSFORM ( BIẾN ĐỔI HÌNH ẢNH TÙY CHỈNH )

25 672 2
Tài liệu đã được kiểm tra trùng lặp
FREE TRANSFORM  ( BIẾN ĐỔI HÌNH ẢNH TÙY CHỈNH )

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Xử lý ảnh là một trong những ngành khoa học đã đem lại cho con người những bước tiến vượt bậc mang tính cách mạng, nó đã đưa con người tiến sang một kỉ nguyên mới

KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BÁO CÁO BÀI TẬP LỚN XỬ LÝ ẢNH Đề Tài : FREE TRANSFORM ( BIẾN ĐỔI HÌNH ẢNH TÙY CHỈNH ) Giáo viên hướng dẫn : THs. Lê Thị Thủy Nhóm thực hiện : Nhóm 3 – KHMT4 – K3: 1. Nguyễn Tử Hưng 2. Nguyễn Tất Tiến 3. Lê Trường Giang 1 Mục Lục Mục Lục 2 MỞ ĐẦU 3 I.CÁC KHÁI NIỆM .4 II.BIẾN ĐỔI ẢNH 6 3.Các giải thuật sử dụng trong freetrasform: .9 a.Giải thuật 1: Dịch chuyển đỉnh (Giả sử kéo đỉnh A) .9 b.Giải thuật 2: Dịch chuyển trung điểm (Giả sử kéo trung điểm TD1) 11 c.Giải thuật 3: Dịch chuyển điểm bất kỳ trong ảnh để di chuyển ảnh .12 d.Giải thuật 4: Dịch chuyển tâm 13 e.Giải thuật 5 : Dịch chuyển điểm ngoài 14 III.NỘI SUY ẢNH .16 2 MỞ ĐẦU Xử ảnh một trong những ngành khoa học đã đem lại cho con người những bước tiến vượt bậc mang tính cách mạng, nó đã đưa con người tiến sang một kỉ nguyên mới. Một vài năm trở lại đây công nghệ thông tin cùng với sự phát triển của đã kéo theo sự phát triển của hàng loạt các ngành khoa học trong nhiều lĩnh vực khác nhau như sinh học, kinh tế, viễn thông, quân sự, giải trí… có những bước tiến nhanh hơn so với đúng quy trình mà đáng ra phải trải qua. Với sự phát triển ngày càng hoàn thiện của công nghệ phần cứng, công nghệ phần mềm cũng đang có những bước tiến quan trọng đóng góp một phần không nhỏ cho sự phát triển của xã hội loài người đặc biệt là lĩnh vực xử lý ảnh. Khi sử dụng các thiết bị để thu nhận hình ảnh người ta muốn thay đổi kích thước, hình dạng của hình ảnh thu được và để khắc phục điều này người ta đã tìm cách sửa chữa, chỉnh sửa nhằm có được kết quả tốt hơn. Như vậy nắn chỉnh biến dạng ban đầu chỉ đơn thuần mang mục đích co kéo hình ảnh. Sau đó nhờ chính những kết quả từ khâu chỉnh sửa đã đem lại những hướng phát triển mới quan trọng trong các phần mềm xử lý ảnh . Ngày nay, người ta còn dùng co kéo biến dạng để “cố tình” tạo ra các hình dạng theo ý muốn chủ quan. Điển hình là các nhà làm phim, họ tạo ra các đối tượng có hình dạng hài hước v.v nhờ các kỹ thuật co kéo với chất lượng không thua kém gì các thước phim sử dụng thiết bị thu nhận. Tùy chỉnh hình ảnh giúp chúng ta tạo ra sự khác lạ. 3 I. CÁC KHÁI NIỆM. - Điểm ảnh (Picture Element): Điểm ảnh (pixel) được xem như là dấu hiệu hay cường độ sáng tại một toạ độ trong không gian của đối tượng. Mỗi pixel gồm một cặp toạ độ x, y và màu. - Như vậy, một ảnh là một tập hợp các điểm ảnh. Khi được số hoá, nó thường được biểu diễn bởi mảng hai chiều hay ma trận hai chiều I(n,p): mỗi phần tử có một giá trị nguyên hoặc là một véc tơ cấu trúc màu, n dòng và p cột. Ta nói ảnh gồm n x p pixels. Người ta thường kí hiệu I(x,y) để chỉ một pixel. Thường giá trị của n chọn bằng p và bằng 256. Một pixel có thể lưu trữ trên 1, 4, 8 hay 24 bit. Mỗi điểm ảnh khi mã hoá sẽ được biểu diễn dưới dạng 8 bít. Cách mã hoá kinh điển thường dùng 16, 32 hay 64 mức. Mã hoá 256 mức là phổ dụng nhất do lý do kỹ thuật. Vì 28 = 256 (0, 1, ., 255), nên với 256 mức, mỗi pixel sẽ được mã hoá bởi 8 bit và từ đó có thể biểu diễn ảnh dưới nhiều dạng khác nhau. Số pixel tạo nên một ảnh gọi là độ phân giải (resolution). - Ảnh RGBA (RGBA Images): Một ảnh RGBA được lưu trữ dưới dạng một mảng dữ liệu có kích thước 4 chiều m x n x k x alfa, định nghĩa các giá trị màu red, green và blue, giá trị alfa cho mỗi pixel riêng biệt. Ảnh RGBA không sử dụng bảng màu. Màu của mỗi pixel được quyết định bởi sự kết hợp giữa các giá trị R,G,B (Red, Green, Blue) và trị số alfa được lưu trữ trong một mặt phẳng màu tại vị trí của pixel. Định dạng file đồ hoạ lưu trữ ảnh RGBA giống như một ảnh 24 bít trong đó R,G,B,A chiếm tương ứng 8 bít 1. Điều này cho phép nhận được 16,7 triệu màu khác nhau . - Một mảng RGBA có thể thuộc lớp double, uint8 hoặc uint16. Trong một mảng RGBA thuộc lớp double, mỗi thành phần màu có giá trị giữa 0 và 1. 4 Một pixel mà thành phần màu của nó là (0,0,0,0) được hiển thị với màu đen và một pixel mà thành phần màu là (1,1,1,1) được hiển thị với màu trắng. Trong một ảnh RGBA khoảng trắng tương ứng với giá trị cao nhất của mỗi màu riêng rẽ. Chẳng hạn trong ảnh mặt phẳng R, vùng trắng đại diện cho sự tập trung cao nhất của màu đỏ thuần khiết. Nếu R được trộn với G hoặc B ta sẽ có màu xám. Vùng màu đen trong ảnh chỉ ra giá trị của pixel mà không chứa màu đỏ R= 0. Tương tự cho các mặt phẳng màu G và B. - Đường viền (Border): đường viền của một vùng ảnh R tập hợp các điểm ảnh trong vùng đó mà có một hay nhiều lân cận bên ngoài vùng R. 5 II. BIẾN ĐỔI ẢNH. 1. Phương Pháp Biến Đổi Ảnh Để xử lý ảnh đưa vào, trước tiên chúng ta cần tạo một phân vùng để xử lý ảnh. Ở đây chúng ta sử dụng một hình chữ nhật để ảnh được hiển thị vào trong nó, do kích thước của các ảnh là rất khác nhau nên hình chữ nhật khởi tạo ban đầu sau khi đưa ảnh vào sẽ có kích thước đúng bằng ảnh. Hình chữ nhật ban đầu khởi tạo Hình sau khi đưa ảnh vào. Ở đây chúng ta sẽ chú ý đến 9 điểm quan trọng để thực hiện biến đổi hình ảnh. Đó là 4 đỉnh của ảnh, và 4 trung điểm của ảnh, 1 tâm ảnh. 6 Tuy nhiên, chúng ta vẫn có thể cầm ảnh và di chuyển khi chỉ chuột bất kỳ vào ảnh. Khi chúng ta thực hiện cầm chuột vào các điểm quan trọng ( 9 điểm quan trọng) vào kéo, hình chữ nhật vàng sẽ thay đổi kích thước theo chuột. Lúc này các đỉnh liên quan, các trung điểm liên quan cũng thay đổi theo tọa độ kéo chuột. Chúng ta có thể kéo tùy ý đến các vị trí khác. Khi dừng kéo, ta đã có một khung hình khác và lúc này cần hiển thị hình ảnh trên khung mới. Xét P thuộc khung cũ, P lúc này được xét bởi: Tọa độ P = ( ) Khi kéo chuột lên vị trí mới, sẽ tạo khung mới với kích thước khác hoàn toàn khung cũ, và điểm P’ là ánh xạ của P thuộc khung cũ vẫn được tính theo công thức cũ: 7 P A B C D W H h1 h2 w1 w2 P’ = ( ) Khi ánh xạ được hết các điểm của ảnh cũ vào ảnh mới, chúng ta sẽ có vấn đề với bức ảnh mới. Các bức ảnh mới do chúng ta co, kéo sẽ dẫn tới ảnh bị nhòe, răng cưa. Vì vậy, chúng ta cần nội suy để anh được đẹp, rõ, mịn. 2. Áp Dụng Phương Pháp Biến Đổi Ảnh Vào Free Transform - Với phương pháp xác định biến đổi ảnh như trên ta sẽ chú trọng đến 4 điểm đỉnh của hình ảnh khi bị biến đổi. - Như vậy với mỗi điểm ảnh bất kỳ nào trong ảnh biến đổi ta đều xác định được thông qua phương pháp trên. - Các bước thực hiện như sau : • Lưu lại các điểm đỉnh khi bị biến đổi Duyệt ảnh qua chiều rộng ( Weight ) và chiều cao ( High) để xác định lại từng điểm pixel của ảnh khi bị biến đổi. • Lấy lại điểm ảnh tương ứng thông qua 4 đỉnh đã lưu trên bằng cách dùng phương pháp trên qua công thức : P’ = ( ) 8 P’ A’ B’ C’ D’ W’ H h1’ h2’ w1’ w2’ A’ B’ C’ D’ W H h1’ w2’ W’ H’ w1’ h2’ P’ W’ , H’ lần lượt là chiều rộng và chiều cao ảnh khi ảnh bị biến đổi Với w1’ ,w2’ , h1’, h2’ là khoảng cách từ điểm cần xét đến các cạnh của A’B’C’D’ sau khi biến đổi. • Như vậy với cách trên ta sẽ tìm được các điểm ảnh tương ứng sau khi ảnh bị biến đổi - Vấn đền đặt ra ở đây là ảnh biến đổi có độ sắc nét như ảnh ban đầu không thì ta phải nội suy từng byte mầu từng điểm ảnh so với ảnh gốc để có thể tạo được độ mịn so với ảnh ban đầu khi chưa bị biến đổi. - Phần sau bọn em xin trình bày kỹ thuật nội suy ảnh để giải quyết được vấn đề trên. 3. Các giải thuật sử dụng trong freetrasform: Ta có khung hình ban đầu như hình vẽ với tọa độ các điểm lần lượt là A(xa,ya), B(xb,yb), C(xc,yc), D(cd,yd) và 4 trung điểm TD1(xa+xb/2,ya), TD2(xb,yb + yc/2), TD3(xd + xc/2,yd), TD4(xa,ya + yd/2). a. Giải thuật 1: Dịch chuyển đỉnh (Giả sử kéo đỉnh A) Lúc này A sẽ có tọa độ mới là A’(xa’,ya’). Xét đỉnh B, do đỉnh A và B có ya = yb, khi kéo A, B sẽ thay đổi. Do đó B sẽ có tọa độ mới là điểm B’(xb,yb’). Tương tự với điểm D, do đỉnh A và đỉnh D có xa = xd, khi kéo A, D sẽ thay đổi. 9 A(x a ,y a ) B(x b ,y b ) C(x c ,y c )D(x d ,y d ) TD1[(x a + x b )/2 ,y a ] TD3[(x c + x d )/2 ,y d ] TD4[(x a ) ,(y a +y d )/2] TD2[(x b ) ,(y b +y c )/2] Do đó D sẽ có tọa độ mới là điểm D’(xa’,yd). Điểm C ko thay đổi. Với 4 trung điểm, khi biết đỉnh ta hoàn toàn có thể tính được. Từ đó, ta hoàn toàn có thể xây dựng khung hình mới và thực hiện chuyển ảnh. Tổng quát: Ta thấy, giả sử đặt A,B,C,D là 4 đỉnh dinh[0], dinh[1], dinh[2], dinh[3] Thì khi 1 đỉnh thay đổi thì 2 đỉnh cạnh nó sẽ thay đổi. Do đó khi đỉnh dinh[i] thay đổi thì ta có 2 đỉnh thay đổi cùng là dinh[i+1%4] và đỉnh dinh[i+3%4]. Đây chính là trường hợp tổng quát khi kéo 1 trong 4 đỉnh. Ví dụ minh họa : - Hình chưa kéo đỉnh A Hình khi kéo đỉnh A 10 A(x a ,y a ) B(x b ,y b ) C(x c ,y c )D(x d ,y d ) TD1[(x a + x b )/2 ,y a ] TD3[(x c + x d )/2 ,y d ] TD4[(x a ) ,(y a +y d )/2] TD2[(x b ) ,(y b +y c )/2] [...]... ngoài được kéo đó ĐN1(xa – 10, ya – 1 0) ĐN3(xa + 10, ya + 1 0) ĐN2(xa + 10 , ya – 1 0) ĐN4(xa – 10 , ya + 1 0) - Khi ta kéo điểm ngoài 1 ( N 1) Khi kéo điểm ngoài ĐN1 thì Đ N1 sẽ có tọa độ của con trỏ thay đổi là (x,y) 14 ĐN1(x ,y) A(xa’ ,ya ) TD1(xtd1 ,ytd 1) ĐN2(x2 ,y 2) B(xb ,yb) TD4(xtd4 ,ytd 4) TD2[(xb) ,(yb+yc)/2] C(xc ,yc) D(xd ,yd) TD3[(xc+ xd)/2 ,yd] ĐN3(x4 ,y 4) ĐN3(x3 ,y 3) Hình ảnh khi kéo điểm ngoài... điểm ngoài ĐN1(x1 ,y 1) W A(xa ,ya) TD1[(xa+ xb)/2 ,ya] B(xb ,yb) TD2[(xb) ,(yb+yc)/2] TD4[(xa) ,(ya+yd)/2] D(xd ,yd) ĐN2(x2 ,y 2) O(x,y) TD3[(xc+ xd)/2 ,yd] ĐN3(x4 ,y 4) C(xc,yc) ĐN3(x3 ,y 3) Hình các điểm ngoài của hình ảnh khi chưa dịch chuyển điểm ngoài - Điểm ngoài là điểm cách các đỉnh 1 khoảng cách như trên hình vẽ sao cho điểm ngoài và các đỉnh tương ứng là 2 góc của 1 hình vuông Với hình vuông có... khung hình mới và thực hiện chuyển ảnh d Giải thuật 4: Dịch chuyển tâm W TD1[(xa+ xb)/2 ,ya] A(xa ,ya) B(xb ,yb) TD2[(xb) ,(yb+yc)/2] TD4[(xa) ,(ya+yd)/2] O(x,y) TD3[(xc+ xd)/2 ,yd] D(xd ,yd) C(xc,yc) Hình : Cách xác định lại đỉnh khi tâm di chuyển - ở đây điểm tâm O (x,y) được di chuyển theo tọa độ của con trỏ trên màn hình theo tọa độ bất kỳ (x,y) - Như ta đã nói để xác định các điểm ảnh mới khi ảnh. .. TD1[(xa+ xb)/2 ,ya] B(xb ,yb) TD2[(xb) ,(yb+yc)/2] TD4[(xa) ,(ya+yd)/2] D(xd ,yd) TD3[(xc+ xd)/2 ,yd] C(xc,yc) Giả sử điểm ta cầm vào ảnh kéo có tọa độ tà P(xp,yp) Điểm P cách cạnh AB 1 đoạn là d1 = yp – ya; Điểm P cách cạnh BC 1 đoạn là d2 = xb – xp; Điểm P cách cạnh CD 1 đoạn là d3 = yc – yp; Điểm P cách cạnh DA 1 đoạn là d4 = xp – xa; Khi cầm vào ảnh tại điểm P kéo ảnh đến một điểm mới có tọa độ là M(xm,ym)... ĐN3(x3 ,y 3) Hình ảnh khi kéo điểm ngoài - Như vậy các điểm tương ứng thay đổi là A, TD1, TD4 được xác định như sau : A (x’,y )  A (x + 10 , y + 1 0) TD1(xtd1 ,ytd 1)  TD4 [(x’+xb)/2, (y’ + yb)/ 2)] TD4(xtd4 ,ytd 4)  TD4 [(x’+xd)/2, (y’ + yd)/ 2)] Ví dụ minh họa : Hình chưa kéo điểm ngoài 1 Hình khi kéo điểm ngoài 1 15 III NỘI SUY ẢNH 1 Khái Niệm Nội Suy Trong toán học giải tích số, phép nội suy là một... các điểm ảnh thay đổi - Khi kéo tâm dịch chuyển với tọa độ con trỏ (x,y) bất kỳ thì các đỉnh A,B,C,D và các trung điểm mới được xác định tọa độ theo tâm dịch chuyển trên theo các công thức sau : A (x - W/2, y – H/ 2) TD1(x, y – H/ 2) B (x + W/2, y – H/ 2) TD2 (x – W/2 , y) C (x + W/2 , y + H/ 2) TD3 (x, y + H/ 2) D (x – W/2 , y + H/ 2) TD4 (x + W/2 , y) - Với W, H là chiều rộng và chiều cao của ảnh 13 e... phép chúng ta tính f(x,y) Sau khi sử dụng phương pháp Billinear Interpolation ( Nội suy song tuyến tính), chúng ta đã có bức ảnh đẹp và rõ hơn trước, các răng cưa hầu như không còn xuất hiện 22 IV CHƯƠNG TRÌNH DEMO Giao diện chương trình demo biến đổi hình ảnh tùy ý: Để thưc hiện đưa ảnh vào, chúng ta nhấn Load và lựa chọn đến bức ảnh cần thay đổi Giao diện chương trình sau khi lấy ảnh 23 Sau đó, với... phương pháp nội suy phổ biến nhất như: 16 - Affine Interpolation (Nội suy tam giác) Nearest Neighbor Interpolation (Nội suy các pixel gần nhất ) Bicubic Interpolation (Nội suy song khối ) Billinear Interpolation ( Nội suy song tuyến tính) Trilinear Interpolation (Nội suy tam tuyến tính) Nội suy không gian Nội suy thời gian có bù chuyển động Ngoài ra còn nhiều phương pháp nội suy hình ảnh khác nhưng không... khung hình mới và thực hiện chuyển ảnh Tổng quát: Khi kéo trung điểm ta sẽ làm thay đổi 2 đỉnh sinh ra trung điểm đó và làm thay đổi các trung điểm khác Tuy nhiên, sự thay đổi này đều có thể tính ra được nhờ vào tọa độ của trung điểm mà ta kéo Ví dụ minh họa : - Hình chưa kéo trung điểm 1 Hình khi kéo trung điểm 1 11 c Giải thuật 3: Dịch chuyển điểm bất kỳ trong ảnh để di chuyển ảnh A(xa ,ya) TD1[(xa+... được những khiếm khuyết của ảnh thì có thể sử dụng đến nội suy Việc giảm kích thước (hình học) của một ảnh có thể gây ra những ảnh hưởng nhất định lên ảnh, chẳng hạn như hiện tượng xuất hiện răng cưa tại biên của ảnh Điều này là do thông tin luôn bị mất khi ta giảm kích thước một ảnh Răng cưa xuất hiện như những gợn sóng trong ảnh sau cùng Vì vậy hầu như các phần mềm chỉnh sửa ảnh đều sử dụng 1 hoặc nhiều

Ngày đăng: 26/04/2013, 15:43

Tài liệu cùng người dùng

Tài liệu liên quan