Phương pháp Gradient
Phương pháp Gradient là phương pháp dò biên cục bộ dựa vào cực đại của đạo hàm. Theo định nghĩ, Gradient là một vector có các thành phần biểu thị tốc độ thay đổi cỉa điểm ảnh theo hai hướng x và y. Các thành phần cửa Gradient tính bởi:
∂f(x, y) ∂x = f 0 x ≈ f(x+dx, y)−f(x, y) dx . ∂f(x, y) ∂x = f 0 y ≈ f(x, y+dy)−f(x, y) dy .
Trong đó dx là khoảng cách giữa các điểm theo hướng x (khoảng cách tính bằng số điểm) và tương tự với dy. Trên thực tế, người ta hay dùng với
dx = dy = 1.
Trong phương pháp Gradient, người ta chia thành 2 kỹ thuật (do dùng 2 toán tử khác nhau): kỹ thuật Grandient và kỹ thuật La Bàn.
• Kỹ thuật Gradient
Từ định nghĩa về Gradient, ta thấy nếu áp dụng nó vào xử lý ảnh, việc tính toán sẽ rất phức tạp, để đơn giản hóa mà không làm mất tính chất của phương pháp Gradient người ta sử dụng một cặp mặt nạ H1 và H2
trực giao (theo 2 hướng vuông góc). Nếu định nghĩag1 và g2 là 2 Grandient tương ứng theo 2 hướng x và y, thì biên độ g(m, n) tại điểm (m, n) được tính:
g(m, n) =
q
g12(m, n) + g22(m, n) = A0. θr(m, n) = arctan(g2(m, n)).
Để giảm độ phức tạp tính toán, A0 được tính gần đúng như sau:
Một số toán tử Gradient tiêu biểu như toán tử Robert, toán tử (mặt nạ) Sobel, toán tử (mặt nạ) Prewitt, đẳng hướng (Isometric), toán tử 4-lân cận. . .
Thuật toán dò biên theo kỹ thuật Gradient như sau:
Đầu vào: ma trận ảnh cần tìm biên: mặt nạ Hx và Hy
Đầu ra: Một ma trận ảnh (chứa các đường biên được tìm thấy). Giải thuật:
For (mỗi điểm ảnh của ảnh)
if(Nếu điểm ảnh nẳm trên đường viền ảnh)
Gán giá trị các điểm ảnh trên đường viền ảnh = 0(hoặc bằng màu nền ảnh).
else
{
+ Tính xấp xỉ Gradient theo chiều x (Gx): nhân chập với mặt nạ Hx. + Tính xấp xỉ Gradient theo chiều y (Gy): nhân chập với mặt nạ Hy. + Tính giá trị điểm ảnh theo công thức xấp xỉ G:
G=|Gx|+ |Gy|
+ Nếu giá trị điểm ảnh lớn hơn chỉ số màu của ảnh thì gán giá trị ảnh là giá trị màu lớn nhất.
}
• Kỹ thuật La Bàn
Về phương pháp kỹ thuật này cũng tương tự kỹ thuật Gradient. Tuy nhiên, điểm khác kỹ thuật Gradient chỉ lấy đạo hàm theo 2 hướng, còn kỹ thuật La Bàn lấy đạo hàm theo 8 hướng. Kirsh đã đề xuất các mặt nạ theo 8 hướng như 8 hướng của la bàn (Compass). Mô hình 8 hướng và được đặt
tên theo hướng địa lý và theo chiều kim đồng hồ: Đông, Đông-Nam, Nam, Nam-Tây, Tây, Tây-Nam, Tây-Bắc, Bắc, Đông-Bắc; mỗi hướng lệch nhau 45 .
Hình 5.2 Mặt nạ 8 hướng theo Krish
Tóm lại: Các kỹ thuật sử dụng phương pháp Gradient khá tốt khi độ sáng có tốc độ thay đổi nhanh, khá đơn giản trên cơ sở các mặt nạ theo các hướng. Nhược điểm của các kỹ thuật Gradient là nhạy cảm với nhiễu và tạo các biên kép làm chất lượng biên thu được không cao.
Phương pháp Laplace
Để khắc phục hạn chế và nhược điểm của phương pháp Gradient, trong đó sử dụng đạo hàm riêng bậc nhất người ta nghĩ đến việc sử dụng đạo hàm riêng bậc hai hay toán tử Laplace. Phương pháp dò biên theo toán tử Laplace hiệu quả hơn phương pháp toán tử Gradient trong trường hợp mức xám biến đổi chậm, miền chuyển đổi mức xám có độ trải rộng.
Toán tử Laplace được đĩnh nghĩa như sau:
∇2f = ∂
2f ∂x2 + ∂
2f ∂y2.
Toán tử Laplace dùng một số kiểu mặt nạ khác nhau nhằm tính gần đúng đạo hàm riêng bậc hai. Các dạng mặt nạ theo toán tử Laplace bậc
3x3 có thể: H1= 0 −1 0 −1 4 −1 0 −1 0 H2 = −1 −1 −1 −1 8 −1 −1 −1 −1 H3 = 1 −2 1 −2 5 1 1 −2 1
Ghi chú: Mặt nạ H1còn cải biên bằng việc lấy giá trị ở tâm bằng 8 thay vì giá trị 4. Để thấy rõ việc xấp xỉ đạo hàm riêng bậc hai trong không gian hai chiều với mặt nạ H1 làm ví dụ, ta có thể tính gần đúng như sau:
∂2f ∂x2 = 2f(x, y)−f(x−1, y)−f(x+ 1, y). ∂2f ∂y2 = 2f(x, y)−f(x, y−1)−f(x, y+ 1). do đó: ∇2f = ∂∂x2f2+∂∂y2f2 = 4f(x, y)−f(x−1, y)−f(x, y−1)−f(x+1, y)−f(x, y+1).
Thuật toán dò biên theo phương pháp Laplace:
Đầu vào: ma trận ảnh cần tìm biên: mặt nạ H2
Đầu ra: Một ma trận ảnh (chứa các đường biên được tìm thấy). Giải thuật
For (mỗi điểm ảnh của ảnh)
if(Nếu điểm ảnh nẳm trên đường viền ảnh)
Gán giá trị các điểm ảnh trên đường viền ảnh =0 (hoặc bằng màu nền ảnh).
else
{
+ Tính xấp xỉ Laplace G: nhân chập với mặt nạ H2.
+ Nếu giá trị điểm ảnh lớn hơn chỉ số màu của ảnh thì gán giá trị ảnh là giá trị màu lớn nhất.
Tóm lại: Kỹ thuật theo toán tử Laplace tạo đường biên mảnh (có độ rộng 1 pixel). Nhược điểm của kỹ thuật này rất nhạy với nhiễu, do vậy đường biên thu được thường kém ổn định.
Ngoài các phương pháp trên, người ta cũng áp dụng một số phương pháp khác cải tiến như tiếp cận bởi mô hình mặt, cách tiếp cận tối ưu hóa. Cách tiếp cận theo mô hình mặt dựa vào việc thực hiện xấp xỉ đa thức trên ảnh gốc hay ảnh đã thực hiện phép lọc Laplace. Cách tiếp cận tối ưu nhằm xác định một hàm (một bộ lọc), làm giảm phương sai σ2 hoặc giảm một số điểm cực trị cục bộ.
Chương 4
Giới thiệu về thư viện Aforge.NET và chương trình minh họa
• Thư viện AForge.NET
AForge.NET là một thư viện mã nguồn mở mạnh dành của C# thiết kế cho các nhà phát triển và nhà nghiên cứu trong các lĩnh vực của máy tính và trí tuệ nhân tạo - xử lý ảnh, mạng nơ-ron, thuật toán di truyền, logic mờ, robot. . .
Bao gồm các bộ thư viện, các ứng dụng mẫu và tính năng riêng của từng thư viện:
• AForge.Imaging - thư viện xử lý ảnh và các bộ lọc.
• AForge.Vision - thư viện thị giác máy tính.
• AForge.Neuro - mạng nơ-ron thư viện tính toán.
• AForge.Fuzzy - thư viện tính toán mờ .
• AForge.MachineLearning - thư viện máy học tập.
• AForge.Robotics - thư viện cung cấp hỗ trợ của một số bộ dụng cụ robot.
• AForge.Video - tập hợp các thư viện để xử lý video.
• Chương trình minh họa
Trong chương trình ứng dụng minh họa em sử dụng lớp thư viện AForge.Imaging. Với AForge.Imaging.Filters có chứa bộ sưu tập các giao diện và các lớp, trong đó cung cấp các bộ lọc xử lý hình ảnh khác nhau. Các lớp này cho phép làm biến đổi khác nhau của một hình ảnh nguồn, tác động trực tiếp trên hình ảnh nguồn, cung cấp hình ảnh mới là kết quả của một phép xử lý ảnh.
Giao diện chính của chương trình.
Hình 4.1 Giao diện chương trình.
Chương trình gồm một số chức năng cơ bản như: zoom ảnh, xoay ảnh, chuyển ảnh sang ảnh xám, hiển thị Histogram của một ảnh, tùy chỉnh độ sáng, tùy chỉnh kích thước của một bức ảnh.
Ví dụ, trong chương trình minh họa em có sử dụng bộ lọc GrayscaleBT709 để chuyển từ một ảnh màu sang một ảnh xám. Trong đó bộ lọc này chuyển ảnh màu sang ảnh xám bằng thuật toán BT709.
Hình 4.2 Hình ảnh về chuyển từ ảnh màu sang ảnh xám trong chương trình.
Còn ví dụ, xoay ảnh thì em sử dụng bộ lọc RotateBilinear để xoay ảnh, có thể tùy chọn các góc xoay ảnh ở chương trình này em chọn là xoay phải 30, 90, 120, 180 độ.
Còn một số bài toán về dò biên, lọc trung vị, tạo sóng cho ảnh. Đây là ứng dụng về bài toán dò biên:
Kết luận
Đề tài đã tập trung nghiên cứu về lý thuyết xử lý ảnh số, một số bài toán cơ bản trong xử lý ảnh và viết một chương trình minh họa về các bài toán đó.
Đề tài đã hoàn thành mục tiêu và nội dung là nghiên cứu các khái niệm của xử lý ảnh, các khái niệm về các loại ảnh,. . .Giới thiệu một số bài toán cơ bản trong xử lý ảnh như nâng cao độ tương phản, độ sáng của ảnh, lọc nhiễu ảnh, làm nổi đường biên, thay đổi kích thước ảnh. Và sử dụng ngôn ngữ C# để lập trình một số bài toán cơ bản trong xử lý ảnh.
Trong thời gian làm đồ án với sự cố gắng nỗ lực bản thân, sự giúp đỡ của giáo viên hướng dẫn là thầy Vũ Thành Nam cho đến nay đồ án đã hoàn thành đúng nội dung và thời hạn. Tuy vậy, do còn hạn chế về kiến thức và kinh nghiệm thực tế nên không thể tránh được những thiếu sót. Rất mong nhận được sự góp ý của thầy cô.
Tài liệu tham khảo
[1] Lương Mạnh Bá, Nguyễn Thanh Thuỷ, Nhập môn xử lý ảnh số, Nhà xuất bản, Nhà xuất bản Khoa học và Kỹ thuật, 2003.
[2] Nguyễn Quốc Trung, Xử lý tín hiệu và lọc số, Nhà xuất bản Khoa học và Kỹ thuật, 2004.
[3] Bhabatosh Chanda, Dwijesh Dutta Mạumder, Digital Imge Processing and Analysis, Prentice Hall of India, 2001.
[4] Thư viện mã nguồn: http://www.aforgenet.com. [5] Thư viện mã nguồn: http://www.codeproject.com.