Giáo trình Mathlab cho xử lý ảnh

 

Mục lục


1 . Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox­ ----------------------------  Trang 1
2. Phép xử lý trên vùng chọn ------------------------------------------------------------------- Trang 16
3. Xử lý ảnh mờ --------------------------------------------------------------------------------------Trang 23
4. Màu sắc---------------------------------------------------------------------------------------------- Trang 38
5. Biến đổi ảnh --------------------------------------------------------------------------------------- Trang 52
6. Biến đổi không gian ảnh ---------------------------------------------------------------------- Trang 78
7. Phân tích và làm giàu ảnh -------------------------------------------------------------------- Trang 98
8. Các biến đổi hình thái ảnh ------------------------------------------------------------------ Trang 129


I – Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox

1 . Ảnh được định chỉ số ( Indexed Images )

- Một ảnh chỉ số bao gồm một ma trận dữ liệu X và ma trận bản đồ màu map . Ma trận dữ liệu có thể có kiểu thuộc lớp uint8,uint16 hoặc kiểu double . Ma trận bản đồ màu là một mảng mx3 kiểu double bao gồm các giá trị dấu phẩy động nằm giữa 0 và 1 . Mỗi hàng của bản đồ chỉ ra các giá trị mà : red , green và blue của một màu đơn . Một ảnh chỉ số sử dụng ánh xạ trực tiếp giữa giá trị của pixel ảnh tới giá trị trong bản đồ màu . Màu sắc của mỗi pixel ảnh được tính toán bằng cách sử dụng giá trị tương ứng của X ánh xạ tới một giá trị chỉ số của map . Giá trị 1 chỉ ra hàng đầu tiên , giá trị 2 chỉ ra hàng thứ hai trong bản đồ màu …
- Một bản đồ màu thường được chứa cùng với ảnh chỉ số và được tự động nạp cùng với ảnh khi sử dụng hàm imread               để đọc ảnh .Tuy nhiên , ta không bị giới hạn khi sử dụng bản đồ màu mặc định , ta có thể sử dụng mất kì bản đồ màu nào . Hình sau đây minh hoạ cấu trúc của một ảnh chỉ số . Các pixel trong ảnh được đại diện bởi một số nguyên ánh xạ tới một giá trị tương ứng trong bản đồ màu .
(ẢNH )

Lớp và độ lệch của bản đồ màu ( Colormap Offsets )
- Quan hệ giữa giá trị trong ma trận ảnh và giá trị trong bản đồ màu phụ thuộc vào kiểu giá trị của các phần tử ma trận ảnh . Nếu các phần tử ma trận ảnh thuộc kiểu double , giá trị 1 sẽ tương ứng với giá trị trong hàng thứ nhất của bản đồ màu , giá trị 2 sẽ tương ứng với giá trị trong hàng thứ 2 của bản đồ màu … Nếu các phần tử của ma trận ảnh thuộc kiểu uint8 hay uint16 sẽ có một độ lệch (offset ) – giá trị 0 trong ma trận ảnh sẽ tương ứng với giá trị trong hàng đầu tiên của bản đồ màu , giá trị 1 sẽ tương ứng với giá trị trong hàng thứ 2 của bản đồ màu ….
- Độ lệch cũng được sử dụng trong việc định dạng file ảnh đồ hoạ để tăng tối đa số lượng màu sắc có thể được trợ giúp .

Giới hạn trong việc trợ giúp ảnh thuộc lớp unit16
- Toolbox xử lý ảnh của Matlab trợ giúp có giới hạn ảnh chỉ số thuộc lớp uint16 . Ta có thể đọc những ảnh đó và hiển thị chúng trong Matlab nhưng trước khi xử lý chúng , ta phải chuyển đổi chúng sang kiểu uint8 hoặc double . Để chuyển đổi ( convert ) tới kiểu double ta dùng hàm im2double . Để giảm số lượng màu của ảnh xuống 256 màu (uint8 ) sử dụng hàm imapprox .

2. Ảnh cường độ ( Intensity Images )

- Một ảnh cường độ là một ma trận dữ liệu ảnh I mà giá trị của nó đại diện cho cường độ trong một số vùng nào đó của ảnh . Matlab chứa một ảnh cường độ như một ma trận dơn , với mỗi phần tử của ma trận tương ứng với một pixel của ảnh . Ma trận có thể thuộc lớp double , uint8 hay uint16 . Trong khi ảnh cường độ hiếm khi được lưu với bản đồ màu , Matlab sử dụng bản đồ màu để hiển thị chúng .
- Những phần tử trong ma trận cường độ đại diện cho các cường độ khác nhau hoặc độ xám . Những điểm có cường độ bằng 0 thường được đại diện bằng màu đen và cường độ 1,255 hoặc 65535 thường đại diện cho cường độ cao nhất hay màu trắng .

3. Ảnh nhị phân (Binary Images )

-Trong một ảnh nhị phân  , mỗi pixel chỉ có thể chứa một trong hai giá trị nhị phân 0 hoặc 1 . Hai giá trị này tương ứng với bật hoặ tắt ( on hoặc off ) . Một ảnh nhị phân được lưu trữ như một mảng lôgíc của 0 và 1 .

4. Ảnh RGB ( RGB Images )

- Một ảnh RGB - thường được gọi là true-color , được lưu trữ trong Matlab dưới dạng một mảng dữ liệu có kích thước 3 chiều mxnx3 định nghĩa các giá trị màu red, green và blue cho mỗi pixel riêng biệt . Ảnh RGB không sử dụng palette . 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 ) đượ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 RGB giống như một ảnh 24 bít trong đó R,G,B chiếm tương ứng 8 bít một . Điều này cho phép nhận được 16 triệu màu khác nhau .
- Một mảng RGB có thể thuộc lớp double , uint8 hoặc uint16 . Trong một mảng RGB 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) được hiển thị với màu đen và một pixel mà thành phần màu là (1,1,1 ) được hiển thị với màu trắng . Ba thành phần màu của mỗi pixel được lưu trữ cùng với chiều thứ 3 của mảng dữ liệu . Chẳng hạn , giá trị màu R,G,B của pixel (10,5) được lưu trữ trong RGB(10,5,1) , RGB(10,5,2) và RGB(10,5,3) tương ứng .
- Để tính toán màu sắc của pixel tại hàng 2 và cột 3 chẳng hạn , ta nhìn vào bộ ba giá trị được lưu trữ trong (2,3,1:3) . Giả sử (2,3,1) chứa giá trị 0.5176 ; (2,3,2) chứa giá trị 0.1608 và (2,3,3) chứa giá trị 0.0627 thì màu sắc của pixel tại (2,3 ) sẽ là
(0.5176,0.1608,0.0627)
- Để minh hoạ xa hơn khái niệm ba mặt phẳng màu riêng biệt được sử dụng trong một ảnh RGB , đoạn mã sau đây tạo một ảnh RGB đơn giản chứa các vùng liên tục của R,G,B và sau đó tạo một ảnh cho mỗi mặt phẳng riêng của nó ( R,G,B ) . Nó hiển thị mỗi mặt phẳng màu riêng rẽ và cũng hiển thị ảnh gốc.
Link tải toàn bộ tài liệu: Giáo trình Mathlab cho xử lý ảnh

1 comment:
Write nhận xét
  1. Em chào thầy, thầy có thể cho em xin bài này của thầy được không ạ, em thấy nó hay quá, trên mạng toàn tiếng anh. em cảm ơn
    gmail: thanhtungspt@gmail.com

    ReplyDelete