Báo cáo Biến đổi hình ảnh tùy chỉnh Free transform

Mục Lục

MỞ ĐẦU 3

I. CÁC KHÁI NIỆM. 4

II. BIẾN ĐỔI ẢNH. 6

1. Phương Pháp Biến Đổi Ảnh 6

2. Áp Dụng Phương Pháp Biến Đổi Ảnh Vào Free Transform 8

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. 17

1. Khái Niệm Nội Suy 17

2. Một Số Loại Nội Suy 17

3. Ứng Dụng Nội Suy 18

4. Billinear Interpolation ( Nội suy song tuyến tính) 21

IV. CHƯƠNG TRÌNH DEMO. 24

V. NHẬN XÉT. 26

 

 

 

 

 

doc25 trang | Chia sẻ: netpro | Lượt xem: 1982 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Báo cáo Biến đổi hình ảnh tùy chỉnh Free transform, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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: Nguyễn Tử Hưng Nguyễn Tất Tiến Lê Trường Giang Mục Lục MỞ ĐẦ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. 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 nó đã 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ạ. 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. 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 là 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. BIẾN ĐỔI ẢNH. 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. 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. P A B C D W H h1 h2 w1 w2 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ũ: P’ A’ B’ C’ D’ W’ H h1’ h2’ w1’ w2’ A’ B’ C’ D’ W H h1’ w2’ W’ H’ w1’ h2’ P’ 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. Á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’ = ( ) 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. A(xa ,ya) B(xb ,yb) C(xc,yc) D(xd ,yd) TD1[(xa+ xb)/2 ,ya] TD3[(xc+ xd)/2 ,yd] TD4[(xa) ,(ya+yd)/2] TD2[(xb) ,(yb+yc)/2] 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). 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. 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]. A(xa ,ya) B(xb ,yb) C(xc,yc) D(xd ,yd) TD1[(xa+ xb)/2 ,ya] TD3[(xc+ xd)/2 ,yd] TD4[(xa) ,(ya+yd)/2] TD2[(xb) ,(yb+yc)/2] Đâ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 Giải thuật 2: Dịch chuyển trung điểm (Giả sử kéo trung điểm TD1) Khi ta kéo trung điểm TD1, ta thấy 2 đỉnh A và B cũng di chuyển theo nó. Ta thấy rằng A,B,TD1 đều có tọa đỗ bằng nhau: xa = xb = xa+xb/2; Vậy khi kéo trung điểm 1 lên thì TD1 có tọa độ mới là TD1(xa+xb/2,y1’), thì điểm A cũng sẽ thay đổi có tọa độ mới là A’(xa,ya’) và điểm B cũng có tọa độ mới là B’(xb,yb’) với: y1’ = ya’ = yb’. Lúc này ta có thể tính lại được các trung điểm khác do đã xác định được tọa độ các đỉnh. 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: 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 A(xa ,ya) B(xb ,yb) C(xc,yc) D(xd ,yd) TD1[(xa+ xb)/2 ,ya] TD3[(xc+ xd)/2 ,yd] TD4[(xa) ,(ya+yd)/2] TD2[(xb) ,(yb+yc)/2] Giải thuật 3: Dịch chuyển điểm bất kỳ trong ảnh để di chuyển ảnh 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). Ta bắt đầu xây dựng lại khung hình: Điểm M là ánh xạ của điểm P. Do đó: M cách cạnh AB 1 đoạn là d1 vậy điểm A,B có ya = yb = ym – d1; M cách cạnh BC 1 đoạn là d2 vậy điểm B,C có xb = xc = xm + d2; Vậy ta có điểm B. M cách cạnh CD 1 đoạn là d3 vậy điểm C,D có yc = yd = ym + d3; Vậy ta có điểm C. M cách cạnh DA 1 đoạn là d4 vậy A,D có xa = xd = xm – d4; Vậy ta có 2 điểm A,D. Ta có tọa độ 4 đỉnh A,B,C,D nên ta hoàn toàn có thể tính lại các trung điểm. 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. W A(xa ,ya) B(xb ,yb) C(xc,yc) D(xd ,yd) TD1[(xa+ xb)/2 ,ya] TD3[(xc+ xd)/2 ,yd] TD4[(xa) ,(ya+yd)/2] TD2[(xb) ,(yb+yc)/2] O(x,y) Giải thuật 4: Dịch chuyển tâm 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 dịch chuyển tâm thì ta phải xác định lại 4 đỉnh. Để từ 4 đỉnh đó ta xác định lại 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) B (x + W/2, y – H/2) C (x + W/2 , y + H/2) D (x – W/2 , y + H/2) TD1(x, y – H/2) TD2 (x – W/2 , y) TD3 (x, y + H/2) TD4 (x + W/2 , y) Với W, H là chiều rộng và chiều cao của ảnh W A(xa ,ya) B(xb ,yb) C(xc,yc) D(xd ,yd) TD1[(xa+ xb)/2 ,ya] TD3[(xc+ xd)/2 ,yd] TD4[(xa) ,(ya+yd)/2] TD2[(xb) ,(yb+yc)/2] O(x,y) ĐN1(x1 ,y1) ĐN2(x2 ,y2) ĐN3(x3 ,y3) ĐN3(x4 ,y4) Giải thuật 5 : Dịch chuyển điểm ngoài 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ó cạnh = 10 pixel Các điểm ngoài dùng để khi kéo thì chỉ làm dịch chuyển 1 đỉnh tương ứng với điểm ngoài được kéo đó. ĐN1(xa – 10, ya – 10) ĐN2(xa + 10 , ya – 10) ĐN3(xa + 10, ya + 10) ĐN4(xa – 10 , ya + 10) Khi ta kéo điểm ngoài 1 (Đ N1) Khi kéo điểm ngoài ĐN1 thì Đ N1 sẽ có tọa độ của con trỏ thay đổi là (x,y). TD1(xtd1 ,ytd1) ĐN1(x ,y) ĐN2(x2 ,y2) ĐN3(x3 ,y3) ĐN3(x4 ,y4) A(xa’ ,ya’) B(xb ,yb) C(xc ,yc) D(xd ,yd) TD2[(xb) ,(yb+yc)/2] TD3[(xc+ xd)/2 ,yd] TD4(xtd4 ,ytd4) 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 + 10) TD1(xtd1 ,ytd1) ó TD4 [(x’+xb)/2, (y’ + yb)/2)] TD4(xtd4 ,ytd4) ó 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 NỘI SUY ẢNH. 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 phương pháp xây dựng mới các điểm dữ liệu trong phạm vi của một tập hợp rời rạc những điểm dữ liệu được biết. Trong kỹ thuật và khoa học thường có một số điểm dữ liệu thu được bằng việc lấy mẫu hay thí nghiệm, và thử xây dựng một chức năng mà gần gũi phù hợp với những điểm dữ liệu đó. Có thể nói nội suy là 1 giải thuật phần mềm dùng để thêm vào (hoặc bỏ bớt) số điểm ảnh trên ảnh kỹ thuật số. Tiến trình nội suy sẽ dựa trên màu sắc của những điểm ảnh cũ để xác định màu cho các điểm ảnh mới gần nó nhất. Một số máy ảnh số sử dụng giải thuật nội suy để tạo ra ảnh có dung lượng cao hơn khả năng thu nhận của bộ cảm biến ảnh hoặc tăng cường khả năng zoom kỹ thuật số của máy. Hầu như tất cả các phần mềm chỉnh sửa ảnh đều sử dụng 1 hoặc nhiều phương pháp nội suy. Hình ảnh sẽ mịn màng, không bị "vỡ hạt" khi phóng to hay biến đổi ảnh tùy vào thuật toán được sử dụng trong giải thuật nội suy. Một Số Loại Nội Suy Có nhiều phương pháp nội suy khác nhau, nhưng cần sử dụng phương pháp nội suy nào cho phù hợp cả về tốc độ và kinh tế. Vì thế khi tính toán sử dụng phương pháp nội suy nào cần tính đến phương pháp đó cho độ chính xác đến bao nhiêu? Nó đắt bao nhiêu? Nội suy mịn bao nhiêu? Nhiều điểm dữ liệu được sử dụng như thế nào?... Một số phương pháp nội suy phổ biến nhất như: 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 được sử dụng phổ biến, thế nhưng điều mà ta quan tâm là giải thuật nội suy sẽ không thêm thông tin gì mới cho hình ảnh cả, nó chỉ thêm điểm ảnh và làm tăng dung lượng của tập tin. Tuy nhiên các phương pháp nội suy làm việc theo một cách giống nhau. Trong mỗi trường hợp, để tính giá trị của một pixel đã được nội suy, chúng tìm điểm trong ảnh ra mà pixel nằm tại đó. Sau đó gán một giá trị tới các pixel ra bằng cách tính toán giá trị trung bình có trọng số của một số pixel lân cận . Trọng số dựa trên cơ sở khoảng cách tới điểm đang xét. Ứng Dụng Nội Suy Trong xử lý ảnh người ta sử dụng rất nhiều đến kỹ thuật nội suy. Sau khi thu nhận ảnh người ta bắt đầu xử lý và các quá trình xử lý này đã có sử dụng đến kỹ thuật nội suy như: · Xử lý điền đầy (Filling a region): Là quá trình tô màu một vùng nhất định bằng cách nội suy giá trị pixel từ viền của vùng . · Thay đổi kích thước của ảnh như phóng đại ảnh, quay ảnh, bóp méo... đều có thể chỉ ra kỹ thuật nội suy cần sử dụng. · Sinh ra hình ảnh trung gian khi thực hiện nội suy từ một khung ảnh nguồn và một khung ảnh đích. Các hàm sử dụng tuyến tính yêu cầu một tham số chỉ ra phương pháp nội suy. Với hầu hết các hàm, phương pháp mặc định được sử dụng là nội suy các pixel gần nhất . Phương pháp này tạo ra một kết quả có thể chấp nhận được cho hầu hết các ảnh và là phương pháp duy nhất thích hợp với ảnh chỉ số. Với ảnh cường độ hay RGB thường chỉ ra kiểu song tuyến tính hoặc song khối bởi vì những phương pháp này cho kết quả tốt hơn. Với ảnh RGB, nội suy thường được thực hiện trên mặt phẳng R,B,G một cách riêng biệt. Với ảnh nhị phân, nội suy gây ra những ảnh hưởng mà ta có thể nhận thấy được. Nếu sử dụng nội suy song tuyến tính hoặc song khối, giá trị tính toán được cho pixel trong ảnh ra sẽ không hoàn toàn là 0 hoặc 1. Ảnh hưởng trên ảnh kết quả phụ thuộc vào lớp của ảnh vào. Nói chung với các loại ảnh khi tô màu lấp lỗ hổng, phóng to hay thu nhỏ để khắc phục đượ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 phương pháp nội suy. Hình ảnh sẽ mịn màng, không bị "vỡ hạt" khi phóng to tùy vào thuật toán được sử dụng trong giải thuật nội suy. Điều quan trọng là giải thuật nội suy sẽ không thêm thông tin gì mới cho hình ảnh cả, nó chỉ thêm điểm ảnh và làm tăng dung lượng của tập tin. Tóm lại : Nội suy là quá trình sử dụng để ước lượng một giá trị ảnh ở một vị trí giữa các pixel. Chẳng hạn, nếu ta thay đổi kích thước một ảnh, nó sẽ chứa nhiều pixel hơn ảnh gốc, ta có thể sử dụng nội suy để tính giá trị cho các pixel thêm vào. Có thể hiểu nôm na nội suy là phóng đại hình ảnh lên bằng các thuật toán tự có trong máy. Hầu hết các máy ảnh kỹ thuật số hiện nay đều có số điểm ảnh được tính tới hàng triệu. Các máy ảnh thế hệ trước có số điểm ảnh khoảng 1,3-2 triệu (1,3-2 Megapixel) trong khi các máy ảnh hiện nay thường đạt trên 3 Megapixel. Để có được các bức ảnh lớn hơn, chẳng hạn 20x25 cm, nên sử dụng các loại máy ảnh lớn hơn 2 triệu điểm ảnh. Hiện nay, các nhà sản xuất nổi tiếng đã tung ra các dòng máy ảnh có độ phân giải tương đương với chất lượng của máy ảnh chụp film (trên 13 Megapixel). Cũng giống như các máy ảnh số, 1 số máy nghe nhạc cũng sử dụng thuật toán nội suy để bổ sung điểm ảnh vào độ phân giải quang học. Các thuật toán nội suy sẽ tính toán để thêm một điểm ảnh thích hợp vào giữa hai điểm ảnh kề nhau. So với độ phân giải quang học, điểm ảnh nội suy sẽ làm tăng độ phân giải thực tế của bức ảnh. Tiến trình này sẽ thêm pixel vào hình ảnh bằng cách tính toán những pixel có sẵn bao quanh các pixel mới thêm vào để xác định màu sắc tương ứng cho các pixel mới. Việc nội suy này buộc phải dùng thuật toán gia tăng lượng pixel để chèn vào những pixel hiện có trong hình để thay đổi kích thước tổng thể của hình. Khi biến đổi ảnh người ta dùng đến một trong các phương pháp nội suy, đây chính là các giải thuật để chèn điểm ảnh hay thêm pixel vào hình ảnh. Việc dùng phương pháp nội suy sẽ làm cho kích thước tổng thể của hình ảnh tăng lên hay làm tăng độ phân giải thực tế của bức ảnh. Ở trong báo cáo cũng như phần mềm demo, chúng ra sử dụng phương pháp nội suy Billinear Interpolation ( Nội suy song tuyến tính). Billinear Interpolation ( Nội suy song tuyến tính) Trong toán học, nội suy song tuyến (Bilinear interpolation) là mở rộng của nội suy tuyến tính cho nội suy hai biến . Chìa khóa để thực hiện ý tưởng là nội suy tuyến tính hướng đầu tiên, và sau đó nội suy tuyến tính một lần nữa trong hướng khác. Nói cách khác, đây là kỹ thuật xác định một hàm biến đổi từ một hình vuông kích thước [0,1]x[0,1] tới một tứ giác trong không gian (tứ giác này không nhất thiết phải đồng phẳng). Minh họa phép nội suy Billinear Nếu chúng ta giả sử toạ độ của khối hình vuông là x và y thì phép biến đổi B được thực hiện như sau: Phép biến đổi được thực hiện tương đương với hai việc. Việc thứ nhất là nội suy trên các cạnh AD và BC thu được điểm P và Q. P = (1 - y) A + yD Q = (1 - y)B + yC Việc tiếp theo là nội suy trên đoạn PQ sử dụng thông số x: B(x, y) = (1 - x)P + xQ Nội suy song tuyến (Bilinear) tương tự như nội suy tuyến tính, Lấy Trung bình của 4 điểm xung quanh lưới điện được sử dụng để xác định giá trị nội suy. Ví dụ: Tìm nội suy của điểm P Bốn dấu chấm màu đỏ hiển thị các điểm dữ liệu và dấu chấm màu xanh lá cây là điểm mà chúng ta cần nội suy. Giả sử rằng chúng ta muốn tìm giá trị f chưa biết tại điểm P =(x,y). Giả định rằng chúng ta biết giá trị của f tại 4 điểm Q11 = (x1,y1), Q12 = (x1,y2), Q21 = (x2,y1), Q22 = (x2,y2) Trong đó: y1: là một biến có chứa các dữ liệu điểm dọc trục. x1: là một biến có chứa các dữ liệu điểm ngang trục. x2: là một biến có chứa các điểm ngang nơi nội suy sẽ được thực hiện. y2: là một biến có chứa các điểm dọc nơi nội suy sẽ được thực hiện. Đầu tiên chúng ta nội suy theo hướng x cho kết quả: Chúng ta tiến hành nội suy theo hướng y được kết quả: Điều nay cho 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. 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. Sau đó, với 9 nút quan trọng để co, dãn, thay đổi ảnh, hoặc di chuyển ảnh bằng cách di chuột trên ảnh. NHẬN XÉT. Phần mềm được thiết kế gần giống với Free Transform trong word nên việc thao tác với phần mềm không gặp khó khăn. Khi thực hiện với những ảnh có kích thước nhỏ và trung bình, chương trình thực hiện khá nhanh, tuy nhiên, với các ảnh chất lượng cao có kích thước lớn, chương trình thực hiện chậm. Phần mềm vẫn tồn tại một số cách xử lý chưa tốt. Nhưng nhìn chung nó cũng tương đối dễ dàng sử dụng và đáp ứng được hầu hết các phép biến đổi ảnh ( Free Transform ) Do hạn chế về mặt thời gian và khó khăn trong việc tìm kiếm tài liệu, hạn chế về mặt kiến thức của nhóm, nên đề tài chưa có được kết quả thực sự hoàn hảo. Kính mong các thầy cô giáo cũng như các bạn chỉ bảo và giúp đỡ.

Các file đính kèm theo tài liệu này:

  • docFree transform ( biến đổi hình ảnh tùy chỉnh ).doc