Tải bản đầy đủ (.pdf) (115 trang)

DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.76 MB, 115 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ

ĐỒ ÁN TỐT NGHIỆP

Đề tài:

DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI
DÙNG PCA




GVHD: Ths. Đào Thị Thu Thủy
SVTH : Nguyễn Trung Hiếu -06052461
Bùi Ngọc Liêm -06054491
Lớp : DHDT2B1















TP. Hồ Chí Minh, tháng 7 năm 2010


LỜI MỞ ĐẦU



Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang
được yêu cầu khắt khe tại mọi quốc gia trên thế giới. Các hệ thống nhận dạng con
người được ra đời với độ tin cậy ngày càng cao. Một trong các bài toán nhận dạng
con người rất được quan tâm hiện nay là nhận dạng khuôn mặt. Vì nhận dạng khuôn
mặt là cách mà con người sử dụng để phân biệt nhau. Bên c
ạnh đó, ngày nay việc
thu thập, xử lý thông tin qua ảnh để nhận biết đối tượng đang được quan tâm và ứng
dụng rộng rãi. Với phương pháp này, chúng ta có thể thu nhận được nhiều thông tin
từ đối tượng mà không cần tác động nhiều đến đối tượng nghiên cứu. Sự phát triển
của khoa học máy tính tạo môi trường thuận lợi cho bài toán nhận dạng khuôn mặt
người từ ảnh số. Các hệ th
ống nhận dạng offline đã ra đời và có độ tin cậy cao, tuy
nhiên các hệ thống nhận dạng online lại chưa đáp ứng được nhiều.
Bài toán nhận dạng khuôn mặt người là một bài toán hấp dẫn, không giới hạn
giải pháp sử dụng, vận dụng linh hoạt kiến thức trong nhiều lĩnh vực, đã thách thức
nhiều người nghiên cứu vì tính ứng dụng to lớn trong thực tế. Đây là mộ
t chủ đề có
thể nói còn tương đối mới với những ứng dụng mang tính công nghệ cao như: robot,
các thiết bị camera,các hệ thống bảo mật, nhận dạng,…đã và đang được các hãng,
công ty áp dụng vào nhằm nâng cao các tính năng sản phẩm của mình trong quá
trình cạnh tranh trên thị trường hiện nay…
Với mong muốn tiếp cận các công nghệ mới, đồng thời bổ sung kiến thức về

khoa học kỹ thu
ật hiện đại, cũng như tổng kết lại những kỹ năng, kiến thức trong
suốt quá trình học tập tại trường, chúng em xin chọn đề tài “ Dò tìm và cắt ảnh
mặt người dùng PCA”. Đây có thể là một bài toán nhỏ, nhưng nó cũng giúp chúng
em có một cái nhìn khái quát về bài toán, tạo cơ sở tiền đề cho sự tìm tòi và phát
triển các hướng cao hơn trong sự nghiên cứu các công nghệ mới...
Bài luận này được trình bày bao g
ồm có 5 chương:
• Chương 1: Giới thiệu Matlab và khái quát về ảnh.
• Chương 2: Các phương pháp xác định khuôn mặt.
• Chương 3: Phân tích thành phần chính PCA.

• Chương 4: Chương trình mô phỏng.
• Chương 5: Kết luận.
Nội dung của đề tài:
- Tìm hiểu phương pháp nhận diện ảnh.
- Nghiên cứu PCA.
- Dò tìm ảnh mặt người có không gian (1=>4).
- Cắt ảnh mặt và lưu vào 1 file.
- Xử lý ảnh động qua webcam.
Trong bài luận này chúng em xin đề cập tới vấn đề dò tìm và nhận dạng mặt
người qua một ảnh tĩnh cho trướ
c, đồng thời mở rộng hơn là xử lý ảnh thu được qua
một thiết bị thu ảnh, ví dụ như: camera, webcam,…























LỜI CẢM ƠN



Sau một thời gian học tập và nghiên cứu, cuối cùng chúng em cũng đã hoàn
thành bài luận nghiên cứu của mình. Đây là thời điểm tốt nhất để chúng em có dịp
được bày tỏ lòng biết ơn của mình đến những người thân đã giúp đỡ động viên
trong suốt quá trình chúng em thực hiện bài luận này.
Trước tiên, chúng em xin cảm ơn BGH trường Đại Học Công Nghiệp Thành
Phố Hồ Chí Minh, Quý Thầy Cô trong khoa Công nghệ Điện T
ử đã tạo điều kiện
cho chúng em thực hiện bài luận này. Đặc biệt là Cô Đào Thị Thu Thủy, Cô không
chỉ là người hướng dẫn khoa học một cách tài tình, mà còn là người dìu dắt chúng
em, động viên và định hướng cho chúng em có những bước đi đầu đời về một cách

nhìn khoa học về trí thức, cuộc sống, và sự cố gắng phấn đấu trong tương lai, điều
này có ý nghĩa rất sâu sắ
c đối với chúng em, giúp chúng em tự tin và nổ lực hoàn
thành bài luận này đúng thời hạn. Một lần nữa, chúng em xin bày tỏ lòng biết ơn
sâu sắc đến với Cô.
Đồng thời chúng con xin cám ơn cha mẹ, anh chị đã hết sức thông cảm, chia
sẽ và động viên chúng con trong những khó khăn trong quá trình làm đồ án tốt
nghiệp này.
Xin cám ơn những người bạn thân yêu, những người đã yêu mến, chia sẽ,
giúp đỡ chúng tôi trong lúc chúng tôi thực hiện bài luận này.
Kết quả của bài luận này là món quà mà chúng em dành tặng cho tất cả mọi
người thân yêu, với tất cả tấm lòng mình!
Sinh viên thực hiện
Nguyễn Trung Hiếu
Bùi Ngọc Liêm




NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

Chữ ký của giáo viên







NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

Chữ ký của giáo viên






MỤC LỤC
Trang
Chương 1: GIỚI THIỆU MATLAB VÀ KHÁI QUÁT VỀ ẢNH
.............................................................................................................................1
1.1 Giới thiệu chung về phần mềm Matlab.........................................................2

1.1.1 Khái niệm về Matlab ............................................................................2
1.1.2 Tổng quan về cấu trúc dữ liệu Matlab, các ứng dụng ..........................2
1.1.2.1 Dữ liệu..........................................................................................3
1.1.2.2 Ứng dụng......................................................................................3
1.1.2.3 Toolbox là một công cụ quan trọng trong Matlab .......................3
1.1.3 Hệ thống Matlab ...................................................................................3
1.1.4 Làm quen với Matlab............................................................................4
1.1.5 Các cửa sổ làm vi
ệc của Matlab ...........................................................5
1.2 Giới thiệu khái quát về ảnh số......................................................................7
1.2.1 Các khái niệm cơ bản về ảnh................................................................7
1.2.2 Các cách phân loại ảnh .........................................................................8
1.3 Xử lý ảnh với Matlab ...................................................................................9
1.3.1 Xử lý ảnh .............................................................................................9
1.3.2 Các giai đoạn xử lý ảnh .....................................................................10
1.3.3 Xử lý ảnh với Matlab..........................................................................11
1.3.3.1 Các kiểu ảnh trong Matlab .........................................................11
1.3.3.2 Các hàm xử lý ảnh cơ bản trong Matlab....................................13
1.3.3.3 Biến đổ
i không gian ảnh ............................................................20

Chương 2: CÁC PHƯƠNG PHÁP XÁC ĐỊNH KHUÔN MẶT
...........................................................................................................................36
2.1 Định nghĩa bài toán xác định khuôn mặt người..........................................37
2.2 Ứng dụng của phương pháp xác định khuôn mặt .......................................37
2.3 Phương pháp xác định khuôn mặt............................................................... 39
2.3.1 Hướng tiếp cận dựa trên tri thức......................................................... 40
2.3.2 Hướng tiếp cận dựa trên đặc trưng không thay đổi ............................41
2.3.2.1 Các đặc trưng khuôn mặt ...........................................................42


2.3.2.2 Kết cấu ....................................................................................... 45
2.3.2.3 Sắc màu của da...........................................................................45
2.3.2.4 Đa đặc trưng...............................................................................45
2.3.3 Hướng tiếp cận dựa trên so khớp mẫu................................................45
2.3.4 Hướng tiếp cận dựa trên diện mạo .....................................................46
2.4 Khó khăn và thử thách trong bài toán xác định khuôn mặt người..............47

Chương 3: PHÂN TÍCH THÀNH PHẦN CHÍNH PCA
(PRINCIPAL COMPONENT ANALYSIS)
...........................................................................................................................48
3.1 Sơ lược về phân tích thành phần chính PCA ..............................................49
3.2 Thuật toán PCA và ứng dụng trong nhận dạng khuôn mặt ng
ười ..............50
3.2.1 Thuật toán ...........................................................................................50
3.2.2 Phân tích thành phần chính PCA .......................................................50
3.2.3 Hình ảnh minh họa .............................................................................53
3.3 Ứng dụng Eigenfaces trong việc nhận dạng mặt người..............................56
3.3.1 Tính toán Eigenfaces ..........................................................................59
3.3.2 Dùng Eigenfaces để phân loại ảnh mặt người....................................61
3.3.3 Ứng dụng Eigenfaces để phát hiện gương mặt...................................62
3.3.3.1 Xem xét lại không gian mặt ....................................................... 63
3.3.3.2 Nhận dạng theo thời gian thực...................................................64
3.4 Nhận xét ......................................................................................................65
3.4.1 Ưu điểm của ph
ương pháp PCA.........................................................65
3.4.2 Nhược điểm của PCA.........................................................................65

Chương 4: CHƯƠNG TRÌNH MÔ PHỎNG
...........................................................................................................................67
4.1 Chương trình mô phỏng ..............................................................................68

4.1.1 Cơ sở dữ liệu ảnh................................................................................68
41.1.1
Tập ảnh huấn luyện
.......................................................................68
4.1.1.2 Tập ảnh mẫu...............................................................................69
4.1.2 Các bước thực hiện chương trình .......................................................70

4.1.3 Lưu đồ giải thuật.................................................................................72
4.1.3.1 Lưu đồ giải thuật chính ..............................................................72
4.1.3.2 Lưu đồ giải thuật chi tiết ............................................................72
4.1.4 Kết quả mô phỏng...............................................................................77
4.1.5 Tốc độ thực hiện. ................................................................................80
4.2 Nhận xét kết quả đạt được...........................................................................81
Chương 5: KẾT LUẬN...................................................................................85
5.1 Kết luận .......................................................................................................85
5.2 Hướng phát triển đề tài................................................................................85
PHỤ LỤ
C.............................................................................................................
TÀI LIỆU THAM KHẢO ..................................................................................























MỤC LỤC HÌNH
Trang
Hình 1.1 Cửa sổ khi khởi động Matlab...............................................................4
Hình 1.2 Cửa sổ Command History....................................................................6
Hình 1.3 Cửa sổ Workspace................................................................................6
Hình 1.4 Cửa sổ Array Editor.............................................................................7
Hình 1.5 Các bước cơ bản trong xử lý ảnh.........................................................9
Hình 1.6 Ảnh trước và sau khi imresize...........................................................23
Hình 1.7 Ảnh trước và sau khi imrotate............................................................26
Hình 1.8 Ảnh được quay theo chiều ngang.......................................................27
Hình 1.9 Ảnh trước và sau khi imcrop..............................................................28
Hình 1.10 Ảnh trước và sau khi imcrop theo 1 tọa độ cho trước ..................... 30
Hình 1.11 Ảnh trước và sau khi imtransforms..................................................32
Hình 1.12 Ảnh trước và sau khi imtransformsvới 1 cường độ ảnh................... 35
Hình 2.1 Độ phân giải của 1 ảnh......................................................................41
Hình 2.2 Một loại trí thức của người nghiên cứu phân tích trên khuôn mặt....41
Hình 2.3 Một mẫu khuôn mặt, có 16 vùng và 23 quan hệ (các mũi tên) .......... 46
Hình 3.1 Eigenfaces ..........................................................................................53
Hình 3.2 Bức ảnh kiểm tra và hình chiếu của nó..............................................54

Hình 3.3 Ảnh ban đầu .......................................................................................55
Hình 3.4 Face map của bức ảnh ban đầu .........................................................55
Hình 3.5 Face map ảnh ban đầu với không gian không phải là khuôn mặt.....56
Hình 3.6 Những g
ương mặt dùng để huấn luyện ..............................................57
Hình 3.7 Bảy Eigenfaces được tính toán từ dãy huấn luyện của hình 4.6,
phông nền đã được loại bỏ................................................................................58
Hình 3.8 Ảnh và hình chiếu của nó vào không gian mặt người xác định bởi
các Eigenfaces từ hình 3.7 ................................................................................ 61
Hình 3.9 Ảnh gốc và bản đồ mặt người, vùng tối chỉ ra hình dạng
khuôn mặt ..........................................................................................................63
Hình 3.10 Ví dụ đơn giản thể hiện 4 hình chiếu của ả
nh lên không gian mặt người.
Trong trường hợp này sử dụng 2 eigenfaces là µ
1
, µ
2
và 3 lớp mặt người (cá thể) đã
biết trước (Ω
1
, Ω
2
, Ω
3
).......................................................................................63

Hình 3.11 Hệ thống dò tìm và định vị mặt người..............................................64
Hình 4.1 Tập ảnh Face......................................................................................68
Hình 4.2 Tập ảnh nface.....................................................................................69
Hình 4.3 Tập ảnh mẫu.......................................................................................70

Hình 4.4 Lưu đồ giải thuật chính ......................................................................72
Hình 4.5 Lưu đồ giải thuật chọn ảnh ................................................................73
Hình 4.6 Lưu đồ giải thuật chương trình dò tìm ảnh mặt người ......................74
Hình 4.7 Lưu đồ giải thuật chương trình nhận dạng........................................75
Hình 4.8 Lư
u đồ giải thuật PCA .......................................................................76
Hình 4.9 Giao diện chính ..................................................................................77
Hình 4.10 Giao diện chương trình 1 (ảnh tĩnh) ................................................77
Hình 4.11 Giao diện chương trình 2 (ảnh động) ..............................................78
Hình 4.12 Giao diện kết quả chương trình 1 (ảnh tĩnh) với 1 khuôn mặt ....... 78
Hình 4.13 Giao diện kết quả chương trình 2 (ảnh động)với 1 khuôn mặt........79
Hình 4.14 Giao diện kết quả chương trình 1 (ảnh tĩnh) với 2 khuôn mặt ....... 79
Hình 4.15 Giao diện kết quả chương trình 1 (ảnh tĩnh) với 4 khuôn m
ặt nữ .. 80
Hình 4.16 Giao diện kết quả chương trình 1 (ảnh tĩnh) với 4 khuôn mặt nam80
Hình 4.17 Ảnh lỗi do quá nhiều chi tiết không phân biệt được ........................83
Hình 4.18 Lỗi do ảnh không được sắc nét ........................................................84



Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
1




Chương 1
GIỚI THIỆU MATLAB

VÀ KHÁI QUÁT VỀ ẢNH



1.1 Giới thiệu chung về phần mềm Matlab
1.2 Giới thiệu khái quát về ảnh số
1.3 Xử lý ảnh với Matlab









Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
2
Chương 1
GIỚI THIỆU MATLAB VÀ
KHÁI QUÁT VỀ ẢNH
1.1 Giới thiệu chung về phần mềm Matlab
1.1.1 Khái niệm 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.
• Với phần mềm đồ hoạ cực mạnh.
• Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran.
1.1.2 T
ổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng
này không đòi hỏi về kích thước). Chúng cho phép giải quyết các vấn đề liên quan
đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vectơ và
có thể sử dụng ngôn ngữ C học Fortran lập trình rồi thực hiện ứng dụng lậ
p trình đó
bằng các câu lệnh gọi từ Matlab. Matlab được viết tắt từ chữ “MATrix
LABoratory” tức là thư viện về ma trận, từ đó phần mềm Matlab được viết nhằm
cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma
trận này được phát triển bởi các công trình Linpack và Eispack. Ngày nay Matlab
được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma
trậ
n.

Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
3

1.1.2.1 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:

• Kiểu đơn 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 uint8, uint8, uint16, uint64...
• Kiểu char ví dụ “Hello”.
• Kiểu cell.
• Kiểu Structure.
Trong Matlab kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép
tính số học.
1.1.2.2 Ứng dụng
Matlab tạo điều kiện thuận lợi cho:
• Các khoá học về toán học.
• 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.
1.1.2.3 Toolbox là một công cụ quan trọng trong Matlab
Công cụ này được Matlab cung cấp cho phép bạn ứng dụng các kỹ thuật để
phân tích, thiết kế, mô phỏng các mô hình.
Ta có thể tìm thấy toolbox ở trong mô trường làm việc của.
• Mạng nơron.
• Logic mờ.
• Simulink.
1.1.3 Hệ thống Matlab
Hệ thống giao diện của Matlab được chia thành 5 phần:
• Môi trường phát tri
ển.

Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
4
Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các
lệnh và các file, ta có thể liệt kê một số như sau.
+ Desktop.
+ Command Window.
+ Command History.
+ Browsers for viewinghelp.
• Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin
atan, atan2 etc..., các phép tính đơn giản đến các phép tính phức tạp như tính
ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library.
• Ngôn ngữ Matlab. Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng
lệnh, các hàm, cấu trúc dữ liệu vào, có thể
lập trình hướng đối tượng.
• Đồ hoạ trong Matlab. Bao gồm các câu lệnh thể hiện đồ họa trong môi
trường 2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện
tương tác giữa người sử dụng và máy tính.
• Giao tiếp với các ngôn ngữ khác. Matlab cho phép tương tác với các ngôn
ngữ khác như C, Fortran …
1.1.4 Làm quen với Matlab
Trước tiên để khởi động Matlab bạn kích click vào biểu tượng file
Matlab.exe, trên màn hình xuất hiện cửa sổ sau. (Xem hình vẽ 1.1) Cử
a sổ đó chứa
các thanh công cụ (Giao diện người và máy) cần thiết cho việc quản lý các files, các
biến, cửa sổ lệnh, có thể coi desktop là các panel gồm các ô, vùng, quản lý và tác
dụng của từng cửa sổ nhỏ được quản lý bởi desktop.

Hình 1.1 Cửa sổ khi khởi động Matlab

Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
5
Trên hình vẽ ta thấy cửa sổ desktop (cửa sổ lớn nhất), và các cửa sổ phụ của
nó.

1.1.5 Các cửa sổ làm việc của Matlab
a) 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.
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.
Gõ các lệnh sau:
>> A= pi/2 ;
>> B= sin(A)
B=
1
Hoặc chương trình soạn thảo trong M-file dưới đây:
% Chuong trinh trong M-file
x= 0:pi/6:2*pi;
y=sin(x);
plot(x, y);
% chuong trinh được lưu với tên file là “ve_sin.m”
b) 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ư bạn muốn sử
dụng lại biến đó. Xem hình 1.2




Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
6




Click
chuột lên
lệnh hoặc
biến để sử
dụng lại

Hình 1.2 Cửa sổ Command History
c) 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.3)

Click
chuột lên
biến để

xem dữ
liệ
u

(hoặc
thay đổi
giá trị)
Hình 1.3 Cửa sổ Workspace
Ngoà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 b) rồi click (hoặc click chuột vào nút cạnh nút save) ta
được cửa sổ sau gọi là Array Editor (xem hình 1.4)

Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
7

Hình 1.4 Cửa sổ Array Editor
Tiêu đề là tên biến b, đị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 b, 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) (8 bytes cho mỗi phần tử dữ liệu kiểu double cụ thể là 24 bytes dành cho b
và 8 bytes dành cho a).
d) 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 bằng cách gõ tên của file chứa chương trình đó trong cửa sổ
Commandwindow.
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:
• 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.
e) Đường dẫn thư mục: Nơi lưu giữ các files chương trình.

1.2 Giới thiệu khái quát về ảnh số
1.2.1 Các khái niệm cơ bản về ảnh
Ảnh số là tập hợp hữu hạn 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. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ phân
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
8
giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm
ảnh trở nên thực và sắc nét hơn.
a) Điểm ảnh (Picture Element)
Đ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) Mức xám của ảnh
Mức xám: Là kết quả của sự biến đổi tương ứng 1 giá trị độ sáng của 1 điểm
ảnh với 1 giá trị nguyên dương. Thông thường nó xác định trong [0, 255] tuỳ thuộc

vào giá trị
mà mỗi điểm ảnh được biểu diễn.
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: 2
8
=256 mức, tức là từ 0 đến 255).
c) Độ 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 12” ta nhận thấy 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.
1.2.2 Các cách phân loại ảnh
Ảnh nhị phân: Giá trị xám của tất cả các điểm ảnh chỉ nhận giá trị 1 hoặc 0
như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 bit.
Ảnh xám: Giá trị xám nằm trong [0, 255] như vậy mỗi điểm ảnh trong ảnh
nhị phân đượ
c biểu diễn bởi 1 byte.
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm

9
Ảnh màu:
- Hệ màu RGB:
Một pixel được biểu diễn bằng 3 giá trị (R, G, B) trong đó R, G, B là một giá trị
xám và được biểu biểu diễn bằng 1 byte. Khi đó ta có một ảnh 24 bits.
P(x, y) = (R, G, B)
- Hệ màu CMY: là phần bù của hệ màu RGB
(C, M, Y) = (1, 1, 1) - (R, G, B)
Hay C+R=M+G=Y+B=1
=> Hệ màu này thường được dùng trong máy in.
- Hệ màu CMYK: trong đó K là độ đậm nhạt của màu K= min(C, M, Y)
P(x, y) = (C-K, M-K, V-K, K).
Ví dụ:
Với (C1, M1, Y1) ta sẽ có K=min(C1, M1, Y1)
vậy CMYK=(C1-K, M1-K, Y1-K, K)

1.3 Xử lý ảnh với Matlab
1.3.1 Xử lý ảnh
Các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài
được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Trước đây, ảnh thu
qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần đây, với sự phát
triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó đượ
c
chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Máy ảnh số hiện nay
là một thí dụ gần gũi. Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ
ảnh chụp bằng máy quét ảnh. Hình dưới đây mô tả các bước cơ bản trong xử lý ảnh.


Thu nhận
ảnh

Tiền xử
lý ảnh
Phân
đoạn ảnh
Biểu diễn
và mô tả
Nhận
dạng và
nội suy
Cơ sở tri
thức
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
10
Hình 1.5 Các bước cơ bản trong xử lý ảnh

1.3.2 Các giai đoạn xử lý ảnh
a) Thu nhận ảnh (Image Acquisition)
- Ảnh được thu từ nhiều nguồn khác nhau:máy ảnh, máy quay phim, máy quét,
ảnh vệ tinh…
- Mục đích: biến đổi thông tin hình ảnh về các cấu trúc được lưu trữ trong máy
tính, có thể hiển thị ra các thiết bị ngoại vi như là máy in, màn hình…
- Gồm hai tiến trình:
+ 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 hoặc ma trận số.
b) Tiền xử lý (Image Processing)
- Là quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnh tốt lên theo mục đích
sử dụng.

- Mục đích:
+ Điều chỉnh độ chiếu sáng để khắc phục hậu quả của việc chiếu sáng không
đều.
+ Giả
m nhỏ thành phần nhiễu của ảnh tức là các đối tượng xuất hiện ngoài ý
muốn.
+ Hiệu chỉnh giá trị độ sáng giữa nền và đối tượng.
+ Chuẩn hoá độ lớn, màu, dạng của ảnh.
+Điều chỉnh bộ lọc để khuyếch đại và nén các tần số.
c) Phân đoạn (Segmentation)
- Là quá trình phân chia nội dung các đối tượng cần khảo sát ra khỏi ảnh.
- Phân chia các đố
i tượng tiếp giáp nhau.
- Phân tách các đối tượng riêng biệt thành các đối tượng con.
d) Biểu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân
đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này thành
dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính
chất để thể
hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
11
các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân
biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được.
Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc
trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác.
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)
Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu đượ

c
bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán
đoán theo ý nghĩa trên cơ sở nhận dạng.
Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội
suy thành mã điện thoại. Có nhiều cách phân loai ảnh khác nhau về ảnh. Theo lý
thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận
dạng ảnh cơ
bản:
- Nhận dạng theo tham số.
- Nhận dạng theo cấu trúc.
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong
khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử),
nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt
người…
f) Cơ
sở tri thức (Knowledge Base)
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng
tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong
nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán
học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận
và xử lý ảnh theo cách của con người. Trong các bước xử
lý đó, nhiều khâu hiện
nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri
thức được phát huy.
1.3.3 Xử lý ảnh với Matlab
1.3.3.1 Các kiểu ảnh trong Matlab
a) Ả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
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
12
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 bất kì bản đồ màu nào.
b) Ả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 đơ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.
c) Ả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ặc tắt (on hoặc off). Một ảnh nhị

phân được lưu trữ như một mảng logic của 0 và 1.
d) Ả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 m
x
n
x
3 đị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 bits trong đó R, G, B chiếm tương ứng
8 bit 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à
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
13
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).

1.3.3.2 Các hàm xử lý ảnh cơ bản trong Matlab
a) Đọc và ghi dữ liệu ảnh
 Đọc một ảnh đồ hoạ
- 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 bit để 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.
Chú ý: 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.
RGB=imread(‘football.jpg’);
Trong ví dụ này, imread sẽ nhận ra định dạng file để sử dụng từ tên file. Ta
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.
9 Đọ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
Chương 1: Giới thiệu Matlab và khái quát về ảnh
GVHD: Ths. Đào Thị Thu Thủy SVTH: Nguyễn Trung Hiếu
Bùi Ngọc Liêm
14
định dạng file. Chẳng hạn, khi được sử dụng với TIFF, ta có thể sử dụng một

giá trị chỉ số với imread để chỉ ra ảnh mà ta muốn nhập vào.
Ví dụ sau đây đọc một chuỗi 27 ảnh từ một file TIFF và lưu những ảnh này
trong một mảng 4 chiều. Ta có thể sử dụng hàm iminfo để xem bao nhiêu ảnh đã
được lưu trữ trong file:
mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array
for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
End
- 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, ta 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ạ
- 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 ta 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ó.
Ví dụ sau tải một ảnh chỉ số X từ một file Map với bản đồ màu kết hợp với
nó map sau đó ghi ảnh xuống một file bitmap.
load clown
whos
Name Size Bytes Class
X 200x320 512000 double array
caption 2x1 4 char array
map 81x3 1944 double array
Grand total is 64245 elements using 513948 bytes
imwrite(X,map,'clown.bmp')
9 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ạ, ta có thể chỉ ra các tham

số phụ. Chẳng hạn, với định dạng PNG ta có thể chỉ ra độ sâu bit như một
tham số phụ. Ví dụ sau sẽ chi một ảnh cường độ I với một file ảnh 4 bit
PNG.

×