Phạm vi nghiên cứu Xử lý ảnh mờ được xây dựng để ứng dụng cho các thiết bị xử lý ảnh và có thể được áp dụng trong lĩnh vực xử lý ảnh.. Hình 1.1: Quá trình xử lý ảnh Ảnh có thể xem là tập
Trang 1LỜI CẢM ƠN
Để hoàn thành khóa luận tốt nghiệp này em đã nhận được sự giúp đỡ nhiệt tình của các thầy, cô giáo và các bạn đặc biệt là sự giúp đỡ nhiệt tình của PGS.TS Lê Huy Thập
Em cũng xin cảm ơn cô giáo Th.S Lưu Thị Bích Hương về những góp ý
và hướng dẫn rất hữu ích trong quá trình thực hiện đề tài
Em cũng gửi lời cám ơn tới các thầy, cô giáo khoa Công nghệ thông tin trường Đại học sư phạm Hà Nội 2 đã tận tình dạy dỗ chúng em trong suốt bốn năm học tại trường
Mặc dù em đã rất cố gắng nhưng do thời gian có hạn nên bài khóa luận của em không tránh khỏi những thiếu sót Em mong nhận được sự đóng góp của thầy, cô giáo và các bạn để khóa luận của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2013
Sinh viên
Trần Thị Hoa
Trang 2LỜI CAM ĐOAN Tên em là: TRẦN THỊ HOA
Sinh viên lớp: K35 – Tin học, khoa Công nghệ thông tin, trường Đại học
sư phạm Hà Nội 2
Em xin cam đoan:
1 Đề tài: “Xử lý ảnh mờ và xây dựng chương trình ứng dụng” là sự nghiên cứu của riêng em, dưới sự hướng dẫn của thầy giáo PGS.TS Lê Huy Thập
2 Khóa luận hoàn toàn không sao chép của tác giả nào khác
Nếu sai em xin hoàn toàn chịu trách nhiệm
Hà Nội, tháng 5 năm 2013 Người cam đoan
Trần Thị Hoa
Trang 3DANH MỤC TỪ VIẾT TẮT
Trang 4DANH MỤC CÁC HÌNH VẼ VÀ BẢNG Hình 1.1: Quá trình xử lý ảnh
Hình 1.2: Các bước cơ bản trong một hệ thống xử lý ảnh
Hình 1.3: Ảnh thu nhận và ảnh mong muốn
Hình 1.4: Quá trình hiển thị và chỉnh sửa, lưu trữ ảnh thông qua DIB Hình 1.5: Sự chuyển đổi giữa các mô hình biểu diễn ảnh
Hình 1.6: Giao diện làm việc chính
Hình 1.7: Cửa sổ Command Window
Hình 1.8: Cửa sổ command History
Hình 1.9: Cửa sổ Workspace
Hình 1.10: Cửa sổ Variable Editor
Hình 1.11: Cửa sổ M-file
Hình 2.1: Mô hình hóa sự khôi phục lại ảnh gốc
Hình 3.1: Giao diện ban đầu của chương trình
Hình 3.2: Giao diện sau khi chọn xong ảnh để làm mờ
Hình 3.3: Giao diện khi ảnh bị mờ
Hình 3.4: Giao diện khi lưu ảnh
Hình 3.5: Giao diện sau khi chọn ảnh cần khử mờ
Hình 3.6: Giao diện khi ảnh đã được khử mờ
Bảng 1.1: Các thông tin của một file ảnh
Trang 5MỤC LỤC LỜI CẢM ƠN
LỜI CAM ĐOAN
DANH MỤC CÁC HÌNH VẼ VÀ BẢNG
MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 Xử lý ảnh, các vấn đề trong xử lý ảnh 4
1.1.1 Xử lý ảnh là gì 4
1.1.2 Các vấn đề cơ bản trong xử lý ảnh 5
1.2 Thu nhận và biểu diễn ảnh 10
1.2.1 Thu nhận, các thiết bị thu nhận ảnh 10
1.2.2 Biểu diễn ảnh 10
1.3 Giới thiệu chung về Matlab 14
1.3.1 Cấu trúc dữ liệu và ứng dụng 14
1.3.2 Môi trường làm việc của Matlab 16
1.3.3 Đọc và ghi dữ liệu ảnh 19
1.3.4 Xem lớp lưu trữ của file 21
1.3.5 Truy vấn một file đồ hoạ 22
1.3.6 Chuyển đổi định dạng các file ảnh 22
1.3.7 Các hàm chuyển đổi kiểu ảnh 22
CHƯƠNG 2: XỬ LÝ ẢNH MỜ 24
2.1 Ảnh mờ 24
2.1.1 Định nghĩa ảnh mờ 24
2.1.2 Nguyên nhân ảnh bị mờ 24
2.2 Khôi phục ảnh mờ 25
2.2.1 Sơ đồ quá trình khôi phục ảnh mờ 25
2.2.2 Các phương pháp khôi phục ảnh mờ 28
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 35
Trang 63.1 Giới thiệu bài toán 35
3.2 Thiết kế chương trình 36
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 39
1 Kết luận 39
2 Hướng phát triển nghiên cứu 39
TÀI LIỆU THAM KHẢO 41 PHỤ LỤC
Trang 7MỞ ĐẦU
1 Lý do chọn đề tài
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó
Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức
cơ sở khác Đầu tiên phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn…Thứ hai, các công cụ toán như Đại số tuyến tính, sác xuất thống kê Một số kiến thứ cần thiết như Trí tuệ nhân tạo, Mạng nơron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh
Mục tiêu chính của xử lý ảnh là làm sao truyển được nhiều ảnh, nén được nhiểu phục vụ cho nhu cầu giải trí, nghiên cứu và trao đổi thông tin ngày càng cao của con người, nhất là nhu cầu về truyền ảnh và nén ảnh Sau khi biến đổi ảnh thành các màng dữ liệu và xử lý chúng, và để thu được kết quả của sự phân tích và xử lý, cần khôi phục lại ảnh từ các mảng dữ liệu đã được xử lý hay truyền dẫn Trong quá trình xử lý và truyền dẫn mảng dữ liệu ảnh thì tất nhiên sẽ có nhiều tín hiệu ngẫu nhiên của đường truyền hay của môi trường xung quanh làm hư hại ảnh Vì vậy, để khôi phục lại ảnh có chất lượng tốt, nhất thiết phải bỏ những tín hiệu đó Một câu hỏi được đặt ra là: vậy làm thế nào để khôi phục, loại bỏ nhiễu? Để trả lời câu hỏi này em đã chọn đề tài “Xử lý ảnh mờ và xây dựng chương trình ứng dụng” viết bằng ngôn ngữ Matlab để khôi phục lại những ảnh bị mờ do nhiễu
Trang 82 Mục đích và nhiệm vụ nghiên cứu
Nghiên cứu “Xử lý ảnh mờ và xây dựng chương trình ứng dụng” nhằm
để khôi phục lại những ảnh đã bị mờ do nhiễu hay bị hư hại bằng các bộ lọc khác nhau
Để đạt được mục đích trên thì có ba nhiệm vụ đặt ra như sau:
- Tìm hiểu các nguyên nhân mờ ảnh
- Tìm hiểu các phương pháp khôi phục ảnh bị mờ
- Xây dựng chương trình ứng dụng
3 Đối tượng nghiên cứu
Đối tượng nghiên cứu là các phương pháp khử mờ ảnh Đồng thời cũng tìm hiểu thêm các phương pháp làm mờ nhằm mục đích khử những ảnh bị mờ làm cho chúng rõ hơn
4 Phạm vi nghiên cứu
Xử lý ảnh mờ được xây dựng để ứng dụng cho các thiết bị xử lý ảnh và
có thể được áp dụng trong lĩnh vực xử lý ảnh Trong phạm vi đề tài của em đi nghiên cứu xử lý ảnh để khôi phục lại những ảnh đã bị mờ
5 Phương pháp nghiên cứu
a Phương pháp nghiên cứu lý luận
Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây dựng cơ sở lý thuyết của đề tài và các biện pháp cần thiết để giải quyết các vấn đề của đề tài
b Phương pháp chuyên gia
Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình phù hợp với yêu cầu thực tiễn Nội dung xử lý nhanh đáp ứng được yêu cầu ngày càng cao của người sử dụng
c Phương pháp thực nghiệm
Thông qua quan sát thực tế, yêu cầu của cơ sở, những lý luận được nghiên cứu và kết quả đạt được qua những phương pháp trên
Trang 96 Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học: Xử lý ảnh mờ được nghiên cứu, phát triển dựa trên những cơ sở khoa học vững chắc góp phần cho sự phát triển của ngành xử lý ảnh nói riêng và các lĩnh vực khoa học nói chung Hiện nay xử lý ảnh là một lĩnh vực được các chuyên gia nghiên cứu và phát triển
Ý nghĩa thực tiễn: Chương trình xử lý ảnh mờ nếu thành công thì nó
sẽ đóng góp phần nhỏ cho xử lý ảnh mờ, nghiên cứu và trao đổi thông tin ngày càng cao của con người
7 Cấu trúc của khóa luận
Ngoài phần mở đầu, kết luận và hướng phát triển nghiên cứu, tài liệu tham khảo và phụ lục, nội dung chính của khóa luận gồm ba chương:
Chương 1: Cơ sở lý thuyết
Chương 2: Xử lý ảnh mờ
Chương 3: Thiết kế chương trình
Trang 10XỬ LÝ ẢNH Ảnh
Ảnh “tốt hơn”
Hậu xử
lý
Đối sánh rút ra kết luận
Hệ quyết định
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT1.1 Xử lý ảnh, các vấn đề trong xử lý ảnh
1.1.1 Xử lý ảnh là gì
Con người thu nhận thông tin qua các hình giác quan, trong đó thì thị giác đóng vai trò quan trọng nhất Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý ảnh và đồ họa đã phát triển một các mạnh mẽ và có nhiều ứng dựng trong cuộc sống Xử lý ảnh và đồ họa đóng vai trò quan trọng trong tương tác người máy
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn Kết quả đầu ra của một quá trình xử lý có thể là một ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận
Hình 1.1: Quá trình xử lý ảnh Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như
là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và nó có thể xem như một hàm n biến P(c1,
c2,…,cn) Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều
Sơ đồ tồng quát của một hệ thống xử lý ảnh:
Hình 1.2: Các bước cơ bản trong một hệ thống xử lý ảnh
Trang 111.1.2 Các vấn đề cơ bản trong xử lý ảnh
a Điểm ảnh (Picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để
xử lý bằng máy tính (số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám) Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y)
Định nghĩa: Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong
ma trận được gọi là một phần tử ảnh
b Độ phân giải của ảnh
Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được
ấn định trên một ảnh số được hiển thị
Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bố, đó chính là độ phân giải và được phân
bố theo trục x và y trong không gian hai chiều
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc *
200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA ‘thì màn hình CGA12 mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn
Trang 12c Mức xám của ảnh
Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh
và độ xám của nó Dưới đây là một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh
Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó
Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức
256 là mức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255)
Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau
Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô
tả 21 mức khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1
Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên thế giới màu, thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 28*3=224≈ 16,7 triệu màu
d Định nghĩa ảnh số
Ảnh số là tập hợp các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật
e Khử nhiễu
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh:
Nhiễu hệ thống: là nhiễu có quy luật có thể khử bằng các phép biến đổi
Nhiễu ngẫu nhiên: vết bẩn không rõ nguyên nhân → khắc phục bằng các phép lọc
Trang 13f Chỉnh mức xám
Nhằm khắc phục tính không đồng đều của hệ thống gây ra Thông thường có 2 hướng tiếp cận:
Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành một bó Trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen trắng Ứng dụng: in ảnh màu ra máy in đen trắng
Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật nội suy Kỹ thuật này nhằm tăng cường độ mịn cho ảnh
g Trích chọn đặc điểm
Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong quá trình xử lý ảnh Có thể nêu ra một số đặc điểm của ảnh sau đây:
Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn v.v…
Đặc điểm biến đổi: Các đặc điểm loại này được trích chọn bằng việc thực hiện lọc vùng (zonal filtering) Các bộ vùng được gọi là “mặt nạ đặc điểm” (feature mask) thường là các khe hẹp với hình dạng khác nhau (chữ nhật, m giác, cung tròn v.v…)
Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng
và do vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng Các đặc điểm này có thể được trích chọn nhờ toán tử gradient, toán tử la bàn, toán tử Laplace…
Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống
h Nhận dạng
Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy,
Trang 14được ứng dụng trong nhiều ngành khoa học khác nhau Tuy nhiên, một câu hỏi đặt ra là: mẫu (pattern) là gì? Wanabe, một trong những người đi đầu trong lĩnh vực này đã định nghĩa: “Ngược lại với hỗn loạn (chaos), mẫu là một thực thể (entity), được xác định một cách ang áng (vaguely defined) và
có thể gán cho nó một tên gọi nào đó” Ví dụ mẫu có thể là ảnh của vân y, ảnh của một vật nào đó được chụp, một chữ viết, khuôn mặt người hoặc một ký đồ tín hiệu tiếng nói Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại mẫu đó có thể:
Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân tích phân biệt (discriminant analyis), trong đó mẫu đầu vào được định danh như một thành phần của một lớp đã xác định
Hoặc phân loại không có mẫu (unsupervised classification hay clustering) trong đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩn đồng dạng nào đó Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định danh
Hệ thống nhận dạng tự động bao gồm ba khâu tương ứng với ba giai đoạn chủ yếu sau đây:
1 Thu nhận dữ liệu và tiền xử lý
2 Biểu diễn dữ liệu
3 Nhận dạng, ra quyết định
Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là:
1 Đối sánh mẫu dựa trên các đặc trưng được trích chọn
2 Phân loại thống kê
3 Đối sánh cấu trúc
4 Phân loại dựa trên mạng nơ-ron nhân tạo
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn lẻ để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách tiếp cận khác nhau Do vậy, các phương thức phân
Trang 15loại tổ hợp hay được sử dụng khi nhận dạng và nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống lai (hybrid system) bao gồm nhiều
mô hình kết hợp
Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy sinh trong cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà còn đặt ra những yêu cầu về tốc độ tính toán Đặc điểm chung của tất cả những ứng dụng đó là những đặc điểm đặc trưng cần thiết thường là nhiều, không thể do chuyên gia đề xuất, mà phải được trích chọn dựa trên các thủ tục phân tích dữ liệu
i Nén ảnh
Nhằm giảm thiểu không gian lưu trữ Thường được tiến hành theo cả hai cách khuynh hướng là nén có bảo toàn và không bảo toàn thông tin Nén không bảo toàn thì thường có khả năng nén cao hơn nhưng khả năng phục hồi thì kém hơn Trên cơ sở hai khuynh hướng, có 4 cách tiếp cận cơ bản trong nén ảnh:
Nén ảnh thống kê: Kỹ thuật nén này dựa vào việc thống kê tần xuất xuất hiện của giá trị các điểm ảnh, trên cơ sở đó mà có chiến lược mã hóa thích hợp Một ví dụ điển hình cho kỹ thuật mã hóa này là *.TIF
Nén ảnh không gian: Kỹ thuật này dựa vào vị trí không gian của các điểm ảnh để tiến hành mã hóa Kỹ thuật lợi dụng sự giống nhau của các điểm ảnh trong các vùng gần nhau Ví dụ cho kỹ thuật này là mã nén
*.PCX
Nén ảnh sử dụng phép biến đổi: Đây là kỹ thuật tiếp cận theo hướng nén không bảo toàn và do vậy, kỹ thuật thường nén hiệu quả hơn
*.JPG chính là tiếp cận theo kỹ thuật nén này
Nén ảnh Fracl: Sử dụng tính chất Fracl của các đối tượng ảnh, thể hiện sự lặp lại của các chi tiết Kỹ thuật nén sẽ tính toán để chỉ cần lưu trữ phần gốc ảnh và quy luật sinh ra ảnh theo nguyên lý Fracl
Trang 161.2 Thu nhận và biểu diễn ảnh
1.2.1 Thu nhận, các thiết bị thu nhận ảnh
Các thiết bị thu nhận ảnh bao gồm camera, scanner các thiết bị thu nhận này có thể cho ảnh đen trắng
Các thiết bị thu nhận ảnh có 2 loại chính ứng với 2 loại ảnh thông dụng Raster, Vector
Các thiết bị thu nhận ảnh thông thường Raster là camera các thiết bị thu nhận ảnh thông thường Vector là sensor hoặc bàn số hoá Digilizer hoặc được chuyển đổi từ ảnh Raster
Nhìn chung các hệ thống thu nhận ảnh thực hiện 1 quá trình:
Cảm biến: biến đổi năng lượng quang học thành năng lượng điện
Tổng hợp năng lượng điện thành ảnh
1.2.2 Biểu diễn ảnh
Ảnh trên máy tính là kết quả thu nhận theo các phương pháp số hoá được nhúng trong các thiết bị kỹ thuật khác nhau Quá trình lưu trữ ảnh nhằm 2 mục đích:
Tiết kiệm bộ nhớ
Giảm thời gian xử lý
Việc lưu trữ thông tin trong bộ nhớ có ảnh hưởng rất lớn đến việc hiển thị, in ấn và xử lý ảnh được xem như là một tập hợp các điểm với cùng kích thước nếu sử dụng càng nhiều điểm ảnh thì bức ảnh càng đẹp, càng mịn và càng thể hiện rõ hơn chi tiết của ảnh, đặc điểm này là độ phân giải Việc lựa chọn độ phân giải thích hợp tuỳ thuộc vào nhu cầu sử dụng
và đặc trưng của mỗi ảnh cụ thể, trên cơ sở đó các ảnh thường được biểu diễn theo hai mô hình cơ bản
a Mô hình Raster
Đây là cách biểu diễn ảnh thông dụng nhất hiện nay, ảnh được biểu diễn dưới dạng ma trận các điểm (điểm ảnh) Thường thu nhận qua các
Trang 17thiết bị như camera, scanner Tuỳ theo yêu cầu thực tế mà mỗi điểm ảnh được biểu diễn qua một hay nhiều bít
Mô hình Raster thuận lợi cho hiển thị và in ấn Ngày nay công nghệ phần cứng cung cấp những thiết bị thu nhận ảnh Raster phù hợp với tốc độ nhanh và chất lượng cao cho cả đầu vào và đầu ra Một thuận lợi cho việc hiển thị trong môi trường Windows là Microsoft đưa ra khuôn dạng ảnh DIB (Device Independent Bitmap) làm trung gian Hình 1.4 thể hình quy trình chung để hiển thị ảnh Raster thông qua DIB
Một trong những hướng nghiên cứu cơ bản trên mô hình biểu diễn này
là kỹ thuật nén ảnh các kỹ thuật nén ảnh lại chia ra theo 2 khuynh hướng là nén bảo toàn và không bảo toàn thông tin nén bảo toàn có khả năng phục hồi hoàn toàn dữ liệu ban đầu còn nếu không bảo toàn chỉ có khả năng phục hồi độ sai số cho phép nào đó Theo cách tiếp cận này người đã đề ra nhiều quy cách khác nhau như BMP, TIFF, GIF, PCX…
Hiện nay trên thế giới có trên 50 khuôn dạng ảnh thông dụng bao gồm
cả trong đó các kỹ thuật nén có khả năng phục hồi dữ liệu 100% và nén có khả năng phục hồi với độ sai số nhận được
Thay đổi Hình 1.4 Quá trình hiển thị và chỉnh sửa, lưu trữ ảnh thông qua DIB
b Mô hình Vector
Biểu diễn ảnh ngoài mục đích tiết kiệm không gian lưu trữ dễ dàng cho hiển thị và in ấn còn đảm bảo dễ dàng trong lựa chọn sao chép di chuyển tìm kiếm…Theo những yêu cầu này kỹ thuật biểu diễn vector tỏ ra ưu
BMP
PCX
Trang 18việt hơn
Trong mô hình vector đã sử dụng hướng giữa các vector của điểm ảnh lân cận để mã hoá và tái tạo hình ảnh ban đầu ảnh vector được thu nhận trực tiếp từ các thiết bị số hoá như Digital hoặc được chuyển đổi từ ảnh Raster thông qua các chương trình số hoá
Công nghệ phần cứng cung cấp những thiết bị xử lý với tốc độ nhanh
và chất lượng cho cả đầu vào và ra nhưng lại chỉ hỗ trợ cho ảnh Raster
Do vậy, những nghiên cứu về biểu diễn vectơ đều tập trung từ chuyển đổi từ ảnh Raster
Hình 1.5: Sự chuyển đổi giữa các mô hình biểu diễn ảnh
c Các định dạng file ảnh cơ bản trong xử lý ảnh
Ảnh thu được sau quá trình số hóa thường được lưu lại cho các quá trình xử lý tiếp theo hay truyền đi Trong quá trình phát triển của kỹ thuật
xử lý ảnh, tồn tại nhiều định dạng ảnh khác nhau từ ảnh đen trắng (với định dạng IMG), ảnh đa cấp xám cho đến ảnh màu (BMP, GIF, JPEG…)
Định dạng ảnh IMG là ảnh đen trắng, phần đầu của IMG có 16 byte chứa thông tin
Định dạng ảnh GIF: GIF (viết tắt của Graphics Interchange Format;
trong tiếng Anh nghĩa là "Định dạng Trao đổi Hình ảnh") là một định dạng tập tin hình ảnh bitmap cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau
và các hoạt hình dùng ít hơn 256 màu cho mỗi khung hình GIF là định dạng nén dữ liệu đặc biệt hữu ích cho việc truyền hình ảnh qua đường truyền lưu lượng nhỏ Định dạng này được CompuServe cho ra đời vào năm 1987 và nhanh chóng được dùng rộng rãi trên World Wide Web cho đến nay Tập tin GIF dùng nén dữ liệu bảo toàn trong đó kích thước tập tin có thể được giảm
mà không làm giảm chất lượng hình ảnh, cho những hình ảnh có ít hơn 256
Trang 19màu Số lượng tối đa 256 màu làm cho định dạng này không phù hợp cho các hình chụp (thường có nhiều màu sắc), tuy nhiên các kiểu nén dữ liệu bảo toàn cho hình chụp nhiều màu cũng có kích thước quá lớn đối với truyền dữ liệu trên mạng hiện nay Định dạng JPEG là nén dữ liệu thất thoát có thể được dùng cho các ảnh chụp, nhưng lại làm giảm chất lượng cho các bức vẽ ít màu, tạo nên những chỗ nhòe thay cho các đường sắc nét, đồng thời độ nén cũng thấp cho các hình vẽ ít màu Như vậy, GIF thường được dùng cho sơ đồ, hình
vẽ, nút bấm và các hình ít màu, còn JPEG được dùng cho ảnh chụp Định dạng GIF dựa vào các bảng màu: một bảng chứa tối đa 256 màu khác nhau cho biết các màu được dùng trong hình
Định dạng JPEG: Phương pháp nén ảnh JPEG (tiếng Anh, viết tắt cho
Joint Photo-graphic Experts Group) là một trong những phương pháp nén
ảnh hiệu quả, có tỷ lệ nén ảnh tới vài chục lần Tuy nhiên ảnh sau khi giải nén
sẽ khác với ảnh ban đầu Chất lượng ảnh bị suy giảm sau khi giải nén Sự suy giảm này tăng dần theo hệ số nén Tuy nhiên sự mất mát thông tin này là có thể chấp nhận được và việc loại bỏ những thông tin không cần thiết được dựa trên những nghiên cứu về hệ nhãn thị của mắt người Phần mở rộng của các file JPEG thường có dạng jpeg, jfif, jpg, JPG, hay JPE Dạng jpg là dạng được dùng phổ biến nhất Hiện nay dạng nén ảnh JPEG rất được phổ biến trong điện thoại di động cũng như những trang thiết bị lưu giữ có dung lượng nhỏ Công đoạn chính là chia nhỏ bức ảnh thành nhiều vùng nhỏ (thông thường là những vùng 8x8 pixel) rồi sử dụng biến đổi cosin rời rạc để biến đổi những vùng thể hiện này thành dạng ma trận có 64 hệ số thể hiện "thực trạng" các pixel Điều quan trọng là ở đây hệ số đầu tiên có khả năng thể hiện
"thực trạng" cao nhất, khả năng đó giảm rất nhanh với các hệ số khác Nói cách khác thì lượng thông tin của 64 pixels tập trung chủ yếu ở một số hệ số
ma trận theo biến đổi trên Trong giai đoạn này có sự mất mát thông tin, bởi không có biến đổi ngược chính xác Nhưng lượng thông tin bị mất này chưa
Trang 20đáng kể so với giai đoạn tiếp theo Ma trận nhận được sau biến đổi cosin rời rạc được lược bớt sự khác nhau giữa các hệ số Đây chính là lúc mất nhiều thông tin vì sẽ vứt bỏ những thay đổi nhỏ của các hệ số Như thế khi bung ảnh
đã nén sẽ có được những tham số khác của các pixel Các biến đổi trên áp dụng cho thành phần U và V của ảnh với mức độ cao hơn so với Y (mất nhiều thông tin của U và V hơn) Sau đó thì áp dụng phương pháp mã hóa của Gernot Hoffman: phân tích dãy số, các phần tử lặp lại nhiều được mã hóa
bằng ký hiệu ngắn (marker) Khi bung ảnh chỉ việc làm lại các bước trên theo
quá trình ngược lại cùng với các biến đổi ngược
1.3 Giới thiệu chung về Matlab
Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài toán về kỹ thuật Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây
Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường
Cho phép lập trình tạo ra những ứng dụng mới
Cho phép mô phỏng các mô hình thực tế
Phân tích, khảo sát và hiển thị dữ liệu
Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát),
và có các kiểu dữ liệu được liệt kê sau đây:
Trang 21 Kiểu single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab
Kiểu Sparse
Kiểu unit8, unit8, unit16, unit64
Kiểu char ví dụ “Hello”
Các kỹ sư, các nhà nghiên cứu khoa học
Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất
Trang 221.3.2 Môi trường làm việc của Matlab
Giao diện làm việc chính của chương trình:
Hình 1.6: Giao diện làm việc chính
Cửa sổ Command Window
Là cửa sổ giao tiếp chính của Matlab bởi đây là nơi nhập giá trị các biến, hiển thị giá trị, tính toán giá trị của biểu thức, thực thi các hàm có sẵn trong thư viện (dạng lệnh) hoặc các hàm (dạng function) do người dùng lập trình ra trong M-file Đối với phiên bản Matlab đầy đủ, các lệnh được nhập sau dấu nhắc “>>”, và nếu có sai sót trong quá trình gõ (nhập) lệnh thì hãy nhấn phím Enter cho đến khi nhận được dấu nhắc “>>” Thực thi lệnh bằng nhấn phím Enter
Hình 1.7: Cửa sổ Command Window
Trang 23 Cửa sổ command History
Các dòng mà bạn nhập vào trong cửa sổ Command Window (các dòng này có thể là dòng nhập biến, hoặc có thể là dòng lệnh thực hiện hàm nào đó) được giữ lại trong cửa sổ Command History, và cửa sổ này cho phép ta sử dụng lại những lệnh đó bằng cách click chuột lên các lệnh đó hoặc các biến, nếu như muốn sử dụng lại biến đó
Hình 1.8: Cửa sổ command History
Cửa sổ Workspace
Là cửa sổ thể hiện tên các biến bạn sử dụng cùng với kích thước vùng nhớ (số bytes), kiểu dữ liệu (lớp), các biến được giải phóng sau mỗi lần tắt chương trình (xem hình 1.17)
Hình 1.9: Cửa sổ Workspace
Trang 24Ngoài ra nó cho phép thay đổi giá trị, cũng như kích thước của biến bằng cách click chuột lên các biến Hoặc click vào nút bên trái ngay cạnh nút save Ví dụ khi chọn biến (giả sử là biến y) rồi click đúp, ta được cửa sổ sau gọi là Variable Editor
Hình 1.10: Cửa sổ Variable Editor Tiêu đề là tên biến y, định dạng dữ liệu ở ô có tên là: Numeric format, mặc định là dạng short, kích thước size là 1 by 3 (tức là một hàng và 3 cột) ta
có thể thay đổi kích thước này bằng cách thay đổi giá trị có trong ô kích thước size Dùng cửa sổ này để lưu các biến ở dưới là dữ liệu của biến y, ta có thể thay đổi chúng bằng cách thay đổi giá trị trong các ô đó Tất cả các biến đều được lưu trong Workspace trong đó thể hiện cả kích thước (Size), số Bytes
và kiểu dữ liệu (class)
Cửa sổ M-file
Là một cửa sổ dùng để soạn thảo chương trình ứng dụng, để thực thi chương trình viết trong M-file, trên giao diện chính của Matlab, nhấn vào biểu tượng New M-File phía trên bên trái Khi một chương trình viết trong M-file, thì tuỳ theo ứng dụng cụ thể, tuỳ theo người lập trình mà chương trình
có thể viết dưới dạng sau:
Trang 25 Dạng Script file: Tức là chương trình gồm tập hợp các câu lệnh viết dưới dạng liệt kê, không có biến dữ liệu vào và biến lấy giá trị ra
Dạng hàm function: có biến dữ liệu vào và biến ra
Hình 1.11: Cửa sổ M-file 1.3.3 Đọc và ghi dữ liệu ảnh
Phần này sẽ trình bày cách đọc và ghi ảnh
Đọc một ảnh đồ hoạ
Để đọc ảnh f trong môi trường Matlab, người ta dùng hàm imread với cú
pháp như sau:
f = imread(‘tên file’)
Hàm imread đọc một ảnh từ bất kì định dạng nào được trợ giúp trong bất
kì chiều sâu bit nào được trợ giúp Hầu hết các file ảnh sử dụng 8 bít để chứa giá trị của pixel Khi chúng được đọc vào bộ nhớ, Matlab chứa chúng dưới dạng uint8 Với các file trợ giúp 16 bít dữ liệu, PNG và TIFF, Matlab chứa chúng dưới dạng uint16 Với ảnh chỉ số, imread luôn luôn đọc bản đồ màu vào trong một chuỗi thuộc lớp double, thậm chí mảng ảnh tự nó thuộc lớp uint8 hay uint16
Chẳng hạn, đoạn mã sau sẽ đọc một ảnh RGB vào không gian làm việc của Matlab lưu trong biến RGB
Trang 26RGB=imread(‘football.jpg’);
Trong ví dụ này, imread sẽ nhận ra định dạng file để sử dụng từ tên file Cũng có thể chỉ ra định dạng file như một tham số trong hàm imread Matlab trợ giúp rất nhiều định dạng đồ hoạ thông dụng chẳng hạn: BMP, GIF, JPEG, PNG, TIFF…Để biết thêm các kiểu gọi hàm và tham số truyền vào, xem trợ giúp online của Matlab
Đọc nhiều ảnh từ một file đồ hoạ
Matlab trợ giúp một số định dạng file đồ hoạ chẳng hạn như: HDF và TIFF, chúng chứa nhiều ảnh Theo mặc định, imread chỉ trợ giúp ảnh đầu tiên trong file Để nhập thêm các ảnh từ file, sử dụng cú pháp được trợ giúp bởi định dạng file Chẳng hạn, khi được sử dụng với TIFF, có thể sử dụng một giá
trị chỉ số với imread để chỉ ra ảnh mà mình muốn nhập vào
Khi file chứa nhiều ảnh theo một số kiểu nhất định chẳng hạn theo thứ tự thời gian, có thể lưu ảnh trong Matlab dưới dạng mảng 4 chiều Tất cả các ảnh phải có cùng kích thước
Ghi một ảnh đồ hoạ
Để ghi một ảnh, sử dụng hàm imwrite có cú pháp như sau:
imwrite(f,’tên file’);
- Hàm imwrite sẽ ghi một ảnh tới một file đồ hoạ dưới một trong các
định dạng được trợ giúp Cấu trúc cơ bản nhất của imwrite sẽ yêu cầu một biến ảnh và tên file Nếu gộp một phần mở rộng trong tên file, Matlab sẽ nhận
ra định dạng mong muốn từ nó
Chỉ ra định dạng phụ - Tham số đặc biệt
Khi sử dụng imwrite với một số định dạng đồ hoạ, sẽ chỉ ra các tham
số phụ Chẳng hạn, với định dạng PNG có thể chỉ ra độ sâu bít như một tham
số phụ
Để biết thêm các cấu trúc khác của hàm xem phần trợ giúp trực tuyến của Matlab