Một trong những hệ thống đó là hệ thống “ Nhận dạng biển số xe ”.Đây là là hệ thống có khả năng thu nhận hình ảnh cũng như là “đọc” và “hiểu” các biển số xe một cách tự động, có thể được
Trang 1NGHỆ AN - 2016
Trang 2LỜI CẢM ƠN
Em xin gửi đến toàn thể quý thầy cô trường Đại học Vinh nói chung và quý thầy cô khoa Điện tử viễn thông nói riêng lời cảm ơn chân thành nhất Quý thầy cô
đã truyền đạt cho em những kiến thức chuyên môn cũng như kinh nghiệm học tâp
vô cùng quý báu và phong phú trong suốt thời qua
Đặc biệt em xin cảm ơn sâu sắc đến Giảng viên ThS.Lê Văn Chương đã hướng dẫn em rất tận tình trong suốt thời gian qua cùng những lời động viên, khắch
lệ đúng lúc giúp em vượt qua các thời điểm khó khăn nhất Những tài liệu bổ ắch mà thầy đã cung cấp cũng như những lời góp ý vô cùng quý báo đã giúp chúng em hoàn thành đồ án này
Cảm õn tất cả bạn bè, những ngýời đã đóng góp ý kiến và luôn động viên khuyến khắch giúp đỡ nhóm hoàn thành đồ án này
Xin chân thành cảm õn !
Sinh viên thực hiện
Trần Văn Mạnh
Trang 3Mục lục
LỜI CẢM ƠN 1
TÓM TẮT ĐỒ ÁN 4
MỞ ĐẦU 6
CHƯƠNG I:TỔNG QUAN VỀ XỬ LÝ VÀ NHẬN DẠNG ẢNH 7
1.1 Tổng quan về xử lý ảnh 7
1.2 Tổng quan về nhận dạng ảnh 9
CHƯƠNG II:LÝ THUYẾT VỀ ẢNH SỐ VÀ XỬ LÝ ẢNH SỐ 13
1.1 Lý thuyết về ảnh số 13
1.1.1 Khái niệm về ảnh số 13
1.1.2 Phần tử ảnh (pixel) 14
1.1.3 Cấu trúc một file ảnh 14
Một file ảnh là tập hợp nhiều điểm ảnh được minh họa hình 2.1 14
1.1.4 Mức xám ( Gray Level) 15
1.1.5 Ảnh chỉ số 15
1.1.6 Ảnh biểu diễn theo độ sáng 16
1.1.7 Ảnh trắng đen hay ảnh nhị phân 16
1.1.8 Ảnh RGB 16
1.1.9 Dãy ảnh đa khung 18
2.2 CÁC KỸ THUẬT XỬ LÝ ẢNH SỐ 18
2.2.1 Mục đích của việc xử lý ảnh số 18
2.2.2 Kỹ thuật nâng cao chất lượng ảnh 18
2.2.3 Kỹ thuật biến đổi ảnh 19
2.2.4 Kỹ thuật phân tích ảnh 19
2.2.5 Kỹ thuật nhận dạng ảnh 19
2 3 CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH SỐ 20
2.3.1 Chuyển ảnh màu RGB thành ảnh mức xám ( Gray level) 20
2.3.2 Phương pháp lọc nhiễu ảnh 20
2.3.2 Phân vùng ảnh 22
2.3.4 Tìm hiểu về biên 24
CHƯƠNG III:THIẾT KẾ CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE 31
SỬ DỤNG PHẦN MỀM MATLAB 31
3.1 Đặt vấn đề 31
Trang 43.2 Phân tích yêu cầu thiết kế 31
3.3 Trích vùng biển số xe 33
3.3.1 Xác định ngưỡng xám 33
3.3.2 Chương trình tìm góc nghiêng 33
3.4 Cách li các kí tự trong biển số 35
3.1.4 Chia biển số thành 2 hàng 35
3.4.2 Cắt các ký tự trong 2 hàng 36
3.5 Phương pháp nhận dạng biển số xe 36
3.5.1 Tạo các mẫu 36
3.5.2 Tiến hành nhận dạng kí tự 37
3.6 Thiết kế chương trình 39
3.6.1 Giao diện chương trình 39
3.6.2 Kết quả thử nghiệm 40
KẾT LUẬN 42
Trang 5TÓM TẮT ĐỒ ÁN
Đồ án này đi vào tìm hiểu và xây dựng hệ thống nhận dạng biển số xe sử dụng phần mềm MATLAB Cũng như mọi hệ thống tự động khác bao gồm phần cứng và phần mềm Phần cứng hệ thống này chính là Camera hay Webcam có tác dụng thu nhận chụp hình ảnh biển số xe, hay những ảnh chụp từ máy ảnh đây là dữ liệu đầu vào Phần mềm Matlab sẽ xử lý và nhận dạng ảnh, sau đó đưa ra chính xác biển số xe Nội dung đồ án bao gồm 3 chương:
Chương I: Tổng quan về xử lý ảnh và nhận dạng
Chương II: Lý thuyết về ảnh số và xử lý ảnh số
Chương III: Thiết kế chương trình nhận dạng biển số xe sử dụng phần mềm matlab
ABSTRACT
This thesis was studied and build recognition system license plates using MATLAB software Like any other automated system including hardware and software Hardware system is Camera or Wedcam effective acquisition license plate capture images, or photos from camera data is input Matlab software will handle and photo identification, then given accurate license plate Topic includes 3 chapter:
- Chapter I: Overview of image processing and recognition
- Chapter II: Theory of digital image and digital image processing
- Chapter III: program design license plate recognition using matlab software
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Các giai đoạn chính trong hệ thống xử lý ảnh……… ……7
Hình 2.1: Mảng hai chiều của 1 file ảnh……… … 14
Hình 2.2: Minh họa mức xám sau khi mã hóa……… 15
Hình 2.3: Minh họa ảnh nhị phân sau khi mã hóa……… …16
Hình 2.4: Mô hình màu RGB……… …17
Hình 2.5: Minh họa ảnh màu sau khi mã hóa……… … 17
Hình 2.6: Mô tả biến đổi radon……… … 26
Hình 2.7: Hình chiếu theo một góc cho trước trong biến đổi Radon………… …27
Hình 2.8: Phép biến đổi Radon dưới hình dạng hình học 28
Hình 2.9: Biến đổi ảnh mức xám sang nhị phân……… …28
Hình 2.10: Thể hiện miền Radon……… … 29
Hình 2.11: Thể hiện sự phát hiện các đường thẳng trong biến đổi Radon… … 29
Hình 2.12: Trường hợp các đường thẳng lệch về phía dưới……… 30
Hình 2.13: Trường hợp các đường thẳng lệch về phía trên……… 30
Hình 3.1: Sơ đồ khối chương trình nhận dạng biển số xe……… 32
Hình 3.2: Sơ đồ thuật toán chương trình nhận dạng biển số xe……… 32
Hình 3.3: Sơ đồ thuật toán chương trình xoay ảnh……… 34
Hình 3.4: Sơ đồ thuật toán cắt biển số thành 2 hàng……… ….35
Hình 3.5: Sơ đồ thuật toán cắt các kí tự……… 36
Hình 3.6: Giao diện chương trình……… 39
Hình 3.7: Giao diện chương trình hiện thị số……… 40
Hình 3.8: Sử dụng ảnh mẫu……… 40
Hình 3.9: Sử dụng camera……… 41
Trang 7MỞ ĐẦU
Cùng với sự phát triển của kinh tế xã hội và nhu cầu di chuyển của con người ngày càng tăng, với số lượng phương tiện giao thông lớn và còn không ngừng tăng lên Vấn đề này đã làm nảy sinh nhiều vấn đề trong việc kiểm soát cũng như quản lý các phương tiện Để giải quyết vấn đề này nhu cầu đặt ra là áp dụng các hệ thống tự động Một trong những hệ thống đó là hệ thống “ Nhận dạng biển số xe ”.Đây là là
hệ thống có khả năng thu nhận hình ảnh cũng như là “đọc” và “hiểu” các biển số xe một cách tự động, có thể được ứng dụng rộng rãi như: trạm cân và rửa xe tự động hoàn toàn, bãi giữ xe tự động, kiểm soát lưu lượng giao thông hay trong các ứng dụng về an ninh, trong đồ án này trình bày phương pháp thiết kế hệ thống nhận dạng biển số xe bằng phần mềm MATLAB
Trang 8CHƯƠNG I
TỔNG QUAN VỀ XỬ LÝ VÀ NHẬN DẠNG ẢNH 1.1 Tổng quan về xử lý ảnh
a Khái niệm
Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trình
biến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn
của người sử dụng Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối
tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá
trình biên dịch các thông tin hình ảnh của ảnh Cũng như xử lý dữ liệu bằng đồ hoạ,
xử lý ảnh số là một lĩnh vực của tin học ứng dụng Xử lý dữ liệu bằng đồ họa đề cập
đến những ảnh nhân tạo, các ảnh này được xem xét như là một cấu trúc dữ liệu và
được tạo bởi các chương trình Xử lý ảnh số bao gồm các phương pháp và kỹ thuật
biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên Mục đích của xử lý ảnh gồm:
- biến đối làm tăng chất lượng ảnh
- Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh
Nhận biết và đánh giá các nội dung của ảnh là sự phân tích một hình ảnh thành
những phần có ý nghĩa để phân biệt đối tượng này với đối tượng khác,dựa vào đó ta
có thể mô tả cấu trúc hình ảnh ban đầu.có thể liệt kê một số phương pháp nhận dạng
cơ bản như nhận dạng ảnh của các đối tượng trên ảnh,tách cạnh,phân đoạn hình
ảnh,… Kỹ thuật này được dùng nhiều trong y học(xử lý tế bào,nhiễm sắc thể),nhận
Trang 9- Thu nhận ảnh: Đây là công đoạn đầu tiên mang tính quyết định đối với quá trình
XLA Ảnh đầu vào sẽ được thu nhận qua các thiết bị như camera, sensor, máy scanner,v.v… và sau đó các tín hiệu này sẽ được số hóa Việc lựa chọn các thiết bị thu nhận ảnh sẽ phụ thuộc vào đặc tính của các đối tượng cần xử lý Các thông số quan trọng ở bước này là độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc
độ thu nhận ảnh của các thiết bị
- Tiền xử lý: Ở bước này, ảnh sẽ được cải thiện về độ tương phản, khử nhiễu,
khử bóng, khử độ lệch,v.v… với mục đích làm cho chất lượng ảnh trở lên tốt hơn nữa, chuẩn bị cho các bước xử lý phức tạp hơn về sau trong quá trình XLA Quá trình này thường được thực hiện bởi các bộ lọc
- Phân đoạn ảnh: phân đoạn ảnh là bước then chốt trong XLA Giai đoạn này
phân tích ảnh thành những thành phần có cùng tính chất nào đó dựa theo biên hay các vùng liên thông Tiêu chuẩn để xác định các vùng liên thông có thể là cùng màu, cùng mức xám v.v… Mục đích của phân đoạn ảnh là để có một miêu tả tổng hợp về nhiều phần tử khác nhau cấu tạo lên ảnh thô Vì lượng thông tin chứa trong ảnh rất lớn, trong khi đa số các ứng dụng chúng ta chỉ cần trích một vài đặc trưng nào đó, do vậy cần có một quá trình để giảm lượng thông tin khổng lồ đó Quá trình này bao gồm phân vùng ảnh và trích chọn đặc tính chủ yếu
- Tách các đặc tính: Kết quả của bước phân đoạn ảnh thường được cho dưới dạng
dữ liệu điểm ảnh thô, trong đó hàm chứa biên của một vùng ảnh, hoặc tập hợp tất cả các điểm ảnh thuộc về chính vùng ảnh đó Trong cả hai trường hợp, sự chuyển đổi
dữ liệu thô này thành một dạng thích hợp hơn cho việc xử lý trong máy tính là rất cần thiết Để chuyển đổi chúng, câu hỏi đầu tiên cần phải trả lời là nên biểu diễn một vùng ảnh dưới dạng biên hay dưới dạng một vùng hoàn chỉnh gồm tất cả những điểm ảnh thuộc về nó Biểu diễn dạng biên cho một vùng phù hợp với những ứng dụng chỉ quan tâm chủ yếu đến các đặc trưng hình dạng bên ngoài của đối tượng, ví
dụ như các góc cạnh và điểm uốn trên biên chẳng hạn Biểu diễn dạng vùng lại thích hợp cho những ứng dụng khai thác các tính chất bên trong của đối tượng, ví
dụ như vân ảnh hoặc cấu trúc xương của nó Sự chọn lựa cách biểu diễn thích hợp cho một vùng ảnh chỉ mới là một phần trong việc chuyển đổi dữ liệu ảnh thô sang một dạng thích hợp hơn cho các xử lý về sau Chúng ta còn phải đưa ra một phương
Trang 10pháp mô tả dữ liệu đã được chuyển đổi đó sao cho những tính chất cần quan tâm
đến sẽ được làm nổi bật lên, thuận tiện cho việc xử lý chúng
- Nhận dạng và giải thích: Đây là bước cuối cùng trong quá trình XLA Nhận dạng
ảnh có thể được nhìn nhận một cách đơn giản là việc gán nhãn cho các đối tượng
trong ảnh Ví dụ đối với nhận dạng chữ viết, các đối tượng trong ảnh cần nhận dạng
là các mẫu chữ, ta cần tách riêng các mẫu chữ đó ra và tìm cách gán đúng các ký tự
của bảng chữ cái tương ứng cho các mẫu chữ thu được trong ảnh Giải thích là công
đoạn gán nghĩa cho một tập các đối tượng đã được nhận biết Chúng ta cũng có thể thấy rằng, không phải bất kỳ một ứng dụng XLA nào cũng bắt
buộc phải tuân theo tất cả các bước xử lý đã nêu ở trên, ví dụ như các ứng dụng
chỉnh sửa ảnh nghệ thuật chỉ dừng lại ở bước tiền xử lý Một cách tổng quát thì
những chức năng xử lý bao gồm cả nhận dạng và giải thích thường chỉ có mặt trong
Nhận dạng là quá trình phân loại các đối tượng được biểu diễn theo một mô
hình nào đó và gán cho chúng vào một lớp (gán cho đối tượng một tên gọi) dựa theo
những quy luật và các mẫu chuẩn
Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là:
1.Đối sánh mẫu dựa trên các đặc trưng được trích chọn
2 Phân loại thống kê
3 Đối sánh cấu trúc
4 Phân loại dựa trên mạng nơ-ron nhân tạo
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn lẻ
để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách
tiếp cận khác nhau Do vậy, các phương thức phân loại tổ hợp hay được sử dụng khi
nhận dạng và nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống
lai (hybrid system) bao gồm nhiều mô hình kết hợp
Trang 11Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy sinh trong cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà còn đặt ra những yêu cầu về tốc độ tính toán Đặc điểm chung của tất cả những ứng dụng đó là những đặc điểm đặc trưng cần thiết thường là nhiều, không thể do chuyên gia đề xuất, mà phải được trích chọn dựa trên các thủ tục phân tích dữ liệu
b Các phương pháp nhận dạng truyền thống
Hệ nhận dạng kí tự ( gọi tắt là OCR - Optical Character Recognition ) Nhiều
hệ thống nhận dạng đã làm việc khá tốt với các trang văn bản rõ nét, nhưng xét tổng thể thì vẫn còn khoảng cách khá lớn giữa tính năng của các hệ nhận dạng và đòi hỏi thực tế
Đa số các hệ OCR làm việc với hình ảnh nhị phân (Bitmap) của các trang văn bản đã được Scanner hoặc nhận từ máy Fax Công việc đầu tiên của quy trình nhận dạng là phân thành các khối văn bản dựa trên đặc thù trang in như lề phải, lề trái Từng khối văn bản sau đó được phân thành những ô mực nhỏ ( tương ứng với các chữ cái ) Chương trình nhận dạng sẽ tính xem từng ô mực tương ứng với chữ cái nào và xác định nội dung trang văn bản đó
Sự khác biệt giữa hình ảnh và văn bản cũng là một vấn đề được các hệ OCR lưu ý Đa số các hệ nhận dạng dùng các tham số thống kê để phân biệt chữ và hình ảnh ( đối với văn bản, màu trắng và đen phân bố với nhịp điệu chuẩn, còn trong hình ảnh thì các pattern đen trắng phân bố không đều ) Thuật toán đơn giản nhất là lấy phần trăm các điểm đen/trắng làm chỉ tiêu phân biệt, nhưng khi đó chữ quá đậm
có thể bị xem là hình ảnh
Có nhiều phương pháp nhận dạng, nhưng nói chung được quy về 2 kiểu: nhận dạng theo mẫu ( template-base ) và nhận dạng theo tính chất ( feature - base)
+ Phương pháp nhận dạng theo mẫu là so sánh với các mẫu chữ lưu sẵn
+ Nhận dạng theo tính chất thì quy ô mực thành các tính chất quy định cách thức viết nên con chữ
Phương pháp nhận dạng theo mẫu thuộc loại cổ điển quy mỗi ô mực thành một ma trận điểm 10 x 10 Các con chữ có thể có kích cỡ khác nhau nhưng đều quy thành ma trận 10 x 10 và so sánh với mẫu để chọn mẫu gần nhất Có nhiều cách
thức so sánh, chẳng hạn thông qua số lượng điểm khác biệt Tuy nhiên do sự khác
Trang 12biệt giữa các font chữ nhiều khi còn lớn hơn sự khác biệt giữa các con chữ cùng font ( chẳng hạn chữ b và chữ h - 2 chữ này trong cùng một font còn có vẻ gần nhau hơn so với cùng chữ trong font ), vì vậy thông thường các mẫu được phân theo font Sau khi xử lý một vài từ, hệ thống tự động xác định các con chữ hay dùng và định font cho thích hợp
Nhận dạng theo tính chất, trong hệ có 100 “ hệ chuyên gia” khác nhau, thực chất là các thuật toán nhận dạng 100 con chữ ( từ A Z, a z, số, các dấu ) Các con chữ được nhận dạng theo các tính chất như gạch nghiêng, đứng, nghiêng, điểm uốn, phản xạ, chiều dài và hướng các dấu gạch Hệ chuyên gia còn xem xét hình chiếu dọc, ngang ( cộng với các điểm đen theo hàng/cột ) để xác định thêm các tham số khác Kiểu nhận dạng này dựa trên tư duy quen thuộc sau: chẳng hạn chữ t gồm một đường thẳng đứng cắt một vạch ngang, có thể có thêm các gạch chân Nếu nhận dạng theo mẫu phải lưu tất cả các mẫu khác nhau ( hệ ExperVision chứa tới 2100 loại chữ ) Hệ OmniPage sẽ chỉ cho máy tính cách “đọc” từng con chữ, ví dụ chữ k gồm một vạch đứng và hai vạch chéo, còn các tham số khác chỉ là tham số phụ
c Các hạn chế của phương pháp nhận dạng truyền thống
Thực tế các trang văn bản không thể đạt được mức độ sạch sẽ, chuẩn mực Còn nhiễu khuyết điểm hiện tại là một vấn đề lớn đối với các hệ OCR, bởi vì chỉ cần một vài chấm mực nhỏ chữ cũng có thể làm nhận dạng sai, ví dụ chữ C có thể biến thành chữ O, hay tài liệu photocopy thì các nét mảnh có thể bị đứt đoạn thì có thể trở thành một chữ cái riêng
Các kiểu chữ mang tính nghệ thuật ngày càng nhiều, và ngay cả các loại chữ chuẩn cũng không hoàn toàn đồng nhất ngay cả khi trùng tên, chẳng hạn font chữ Times của máy in Hewlett-Packard DeskJet khác font cùng tên trên máy in Apple Laser Writer
Với kiểu nhận dạng này, nhiễu có thể gây ra các lỗi khác nhau, bởi vì bỏ đi một vài điểm không ảnh hưởng nhiều đến việc nhận dạng theo mẫu nhưng có thể phân cắt các đường thẳng hoặc đường cong và dẫn đến kết quả sai
Các thuật toán nhận dạng phải đủ mềm dẻo để xử lý khía cạnh tế nhị này Nếu
không đủ mềm dẻo thì một khác biệt rất bé của kiểu chữ cũng đòi hỏi quản lý và xử
Trang 13lý riêng, ngược lại, quá mềm dẻo thì lỗi có thể rất nhiều, chẳng hạn chữ b và chữ h khác nhau không nhiều có thể bị đồng nhất làm một
d Các phương pháp xử lý và nhận dạng ảnh hiện nay
Hiện nay,ngoài phương pháp nhận dạng bằng OCR người ta còn sử dụng nhận dạng bằng mạng neural nhân tạo
Mạng neural nhân tạo (Artificial Neural Networks : ANN) ra đời xuất phát từ
ý tưởng mô phỏng hoạt động của bộ não con người,là sự tái tạo bằng kỹ thuật những chức năng của hệ thần kinh con người với vô số các neural được liên kết truyền thông với nhau qua mạng Giống như con người,ANN được học bởi kinh nghiệm,lưu những kinh nghiệm đó và sử dụng trong những tình huống thích hợp
Trang 14
là quá trình số hóa
Ảnh là tập hợp các điểm (phần tử ảnh) khi được số hóa Khối lượng thông tin trong một ảnh là rất lớn (đến vài trăm mêga bít /ảnh) Bản chất các thông số ảnh có tính vector
Để biểu diễn các hình ảnh, trong đó, mỗi phần tử của ma trận biểu diễn dữ liệu màu hoặc mức xám của một điểm ảnh Chúng ta có thể sử dụng phần mềm MATLAB trong đó mỗi hình ảnh thường được biểu diễn bằng một ma trận hai chiều Mỗi phần tử của ma trận tương ứng với 1 pixel (một phần tử ảnh – picture element – biểu diễn bằng 1 điểm trên màn hình) Điểm ảnh ở góc trên bên trái là ứng với hàng 1, cột 1 Một số hình ảnh được biểu diễn bằng một ma trận ba chiều,
ví dụ ảnh RGB, trong đó chiều thứ ba có kích thước bằng 3, nghĩa là ma trận này có thể chia làm 3 ma trận hai chiều, ma trận thứ nhất ứng với độ sáng màu đỏ (R – Red) của điểm ảnh, ma trân thứ hai ứng với độ sáng màu xanh dương (B – Bue) và
ma trận thứ ba ứng với độ sáng màu lục (G – Green)
MATLAB lưu giữ các hình ảnh dưới một trong các kiểu dữ liệu sau: logical, uint8, uint16, double Người sử dụng có thể sử dụng các phép toán và các thao tác
cơ bản trên ma trận, chẳng hạn như truy xuất các phần tử, thay đổi kích thước, sắp xếp, cắt bỏ một phần ma trận để tác động lên các dữ liệu hình ảnh với điều kiện các thao tác này chấp nhận các kiểu dữ liệu hình ảnh nói trên
Riêng với các dữ liệu uint8 và uint16, ta không thể sử dụng các phép toán số học như cộng, trừ, nhân, chia Trong trường hợp này, MATLAB cung cấp thêm các
hàm thực hiện các phép toán này
Trang 151.1.2 Phần tử ảnh (pixel)
Mỗi phần tử ảnh gọi là một pixel thể hiện cường độ sáng hay mức xám trong ảnh Pixel là phần tử nhỏ nhất của ảnh, thường được biểu diễn bởi mảng hai chiều f(x,y) Một ảnh bao gồm xy điểm Cặp tọa độ x, y tạo nên độ phân giải của ảnh
(0, 0) (0,1) (0, 1)(1, 0) (1,1) (1, 1)( , )
Trang 16Với cách biểu diển ảnh này, mỗi ảnh sẽ được biểu diễn bởi 2 ma trận, một
ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map Ma trận dữ liệu có thể thuộc kiểu uint8, uint16, hoặc double Ma trận màu là một ma trận kích thước m x 3 gồm các phần tử kiểu double có giá trị trong khoảng [0,1] Mỗi hàng của ma trận xác định các thành phần red, green, blue của một màu trong tổng số m màu được sử dụng trong ảnh Giá trị của một phần tử trong ma trận dữ liệu cho biết màu của điểm ảnh đó là màu nằm ở hàng nào trong ma trận màu Nếu ma trận dữ liệu thuộc kiểu double, giá trị 1 sẽ tương ứng với hàng thứ 1 trong bảng màu, giá trị thứ 2 tương ứng với màu ở hàng thứ 2, Nếu ma trận dữ liệu thuộc kiểu hoặc uint16, giá trị 0 ứng với hàng 1, giá trị 1 tương ứng với hàng 2, Riêng với kiểu
Trang 17uint16, MATLAB không hổ trợ đủ các phép toán so với kiểu uint8 nên khi cần xử
lý ta cần chuyển sang kiểu dữ liệu uint8 hoặc double bằng các hàm imapprox hoặc im2double
1.1.6 Ảnh biểu diễn theo độ sáng
Mỗi ảnh được biểu diễn bởi một ma trận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) của điểm ảnh đó Ma trận này có thể thuộc một trong các kiểu uint8, uint16, hoặc double Trong đó, giá trị nhỏ nhất (0) ứng với màu đen còn giá trị lớn nhất (255 hoặc 65535 hoặc 1 tùy kiểu dữ liệu là uint8, uint16, hay double) ứng với màu trắng Như vậy, ảnh biểu diễn theo kiểu này còn gọi là ảnh “trắng đen” hoặc ảnh gray scale
1.1.7 Ảnh trắng đen hay ảnh nhị phân
Ảnh trắng đen sau khi mã hóa tạo thành ma trận chỉ nhận giá trị logic (0,1), tương ứng 0 (trắng) và 1 (đen)
Hình 2.3: Minh họa ảnh nhị phân sau khi mã hóa
1.1.8 Ảnh RGB
Ảnh RGB còn gọi là ảnh “truecolor” do tính trung thực của nó Ảnh này được biểu diễn bởi một ma trận ba chiều kích thước m x n x 3, với m x n là kích thước ảnh theo pixels Ma trận này định nghĩa các thành phần màu red, green, blue cho mỗi điểm ảnh, các thành phần của nó có thể thuộc kiểu uint8, uint16, hoặc double Ví dụ, điểm ảnh ở vị trí (10,5,1), (10,5,2), (10,5,3) Các file ảnh hiện nay
Trang 18thường sử dụng 8 bit cho một thành phần màu, nghĩa là mất 24 bit cho mỗi điểm ảnh (khoảng 16 triệu màu)
Theo lý thuyết màu do Thomas đưa ra mọi màu đều có thể tổ hợp từ 3 màu
Trang 19Hình 2.5: Minh họa ảnh màu sau khi mã hóa
1.1.9 Dãy ảnh đa khung
Trong một số ứng dụng, người sử dụng có thể có nhu cầu lưu một chuỗi các ảnh ghi nhận tại những thời điểm liên tiếp nhau để tiện cho việc hiển thị, ví dụ ảnh
từ các đoạn video hoặc các lát cắt từ máy chụp ảnh cộng hưởng từ, Để phục vụ cho các ứng dụng này, MATLAB cho phép ta lưu nhiều ảnh thành một dãy, mỗi ảnh
gọi là một frame, bằng hàm cat
>> multi = cat(4, A1, A2, A3, ) % A1, A2, A3, là các ảnh cần lưu
Ta cũng có thể truy xuất đến một frame trong dãy ảnh đa frame này theo cách như sau:
>> frm3 = multi(:,:,:,3) % truy xuất frame thứ 3
2.2 CÁC KỸ THUẬT XỬ LÝ ẢNH SỐ
2.2.1 Mục đích của việc xử lý ảnh số
Mục đích đặt ra cho việc xử lý ảnh bao gồm hai mục đích:
+ Thứ nhất: Biến đổi ảnh hay sự tăng cường ảnh nhằm thu lại ảnh tốt hơn
Để rồi từ đó nhận được nhiều thông tin về ảnh hơn, ta có thể quan sát và đánh giá được
+ Thứ hai: Nhận dạng ảnh hay đón nhận ảnh một cách tự động
2.2.2 Kỹ thuật nâng cao chất lượng ảnh
Nâng cao chất lượng ảnh là một bước quan trọng tạo tiền đề cho xử lý ảnh
Trang 20Làm nổi bật một số đặc tính của ảnh như thay đổi độ tương phản, lọc nhiễu, nổi biên, làm trơn biên ảnh, nhằm hoàn thiện trạng thái quan sát của một ảnh
Tăng cường ảnh không phải là làm tăng lượng thông tin vốn có trong ảnh làm nổi bật các đặc trưng đã chọn Tức điều chỉnh mức xám của điểm ảnh Dùng phương pháp ánh xạ làm thay đổi giá trị điểm sáng
Khôi phục ảnh bao gồm quá trình lọc ảnh, khử nhiễu do môi trường bên ngoài hay các hệ thống thu nhận, phát hiện và lưu trữ ảnh thu được, thông qua các
bộ lọc trong miền không gian và trong miền biến đổi Nhằm làm giảm bớt các biến dạng để khôi phục lại ảnh giống như ảnh gốc
2.2.3 Kỹ thuật biến đổi ảnh
Thuật ngữ biến đổi ảnh thường dùng để nói tới một lớp các ma trận đơn vị,
và các kỹ thuật dùng để biến đổi ảnh làm giảm thứ nguyên của ảnh để việc xử lý ảnh được hiệu quả hơn Có nhiều loại biến đổi được dùng như: biến đổi Fourier, Sin, Cosin,…
2.2.4 Kỹ thuật phân tích ảnh
Phân tích ảnh liên quan đến việc xác định các độ đo định lượng của một ảnh
để đưa ra một mô tả đầy đủ về ảnh Nhằm mục đích xác định biên của ảnh Có nhiều kỹ thuật khác nhau như lọc vi phân hay dò theo quy hoạch động Người ta cũng dùng các kỹ thuật để phân vùng ảnh Từ ảnh thu được, người ta tiến hành kỹ thuật tách hay hợp dựa theo các tiêu chuẩn đánh giá như: màu sắc, cường độ… Phương pháp được biết đến như nhị phân hóa đường biên Cuối cùng, phải kể đến các kỹ thuật phân lớp dựa theo cấu trúc
2.2.5 Kỹ thuật nhận dạng ảnh
Nhận dạng ảnh là quá trình liên quan đến các mô tả đối tượng mà người ta muốn đặc tả nó Quá trình nhận dạng thường đi sau quá trình trích chọn các đặc tính chủ yếu của đối tượng Có hai kiểu mô tả đối tượng :
- Mô tả tham số ( nhận dạng theo tham số)
- Mô tả theo cấu trúc ( nhận dạng theo cấu trúc)
Trang 21Người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiều đối tượng khác nhau như : nhận dạng ảnh vân tay, nhận dạng chữ (chữ cái, chữ số, chữ có dấu)
2 3 CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH SỐ
2.3.1 Chuyển ảnh màu RGB thành ảnh mức xám ( Gray level)
Ảnh gốc thường là ảnh màu 24 bit màu nên khó nhận dạng ta cần phải chuyển về ảnh xám dữ liệu 8 bit để dễ nhận dạng hơn Nghĩa là mỗi pixel được biểu diễn 256 cấp độ xám theo công thức:
X= 0,2125*R + 0,7145*G + 0,0721*B Quá trình chuyển đổi mức xám tuy có làm mất đi một số thông tin nhưng cũng có thể chấp nhận được
2.3.2 Phương pháp lọc nhiễu ảnh
Nhiễu có thể coi như sự đột biến của một điểm ảnh so với các điểm lân cận Lọc nhiễu ảnh nhằm mục đích loại bỏ các đột biến của ảnh, ở đây ta sử dụng phương pháp lọc số dựa trên tính dư thừa thông tin không gian, các pixel lân cận có thể có cùng hoặc gần cùng một số đặc tính Trong kỹ thuật này, người ta sử dụng một mặt nạ và di chuyển khắp ảnh gốc Tùy theo cách tổ hợp điểm đang xét với các điểm lân cận mà ta có kỹ thuật lọc tuyến tính hay phi tuyến Điểm ảnh chịu tác động của biến đổi là điểm ở tâm mặt nạ
Trang 22c Lọc trung vị(median Filtering)
Một trong những khó khăn chính trong các phương pháp làm trơn nhiễu là nó làm mờ các đường biên và các chi tiết sắc nét của ảnh (vì chúng týõng ứng với thành phần tần số cao của ảnh, khi cho ảnh qua bộ lọc thông thấp thì không chỉ
có nhiễu bị loại trừ mà thành phần tần số cao của ảnh cũng bị suy hao) Lọc trung vị có ưu điểm là lọc nhiễu nhưng không làm mờ ảnh Trong kỹ thuật này, mức xám của điểm ảnh trung tâm được thay thế bằng trung vị của một chuỗi các mức xám của các điểm ảnh lân cận thay vì là giá trị trung bình Trung vị m của một chuỗi các giá trị là một giá trị sao cho một nửa các giá trị trong chuỗi nhỏ hơn m và một nửa lớn hơn m
Được sử dụng chủ yếu cho giảm nhiễu
Một bộ lọc trung vị cũng dựa vào việc dùng một cửa sổ di chuyển trên ảnh,
và giá trị xám pixel đầu ra được thay thế bởi trung vị của các pixel trong cửa
sổ đó
Thuật toán:
Các pixel trong của sổ sẽ được sắp xếp từ nhỏ tới lơn
Nếu kích thước của cửa sổ =JxK là lẻ thì vị trí trung vị là (JxK +1) / 2 ,
ngược lại thì vị trí trung vị là JxK / 2