1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

115 1,9K 11
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Dò tìm và cắt ảnh mặt người dùng PCA
Tác giả Nguyễn Trung Hiếu, Bùi Ngọc Liêm
Người hướng dẫn Ths. Đào Thị Thu Thủy
Trường học Trường Đại Học Công Nghiệp TP. HCM
Chuyên ngành Công Nghệ Điện Tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2010
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 115
Dung lượng 4,76 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM

KHOA CÔNG NGHỆ ĐIỆN TỬ

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

Trang 2

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

Trang 3

• 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,…

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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 (Ω , Ω , Ω ) 63

Trang 11

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

Trang 12

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

Trang 13

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

Trang 14

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”

• 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

Trang 15

Đâ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

Trang 16

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

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

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

Trang 17

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

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)

Trang 18

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

Trang 19

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: 28=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

Trang 20

Ả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

Biểu diễn

và mô tả

Nhận dạng và nội suy

Cơ sở tri thức

Trang 21

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

+ 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

Trang 22

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

Trang 23

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 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 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à

Trang 24

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

Trang 25

đị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

Trang 26

imwrite(I,'clown.png','BitDepth',4 );

- Để 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

9 Đọc và ghi ảnh nhị phân theo định dạng 1 bit

- Trong một số định dạng file, một ảnh nhị phân có thể được lưu trong một

định dạng 1 bit Nếu định dạng file trợ giúp nó, Matlab ghi ảnh nhị phân như

ảnh 1 bit theo mặc định Khi ta đọc một ảnh nhị phân với định dạng 1 bit,

Matlab đại diện nó trong không gian làm việc như một mảng lôgic

- Ví dụ sau đọc một ảnh nhị phân và ghi nó dưới dạng file TIFF Bởi vì định

dạng TIFF trợ giúp ảnh 1 bit, file được ghi lên đĩa theo định dạng 1 bit:

9 Xem lớp lưu trữ của file

- Hàm imwrite sử dụng luật sau đây để quyết định lớp lưu trữ được sử dụng

trong ảnh kết quả:

+ logical: Nếu định dạng ảnh ra (Output Image) được chỉ rõ là trợ giúp ảnh 1

bit, hàm imwrite tạo một file ảnh 1 bit Nếu định dạng ảnh ra được chỉ rõ là không

trợ giúp ảnh 1 bit (như JPEG), hàm imwrite chuyển ảnh tới một ảnh thuộc lớp

uint8

+ uint8: Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bit, hàm imwrite

tạo một ảnh 8 bit

+ uint16: Nếu định dạng ảnh ra được chỉ rõ trợ giúp ảnh 16 bit (PNG hoặc

TIFF), hàm imwrite tạo một ảnh 16 bit Nếu định dạng ảnh ra không trợ giúp ảnh

16 bit, hàm chuyển đổi dữ liệu ảnh tới lớp uint8 và tạo một ảnh 8 bit

Trang 27

+ double: Matlab chuyển dữ liệu ảnh tới dạng uint8 và tạo một ảnh 8 bit bởi

vì hầu hết các file ảnh sử dụng định dạng 8 bit

ƒ Truy vấn một file đồ hoạ

- Hàm imfinfo cho phép ta có thể nhận được thông tin về một file ảnh được

trợ giúp bởi toolbox

Cú pháp: imfinfo(filename,fmt)

Các thông tin được cung cấp bởi hàm imfinfo là: filename, filemodedate,

filesize, format, formatversion, width, height, bitdepth, colortype … Thông tin mà

ta nhận được phụ thuộc vào kiểu của file nhưng nó luôn bao gồm những thông tin

sau:

+ Tên của file ảnh

+ Định dạng file ảnh

+ Số version của định dạng file

+ Ngày sửa đổi file gần nhất

+ Kích thước file tính theo byte

+ Chiều rộng ảnh tính theo pixel

+ Chiều cao ảnh tính theo pixel

+ Số lượng bít trên một pixel

+ Kiểu ảnh: RGB, chỉ số …

b) Hiển thị ảnh

ƒ Dùng hàm imview

- Để hiển thị một ảnh sử dụng hàm imview, dùng hàm imview, chỉ rõ ảnh mà

ta muốn hiển thị Ta có thể sử dụng imview để hiển thị một ảnh mà đã được

nhập vào trong không gian làm việc của Matlab

moonfig = imread('moon.tif');

imview(moonfig);

Ta cũng có thể chỉ định tên của file ảnh như trong ví dụ sau:

imview('moon.tif');

- File ảnh phải có mặt trong thư mục hiện tại hoặc trong đường dẫn của

Matlab Cấu trúc này có thể hữu ích cho việc quét qua nhiều ảnh Tuy nhiên,

lưu ý, khi sử dụng cấu trúc này, dữ liệu ảnh không được lưu trong không

gian làm việc của Matlab

Trang 28

- Nếu ta gọi hàm imview mà không chỉ ra mất kì tham số nào, nó sẽ hiển thị

một hộp chọn file cho phép ta chỉ ra tên file muốn hiển thị

9 Xem nhiều ảnh

- Nếu ta chỉ ra một file mà chứa nhiều ảnh, hàm imview chỉ hiển thị ảnh đầu

tiên trong file đó Để xem tất cả các ảnh trong file, sử dụng hàm imread để

nhập mỗi ảnh vào trong không gian làm việc của Matlab sau đó gọi hàm

imview nhiều lần để hiển thị mỗi ảnh riêng biệt

ƒ Dùng hàm imshow

- Để xem ảnh, ta có thể sử dụng hàm imshow thay cho imview Ta sử dụng

imshow để hiển thị một ảnh đã được nhập vào trong không gian làm việc

như ví dụ sau:

moon = imread('moon.tif');

imshow(moon);

Ta cũng có thể chỉ ra tên của file ảnh như một tham số truyền vào cho hàm

như ví dụ sau: imshow('moon.tif');

Khi sử dụng cấu trúc này thì dữ liệu ảnh không được nhập vào trong không

gian làm việc Tuy nhiên, ta có thể mang ảnh vào trong không gian làm việc bằng

cách sử dụng hàm getimage Hàm này sẽ nhận dữ liệu ảnh từ handle của một đối

tượng ảnh hiện tại Chẳng hạn: moon = getimage; Sẽ gán dữ liệu ảnh từ moon.tif

vào biến moon

c) Các hàm chuyển đổi kiểu ảnh

- Với các thao tác nhất định sẽ thật hữu ích khi có thể chuyển đổi ảnh từ dạng

này sang dạng khác Chẳng hạn, nếu ta muốn lọc một màu ảnh được lưu trữ

dưới dạng ảnh chỉ số đầu tiên ta nên chuyển đổi nó thành dạng ảnh RGB

Khi ta áp dụng phép lọc tới ảnh RGB, Matlab sẽ lọc giá trị cường độ trong

ảnh tương ứng Nếu ta cố gắng lọc ảnh chỉ số, Matlab đơn giản chỉ áp đặt

phép lọc tới ma trận ảnh chỉ số và kết quả sẽ không có ý nghĩa

Chú ý: Khi chuyển đổi một ảnh từ dạng này sang dạng khác, ảnh kết quả có

thể khác ảnh ban đầu Chẳng hạn, nếu ta chuyển đổi một ảnh màu chỉ số sang một

ảnh cường độ, kết quả ta sẽ thu được một ảnh đen trắng

- Danh sách sau đây sẽ liệt kê các hàm được sử dụng trong việc chuyển đổi

kiểu ảnh:

Trang 29

+ dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng bằng cách

trộn, tạo một ảnh chỉ số từ một ảnh RGB bằng cách trộng (dither)

+ gray2id: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng

+ grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách

đặt ngưỡng

+ im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ, ảnh chỉ số hay ảnh

RGB trên cơ sở của ngưỡng ánh sáng

+ ind2gray: Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số

+ ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số

+ mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận

bằng cách lấy tỉ lệ giữ liệu

+ rgb2gray: Tạo một ảnh cường độ đen trắng từ một ảnh RGB

+ rgb2ind: Tạo một ảnh chỉ số từ một ảnh RGB

- Ta cũng có thể thực hiện các phép chuyển đổi kiểu chỉ sử dụng cú pháp của

Matlab Chẳng hạn, ta có thể chuyển đổi một ảnh cường độ sang ảnh RGB

bằng cách ghép nối 3 phần copy của ma trận ảnh gốc giữa 3 chiều:

RGB=cat(3,I,I,I );

- Ảnh RGB thu được có các ma trận đồng nhất cho các mặt phẳng R, G, B vì

vậy ảnh hiển thị giống như bóng xám

- Thêm vào những công cụ chuyển đổi chuẩn đã nói ở trên, cũng có một số

hàm mà trả lại kiểu ảnh khác như một phần trong thao tác mà chúng thực

hiện

9 Chuyển đổi không gian màu

- Toolbox xử lý ảnh biểu diễn màu sắc như các giá trị RGB ( trực tiếp trong

ảnh RGB hoặc gián tiếp trong ảnh chỉ số ) Tuy nhiên, có các phương pháp

khác cho việc biểu diễn màu sắc Chẳng hạn, một màu có thể được đại diện

bởi các giá trị hue, saturation và các giá trị thành phần (HSV) Các phương

pháp khác cho việc biểu diễn màu được gọi là không gian màu

- Toolbox cung cấp một tập các thủ tục để chuyển đổi giữa các không gian

màu Các hàm xử lý ảnh tự chúng coi dữ liệu màu sắc dưới dạng RGB tuy

nhiên, ta có thể xử lý một ảnh mà sử dụng các không gian màu khác nhau

Trang 30

bằng cách chuyển đổi nó sang RGB sau đó chuyển đổi ảnh đã được xử lý trở

lại không gian màu ban đầu

d) Chuyển đổi định dạng các file ảnh

- Để thay đổi định dạng đồ hoạ của một ảnh, sử dụng hàm imread để đọc một

ảnh và sau đó lưu nó với hàm imwrite đồng thời chỉ ra định dạng tương ứng

- Để minh hoạ, ví dụ sau đây sử dụng hàm imread để đọc một file BMP vào

không gian làm việc.Sau đó, hàm imwrite lưu ảnh này dưới định dạng PNG

bitmap = imread('mybitmap.bmp','bmp');

imwrite(bitmap,'mybitmap.png','png');

e) Số học ảnh

- Số học ảnh sự ứng dụng của các phép toán số học chuẩn như: cộng, trừ,

nhân, chia lên ảnh Số học ảnh được sử dụng nhiều trong xử lý ảnh trong cả

các bước ban đầu lẫn các thao tác phức tạp hơn Chẳng hạn, trừ ảnh có thể

được sử dụng để phát hiện sự khác nhau giữa hai hoặc nhiều ảnh của cùng

một cảnh hoặc một vật

- Ta có thể thực hiện số học ảnh sử dụng các toán tử số học của Matlab

Toolbox xử lý ảnh bao gồm một tập hợp các hàm ứng dụng các phép toán số

học trên tất cả các con số không lấp đầy Hàm số học của toolbox chấp nhận

bất kì kiểu dữ liệu số nào bao gồm uint8, uint16 hay double và trả lại ảnh kết

quả trong cùng định dạng Các hàm thực hiện các phép toán với độ chính xác

kép trên từng phần tử nhưng không chuyển đổi ảnh tới giá trị chính xác kép

trong không gian làm việc của Matlab Sự tràn số được điều khiển tự động

Hàm sẽ cắt bỏ giá trị trả về để vừa với kiểu dữ liệu

ƒ Luật cắt bỏ trong số học ảnh

- Kết quả của số học nguyên có thể dễ dàng tràn số dùng cho lưu trữ Chẳng

hạn, giá trị cực đại ta có thể lưu trữ trong uint8 là 255 Các phép toán số học

có thể trả về giá trị phân số - không được biểu diễn bởi một chuỗi số nguyên

- Các hàm số học ảnh sử dụng những luật này cho số học nguyên:

+ Giá trị vượt quá khoảng của kiểu số nguyên bị cắt bỏ tới khoảng đó

+ Giá trị phân số được làm tròn

Trang 31

Chẳng hạn, nếu dữ liệu có kiểu uint8, kết quả trả về nếu lớn hơn 255 ( bao

K = imdivide(imadd(I,I2), 2); % not recommended

- Khi được sử dụng với kiểu uint8 hay uint16, mỗi hàm số học cắt kết quả của

nó trước khi truyền nó cho hàm thiếp theo Sự cắt bỏ này có thể giảm đáng

kể lượng thông tin trong ảnh cuối cùng Một cách làm tốt hơn để thực hiện

một chuỗi các tính toán là sử dụng hàm imlincomb Hàm này thi hành tất cả

các phép toán số học trong sự kết hợp tuyến tính của độ chính xác kép và chỉ

cắt bỏ kết quả cuối cùng:

K = imlincomb(.5,I,.5,I2); % recommended

1.3.3.3 Biến đổi không gian ảnh

Biến đổi không gian ảnh là thực hiện ánh xạ giữa vị trí các pixel trong ảnh

vào với các pixel trong ảnh ra

Antialiasing Các biện pháp chống răng cưa cho ảnh

Bicubic interpolation Giá trị của các pixel ra được tính toán từ

Trang 32

giá trị trung bình của 4x4 pixel lân cận

Bilinear interpolation Gía trị của pixel ra được tính toán từ giá

trị trung bình của 2x2 pixel lân cận

Geometric operation

Một thao tác sửa đổi quan hệ hình học gữa các pixel trong một ảnh Chẳng hạn thay đổi kích thước ảnh, quay ảnh và xén ảnh

Interpolation Quá trình được sử dụng để ước lượng giá

trị ảnh ở một vị trí giữa các pixel Nearest-neighbor

interpolation

Các giá trị pixel ra được gán giá trị của pixel nằm trong một vùng gần pixel đó

b) Nội suy

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, toolbox sử dụng sự nội suy để tính giá trị cho các pixel thêm vào Hàm

imresize và imrotate sử dụng nội suy hai chiều để thực hiện thao tác của mình

Hàm improfile cũng sử dụng sự nội suy hoá

9 Các phương pháp nội suy

- Toolbox sử lý ảnh cung cấp 3 cách nội suy hoá

+ Nội suy các pixel gần nhất ( nearest –neighbor interpolation )

+ Nội suy song tuyến tính ( Bilinear interpolation )

+ Nội suy song khối ( Bicubic interpolation )

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 đó, chúng 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

- Các phương pháp này khác nhau ở tập các pixel mà chúng xem xét:

+ Với nội suy các pixel gần nhất: pixel ra được gán giá trị của các pixel ở

gần nó nhất Các pixel khác không được xem xét

+ Nội suy song tuyến tính, giá trị của pixel ra là giá trị trung bình theo trọng

số của 2x2 pixel lân cận

Trang 33

+ Nội suy song khối: giá trị của pixel ra là trung bình có trọng số của 4x4

pixel lân cận

Số lượng các pixel được xem xét ảnh hưởng đến độ phức tạp tính toán Vì

vậy, phương pháp song tuyến tính mất nhiều thời gian hơn phương pháp thứ nhất và

phương pháp song khối mất nhiều thời gian hơn song tuyến tính Tuy nhiên, số

lượng pixel lớn hơn, độ chính xác sẽ tốt hơn

9 Kiểu ảnh

- 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à nearest-neighbor

interpolation 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, tuy nhiên ta 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ếu lớp ảnh vào là double, ảnh ra là một ảnh đen trắng thuộc lớp double

Ảnh ra không là ảnh nhị phân bởi vì nó bao gồm các giá trị khác 0 và 1

+ Nếu ảnh vào là uint8, ảnh ra là một ảnh nhị phân thuộc lớp uint8 Giá trị

của các pixel được nội suy được làm tròn thành 0 hoặc 1 Vì vậy , ảnh ra thuộc lớp

uint8

Nếu sử dụng phương pháp nearest-neighbor interpolation, ảnh ra luôn là ảnh

nhị phân bởi vì những giá trị của pixel được nội suy được lấy trực tiếp từ ảnh vào

c) Thay đổi kích thước ảnh

- Để thay đổi kích thước của một ảnh, sử dụng hàm imresize Sử dụng hàm

này ta có thể:

+ Chỉ ra kích thước của ảnh kết quả

+ Chỉ ra phương pháp nội suy được sử dụng

+ Chỉ ra bộ lọc được sử dụng để ngăn ngừa hiện tượng răng cưa

Trang 34

9 Chỉ ra kích thước cho ảnh kết quả

- Sử dụng hàm imresize, ta chó thể chỉ ra kích thước của ảnh kết quả theo

hai cách:

+ Bằng cách chỉ ra hệ số phóng đại được sử dụng trên ảnh

+ Bằng cách chỉ ra chiều của ảnh kết quả

9 Sử dụng hệ số phóng đại ảnh

- Để mở rộng một ảnh, chỉ ra hệ số phóng đại lớn hơn 1 Để thu nhỏ một ảnh,

chỉ ra hệ số phóng đại nằm giữa 0 và 1 Chẳng hạn, lệnh sau tăng kích thước của

- Ta có thể chỉ ra kích thước của ảnh ra bằng cách truyền một véc tơ chứa số

lượng hàng và cột của ảnh sau cùng Những lệnh sau đây tạo một ảnh ra Y với 100

hàng và 150 cột

Y = imresize(X,[100 150])

Trang 35

Chú ý: Nếu kích thước được chỉ ra không có cùng tỉ lệ với ảnh vào, ảnh ra

sẽ bị biến dạng

9 Chỉ định phương pháp nội suy được sử dụng

- Theo mặc định, hàm imresize sử dụng phương pháp nội suy các pixel gần

nhất (nearest – neighbor interpolation) để tính giá trị các pixel của ảnh ra Tuy

nhiên, ta có thể chỉ định các phương pháp nội suy khác Bảng sau đây liệt kê các

phương pháp nội suy được trợ giúp theo thứ tự của độ phức tạp

Giá trị tham số Phương pháp nội suy

‘nearest’ Nội suy các phixel gần nhất ( mặc định )

‘bilinear’ Nội suy song tuyến tính

‘biculic’ Nội suy song khối

Trong ví dụ sau, hàm imresize sử dụng phương pháp nội suy song tuyến tính:

Y=imresize(X, [100 150],’bilinear’);

9 Sử dụng bộ lọc để ngăn chặn hiện tượng răng cưa

- 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

- Khi giảm kích thước của ảnh sử dụng nội suy song tuyến tính hoặc song

khối, hàm imresize tự động áp đặt một bộ lọc thông thấp lên ảnh trước khi nội suy

Điều này để giảm ảnh hưởng của răng cưa trong ảnh ra Ta có thể chỉ ra kích thước

của bộ lọc này hoặc chỉ ra một bộ lọc khác thay thế

Chú ý: Thậm chí đã sử dụng một bộ lọc thông thấp, chất lượng của ảnh vẫn

bị ảnh hưởng do thông tin luôn bị mất trong quá trình nội suy

- Hàm imresize không áp đặt một bộ lọc thông thấp lên ảnh nếu phương pháp

nội suy các pixel gần nhất được sử dụng Phương pháp nội suy này ban đầu được sử

dụng với các ảnh chỉ số và bộ lọc thông thấp không thích hợp cho kiểu ảnh này

- Ta cũng có thể chỉ ra một bộ lọc tự tạo thay cho các bộ lọc có sẵn

Hàm imresize

Cú pháp của hàm này như sau:

B = imresize(A,m)

Trang 36

+ B=imresize(A,m): Trả lại một ảnh B lớn gấp m lần ảnh A (kích thước hình

học) sử dụng phương pháp nội suy mặc định (nearest - neighbor interpolcation) A

có thể là một ảnh chỉ số, ảnh đen trắng, RGB hoặc ảnh nhị phân Nếu m nằm giữa 0

và 1, B sẽ nhỏ hơn A Nếu m lớn hơn 1, B sẽ lớn hơn A

+ B=imresize(A,m,method): Trả lại một ảnh lớn gấp m lần ảnh A sử dụng

phương pháp nội suy method method là một chuỗi chỉ ra phương pháp nội suy nào

được sử dụng chẳng hạn: ‘nearest’,’bilinear’,’bicubic’

+ B=imresize(A, [mrows ncols],method): Trả lại một ảnh với kích thước

được chỉ ra bởi vector [mrows ncols] Nếu kích thước được chỉ ra không cùng tỉ lệ

với ảnh vào, ảnh sẽ bị biến dạng

Khi kích thước của ảnh ra nhỏ hơn kích thước của ảnh vào và phương pháp

nội suy được sử dụng là ‘bilinear’ hoặc ‘bicubic’, hàm imresize áp đặt một bộ lọc

thông thấp trước khi tuyến tính hoá để giảm hiện tượng răng cưa Kích thước mặc

định là 11x11

Ta có thể chỉ ra một thứ tự khác cho bộ lọc mặc định sử dụng cấu trúc:

B=imresize(…,method,n): n là một số nguyên chỉ ra kích thước của bộ lọc –

nxn Nếu n=0, hàm imresize bỏ qua bước lọc Ta cũng có thể chỉ ra bộ lọc riêng sử

dụng cú pháp:

B=imresize(…,method,h): Trong đó h là một bộ lọc FIR hai chiều ( có thể

được trả về bởi các hàm ftrans2, fwind1, fwind2 hoặc fsamp2 )

- Góc quay tính theo độ Nếu ta chỉ ra một giá trị dương, hàm imrotate quay

ảnh theo chiều ngược chiều kim đồng hồ Nếu chỉ ra giá trị âm, hàm quay ảnh theo

Trang 37

chiều kim đồng hồ Ví dụ sau quay một ảnh 35 độ theo chiều ngược chiều kim đồng

hồ:

J=imrotate(I,35 ) ;

- Một số tham số tuỳ chọn ta có thể truyền vào cho hàm bao gồm:

+ Phương pháp nội suy được sử dụng

+ Kích thước của ảnh ra

9 Chỉ định phương pháp nội suy được sử dụng

- Theo mặc định, hàm imrotate sử dụng phương pháp nội suy thứ nhất

(nearest-neighbor interpolation) để tính giá trị các pixel trong ảnh ra Tuy nhiên, ta

có thể chỉ ra các phương pháp nội suy khác như: ‘bilinear ‘,’bicubic’

Ví dụ sau quay một ảnh 35 độ ngược chiều kim đồng hồ sử dụng nội suy song tuyến

Theo mặc định, hàm imrotate tạo một ảnh ra đủ lớn để có thể bao gồm toàn

bộ các pixel của ảnh gốc Các pixel nằm ngoài biên của ảnh gốc được gán giá trị 0

Trang 38

như thể nền màu đen trong ảnh ra Nếu ta chỉ ra chuỗi ‘crop’ như một tham số, hàm

imrotate sẽ xén ảnh ra tới kích thước như ảnh vào

+ B=imrotate(A,angle): Quay ảnh A một góc angle độ theo chiều ngược

chiều kim đồng hồ, sử dụng phương pháp nội suy các pixel gần nhất Để quay theo

chiều kim đồng hồ hãy truyền giá trị âm cho tham số angle

+ B=imrotate(A,angle,method): Quay ảnh A một góc angle độ theo chiều

kim đồng hồ sử dụng phương pháp nội suy được chỉ ra trong method

+ B=imrotate(A,angle,method,bbox): Quay ảnh A một góc angle độ Tham

số bbox chỉ ra hộp biên của ảnh trả về bbox là một chuỗi có thể nhận các giá trị

sau:

‘crop’: Ảnh ra B chỉ bao gồm phần trung tâm của ảnh được quay và có cùng

kích thước với ảnh A

‘loose’: ( Mặc định ): Ảnh ra B bao gồm toàn bộ ảnh được quay và lớn hơn

ảnh A Hàm imrotate thiết lập giá trị 0 cho các pixel ngoài biên của ảnh gốc

Ví dụ

- Ví dụ này đọc một ảnh quang phổ ánh sáng mặt trời được lưu trong định

dạng FITS và quay nó và căn nó theo chiều ngang

Trang 39

Hình 1.8 Ảnh được quay theo chiều ngang

- Nếu ta gọi hàm imcrop mà không chỉ ra hình chữ nhật, ta có thể xén ảnh

theo các tương tác Trong trường hợp này, ta sử dụng trỏ chuột để chọn vùng chữ

nhật cần xén bằng cách nhấn và giữ phím chuột trái và di chuyển để chọn vùng xén

Khi chọn xong thì nhả chuột Trong ví dụ sau, ta hiển thị một ảnh và gọi hàm

imcrop Hàm imcrop hiển thị ảnh trong một hình và đợi ta vẽ vùng chữ nhật cần

Trang 40

- Nếu ta bỏ qua các tham số, hàm imcrop thao tác trên ảnh của trục hiện tại

- Để chỉ định một hình chữ nhật ta dùng trỏ chuột như đã nói ở trên

- Ta cũng có thể chỉ ra kích thước của hình chữ nhật mà không thao tác trực

tiếp như các cú pháp sau:

I2 = imcrop(I,rect)

X2 = imcrop(X,map,rect)

RGB2 = imcrop(RGB,rect)

Trong đó: rect là một vector bốn phần tử dạng [xmin ymin width height],

những giá trị này được chỉ ra trong toạ độ không gian Để chỉ định các toạ độ không

theo toạ độ không gian cho ảnh vào, đặt trước các tham số khác với 2 vector hai

phần tử chỉ ra Xdata và Ydata Chẳng hạn:

[…]=imcrop(x,y,…)

- Nếu ta cung cấp các tham số ra phụ, hàm imcrop sẽ trả lại thông tin về

vùng chữ nhật được chọn và hệ toạ độ của ảnh vào Chẳng hạn:

Ngày đăng: 26/04/2013, 10:29

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Ngô Hoàng Khắc Tiến, Trần Xuân Bách, Đồ án tốt nghiệp Dò tìm ảnh mặt người dùng PCA, Khoa Công nghệ điện tử, trường Đại học Công Nghiệp TP HCM, 2009 Sách, tạp chí
Tiêu đề: Đồ án tốt nghiệp Dò tìm ảnh mặt người dùng PCA
[2]. Lương Mạnh Bá, Nguyễn Thanh Thủy, Nhập Môn Xử lý ảnh số, Nxb Khoa học và Kỹ thuật, 2002 Sách, tạp chí
Tiêu đề: Nhập Môn Xử lý ảnh số
Nhà XB: Nxb Khoa học và Kỹ thuật
[3]. Võ Đức Khánh, Hoàng Văn Kiếm. Giáo trình xử lý ảnh số, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chi Minh, 2003 Sách, tạp chí
Tiêu đề: Giáo trình xử lý ảnh số
Nhà XB: Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chi Minh
[4]. Phạm Thế Bảo, Tổng quan các phương pháp xác định khuôn mặt người, Tạp chí bưu chính viễn thông Sách, tạp chí
Tiêu đề: Tổng quan các phương pháp xác định khuôn mặt người
[5]. Ngô Quốc Tạo, Ngô Phương Đông, Nguyễn Thanh Hòa, Phạm Việt Bình (2003), Báo cáo “Nhận dạng mặt người trong môi trường độ sáng không đồng nhất”, Hội thảo Công nghệ thông tin quốc gia lần thứ VIII, Thái Nguyên, 29- 31/8/2003 Sách, tạp chí
Tiêu đề: Báo cáo “Nhận dạng mặt người trong môi trường độ sáng không đồng nhất”
Tác giả: Ngô Quốc Tạo, Ngô Phương Đông, Nguyễn Thanh Hòa, Phạm Việt Bình
Năm: 2003
[6]. Nguyễn Hoài Sơn, Giáo trình Matlab căn bản, Khoa Xây dựng và Cơ học ứng dụng, trường ĐHSPKT Sách, tạp chí
Tiêu đề: Giáo trình Matlab căn bản
[7]. Burce A. Draper, Kyungim Baek, Marian Stewart Bartlett, J. Ross Beveridge, “Recognizing Faces with PCA and ICA” Sách, tạp chí
Tiêu đề: “Recognizing Faces with PCA and ICA
[8]. Stan Z. Li , Anil K. Jain, “Handbook of Face Recognition”, 2006 Sách, tạp chí
Tiêu đề: Handbook of Face Recognition
[9]. IEEE Computer Society, “Automatic face and gesture recognition”, 2004 [10]. Các Wedsite:http://www.mathworks.com/matlabcentral/fileexchange/?term=Variable http://www.picvietnam.com/forum//showthread.php?t=387 Sách, tạp chí
Tiêu đề: Automatic face and gesture recognition
Tác giả: IEEE Computer Society
Nhà XB: IEEE Computer Society
Năm: 2004

HÌNH ẢNH LIÊN QUAN

Hình 1.5 Ảnh trước và sau khi imresize - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 1.5 Ảnh trước và sau khi imresize (Trang 34)
Hình 3.2 Bức ảnh kiểm tra và hình chiếu của nó - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 3.2 Bức ảnh kiểm tra và hình chiếu của nó (Trang 65)
Hình 3.5 Face map ảnh ban đầu với không gian không phải là khuôn mặt - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 3.5 Face map ảnh ban đầu với không gian không phải là khuôn mặt (Trang 67)
Hình 3.6 a) Những gương mặt dùng để huấn luyện         b) Ảnh trung bình ψ - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 3.6 a) Những gương mặt dùng để huấn luyện b) Ảnh trung bình ψ (Trang 68)
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 đã - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
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 đã (Trang 69)
Hình 4.2 Tập ảnh nface - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.2 Tập ảnh nface (Trang 80)
Hình 4.3 Tập ảnh mẫu - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.3 Tập ảnh mẫu (Trang 81)
Hình 4.5 Lưu đồ giải thuật chọn ảnh - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.5 Lưu đồ giải thuật chọn ảnh (Trang 84)
Hình 4.6 Lưu đồ giải thuật chương trình dò tìm ảnh mặt người - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.6 Lưu đồ giải thuật chương trình dò tìm ảnh mặt người (Trang 85)
Hình 4.7 Lưu đồ giải thuật chương trình nhận dạng - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.7 Lưu đồ giải thuật chương trình nhận dạng (Trang 86)
Hình 4.13 Giao diện kết quả chương trình 2 (ảnh động)với 1 khuôn mặt - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.13 Giao diện kết quả chương trình 2 (ảnh động)với 1 khuôn mặt (Trang 90)
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 - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
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 (Trang 90)
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ữ - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
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ữ (Trang 91)
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 nam - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
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 nam (Trang 91)
Hình 4.18 Lỗi do ảnh không được sắc nét - DÒ TÌM VÀ CẮT ẢNH MẶT NGƯỜI DÙNG PCA
Hình 4.18 Lỗi do ảnh không được sắc nét (Trang 95)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w