TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 KHOA VẬT LÝ
PHẠM THỊ BÍCH THUẬN
XỬ LÍ TÍN HIỆU HÌNH ANH VOI MATLAB
KHĨA LUẬN TĨT NGHIỆP ĐẠI HỌC
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 KHOA VẬT LÝ
PHAM THI BiCH THUAN
XU Li TIN HIEU HINH ANH VOI MATLAB
Chuyên ngành: Sư phạm kỹ thuật
KHĨA LUẬN TĨT NGHIỆP ĐẠI HỌC
Người hướng dẫn khoa học GV Trần Quang Huy
Trang 3LỜI CÁM ƠN
Trong thời gian thực hiện khố luận tốt nghiệp, tơi đã nhận được rất
nhiều sự giúp đỡ quý báu của quí thầy cơ và các bạn
Trước tiên cho tơi gửi lời cảm ơn sâu sắc đến thầy Trần Quang Huy, người đã trực tiếp giúp đỡ tơi trong suốt thời gian nghiên cứu và thực hiện đề tài
Tơi xin chân thành cảm ơn các thầy cơ trong khoa Vật lí đã giúp đỡ tơi
để tơi cĩ thể hồn thành khố luận theo đúng thời gian
Tơi xin kính chúc các thầy cơ và các bạn luơn dồi dào sức khoẻ, hạnh
phúc và thành cơng trong cuộc sống
Mặc dù tơi đã cố gắng rất nhiều để hồn thành đề tài này, song do giới
hạn về mặt thời gian cũng như kiến thức nên nội dung cịn nhiều thiếu sĩt Rất mong nhận được sự đĩng gĩp ý kiến của quý thầy cơ và các bạn sinh viên để Luận văn của tơi được hồn thiện hơn
Tơi xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2013 Sinh viên
Trang 4LỜI CAM ĐOAN
Tơi xin cam đoan trước Hội đồng xét khố luận tốt nghiệp, đây là đề tài
do tơi tự tìm hiểu và nghiên cứu dưới sự hướng dẫn của thầy Trần Quang Huy
Đề tài này khơng trùng với bất kì đề tài nào trước đây
Nếu sai tơi xin chịu sự kỉ luật trước Hội đồng
Hà Nội, tháng 5 năm 2013 Sinh viên
Trang 5DANH MỤC CÁC BÁNG Bảng thuật ngữ biến đổi khơng gian ảnh
Bảng các phương pháp nội suy Bảng thuật ngữ màu sắc
Trang 6Hình 1.1: Hình 1.2: Hình 1.3: Hình 1.4: Hình 1.5: Hình 1.6: Hình 1.7: Hình 1.8: Hinh 2.1: Hinh 3.1: Hinh 3.2: Hinh 3.3: Hinh 3.4: DANH MỤC CÁC HÌNH VẼ
Cửa số làm việc của matlab Cửa số Command History Cửa số Workspace Cửa số Variable Editor Ảnh được định chỉ số Ảnh grayscale Ảnh nhị phân Ảnh RGB
Trang 7MỤC LỤC Trang phụ bÌa - - Sc nk 1x Sv ST TH TT HH ng UV) e IUc oi 0n Danh mục các bảng, c3 1211311511213 111 1111111111 11111111 111 11g cry Danh muc Cac hinh V6 78 .(1 M000 0 1 )(9)8))001 c1 .5 3
CHUONG 1: TÌM HIỂU CƠ BẢN VẺ MATLAB VÀ ẢNH 3
1.1 Tìm hiểu cơ bản về Matlab 2-2229 E+2E2EESEEEEEE2EEEEEESEErrrerree 3 1.1.1 Khởi động Matlab - c1 1211211151111 111 12111111 1111 11 111 1 cư, 3 1.1.2 Các cửa số làm việc của Matlab -¿- 5s sSkckEkEEEEEEEEEEerksrrkee 4 1.2 Tìm hiểu cơ bản về ảnh s¿25222+2223 2212221221271 7
L.2.1 Khai na 7
1.2.2 Các kiểu ảnh trong Matlab 2-2 5s2S22E2E92E2232212211212221221 2222 7 CHƯƠNG 2: CÁC HÀM XỬ LÍ ẢNH TRONG MATLAB 10
2.1 Đọc và ghi dữ liệu ảnh -. 5c + S132 111 111112115111 1111 11111111111 cty 10 PHO 10
PP cơ vn 10
P Nơi na 11
2.2 Các hàm hiển thị anh trong Matlab .0 cecceccccseesseessesssesseessesseeseseeeens 11 2.3 Chuyên đổi giữa các kiêu dữ liệu, kiểu ánh . -2-©-s22z+cse5sz 12 2.3.1 Chuyên đổi giữa các kiểu dữ liệu ảnh -©2¿+s222z+z+zzzzxczx 12
2.3.2 Chuyên đổi giữa các kiểu ảnh - 2-2 E+2xeEEc2EeEEEE2EE2Ex2Exerxcrx 12
2.4 Số học ảnh ch Hiệu 13
2.4.1 Luật cắt bỏ trong số học ánh ¿- 25s xeEkeEEeEEEEE2EE2112112E1 1xx 13
Trang 82.5 Biến đối khơng gian ảnh 2-52 Sc 9t E1 EE71111111 2112112111 xe 14 PIN án nh ." ậ 14 2.5.2 Nội SUY LH HH HH HH HH TH TT 15 2.5.3 Thay đổi kích thur6e anh e.ccecccecccscsessesseessesssessessesssessnsssesseessssesees 16 PA X9 2n 18 2.5.5 KOM AN na ố 19 PP ‹ 00 0ê 21 PIN ti o0 v04 -ưƯưœ-1Ọ 21
2.6.2 Sử dụng bộ lọc được quy tc HOA e.cceccecesseessessessessessessessessessesseeeessees 22 2.6.3 Sử dụng giải thuật Lucy-Richardson - ¿5+ Sex ++x+exssxseerexse 22 2.6.4 Sử dụng giải thuật blind deconvolution - ¿5555555 ssss+++ 23 2.7 Màu SẮC 555cc TH 1e 25 PIN án ao 25 2.7.2 Làm việc với các chiều sâu bít màn hình khác nhau . :- - 26 2.7.3 Tính độ sâu bít màn hình ¿+ + +k£ xxx re 26 2.7.4 Chọn độ sâu bít màn hình . - ¿+ 22222222111 *22EE22£EE++zz.xzzexxe 27 2.7.5 Giảm số lượng màu trong một ảnh - 2-2 ©2+2222E2+£s+2zz+zxezzz 27 2.8 Phân tích và làm giàu ảnhh - - 65 + 1E 1E SE SEeEskeskekrrkree 30 PIN in áo 30 2.8.2 Các gid tri pixel va thống kê -+-©2++2E221222122122212712222222 xe 31 2.8.3 Phân tích ảnh .- - 6+ + T HT HH TH TT TH Hàng net 33
2.8.4 Điều chỉnh cường độ ảnh (Intensity Adjustment)
Trang 10MO DAU
1 Ly do chon dé tai
Bước sang thế kỉ 21, thế ki của khoa học và cơng nghệ Địi hỏi con
người cần phải khơng ngừng học tập, nghiên cứu để bắt kịp với thời đại Dé
phục vụ cho việc học tập và nghiên cứu đĩ cĩ rất nhiều những cơng cụ, thiết bị hay những phần mềm hữu ích giúp con người đây nhanh cũng như đơn giản hố cơng việc của mình Đặc biệt là những phần mềm cĩ giao diện cực mạnh như Matlab
Matlab là một mơi trường tính tốn số và lập trình, được thiết kế bởi
cơng ty MathWorks Matlab cho phép tính tốn số với ma trận, vẽ đồ thị
hàm số hay biểu đồ thơng tin, thực hiện thuật tốn, tạo các giao diện người
dùng và liên kết với những chương trình máy tính viết trên nhiều ngơn ngữ lập trình khác
Matlab cung cấp cơng cụ Image Processing toobox chuyên về xử lí ảnh Cĩ thể nĩi Matlab là một cơng cụ mạnh giúp cho việc thực hiện các giải thuật xử lí ảnh nhanh chĩng và dễ hiểu Sự cần thiết phải sử dụng phần mềm cĩ giao diện cực mạnh ứng dụng vào xử lí ảnh là vì hình ảnh rất quen thuộc với chúng ta Hình ảnh ở khắp mọi nơi, từ các thiết bị hàng ngày như máy ảnh, điện thoại tới các thiết bị chuyên dụng cho hình ảnh y tế, an tồn giao thơng, tự động hố cơng nghiệp, và nhiều hơn nữa Khi xử lí những hình ảnh này chúng ta gặp phải những khĩ khăn khác nhau
Nhưng lĩnh vực xử lí ảnh bằng Matlab vẫn cịn khá mới mẻ, chưa được khai thác hết tiềm năng Xuất phát từ yêu cầu thực tiễn trên tơi đã quyết định chọn đề tài: “Xử lí tín hiệu hình ảnh với Matlab”
2 Mục đích nghiên cứu
Trang 11- Nâng cao kiến thức về ứng dụng cơng nghệ thơng tin trong kĩ thuật xử lí ảnh
- Nâng cao kĩ năng trình bày nội dung khĩa luận, biết cách thực hiện
một đề tài nghiên cứu khoa học
3 Đối tượng, phạm vi nghiên cứu
- Đối tượng nghiên cứu: Phần mém Matlab
- Phạm vi nghiên cứu: Ứng dụng phần mềm Matlab trong xử lí ảnh
4 Giả thuyết khoa học
Sau khi nghiên cứu, tìm hiểu về xử lí tín hiệu hình ảnh với Matlab sẽ làm tài liệu cho những người quan tâm, gĩp một phần nhỏ bé vào kho tàng
tài liệu tham khảo giúp cho nhiều người biết đến phần mềm hữu hiệu này và
sử dụng nĩ như một cơng cụ đắc lực phục vụ cho việc học tập và nghiên cứu của mình
5 Phương pháp nghiên cứu
Kết hợp lí thuyết với thực hành Sử dụng các tài liệu tham khảo và
thực hành trên phần mềm Matlab 6 Cấu trúc cúa khĩa luận
Ngồi phần mở đầu, kết luận, tài liệu tham khảo, nội dung khố luận gồm cĩ 3 chương:
Chương l: Tìm hiểu cơ bản về Matlab và về ảnh Chương 2: Các hàm xử lí ảnh trong Matlab
Trang 12NỘI DUNG
CHUONG I: TIM HIEU CO BAN VE MATLAB VA ANH
1.1 Tìm hiểu cơ ban vé Matlab
Matlab là một ngơn ngữ lập trình thực hành bậc cao được sử dụng dé giải các bài tốn về kỹ thuật Matlab tích hợp được việc tính tố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ê thực hiện nhiều ứng dụng thực tế trong điều khiến, viễn thơng, xử lý âm thanh, hình ảnh, video
Matlab cung cấp cơng cụ Image Processing toobox chuyên về xử lí ảnh Cĩ thể nĩi Matlab là một cơng cụ mạnh giúp cho việc thực hiện các giải thuật xử lí ảnh nhanh chĩng và dễ thực hiện
1.11 Khởi động Matlab
"ii WHATLAB 7.8.0 (RO00S) ———— || BSE s— "
File Edit View Graphics Debug Parallel Desktop Window Help
DS £RBO & | Bee B | @ || caUserabADocumentsAMATLAB + |) Shortcuts [4] Howto Add [a] What's New
Current Directory '* O # X| Command Window noe x
«>| « MA + S- ƯNewtoMATLAB?Watch this Video, see Demos or read Getting St | (i) maf #a| 3ã BB ~ | Stack:) Base
Ci Name Date Modified >> a= [12 3 4] Name = Value Min Ma: a 112,2,4] 1 4 4 b 10.5800,1,1.5000,2] 5000 2 du 3 4 >> be 4/2 a ư ' Commend History oa x %—— 8/1/11 4:43 AM % a.5000 1.0000 1.5000 2.0000 %— 8/1/11 4:57 AM % fc >> Gs 8/11/11 7:56 am % a“ [123 4] be a/2 |4 start
Hình 1.1: Cửa số làm việc của matlab
Trang 13cho 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
1.1.2 Các cửa sổ làm việc của Matlab 1.1.2.1 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 tố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 Entcr Ví dụ: Gõ các lệnh sau: A=pi/2; B=sin(A) B=1 1.1.2.2 Cửa số command History
Các đị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
Trang 14
+} Command History ali led
Click File Edit Debug Desktop Window Help ~ z sẽ @-s 11/18/09 5:18 PM % chuột lên A=pi/2: Basin (A) lệnh hoặc “ căi ve _sin biến đề sử dụng lại Hình 1.2: Cửa số Command History 1.1.2.3 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) } Workspace EIIEIKI Click File Edit View Graphics Debug Desktop Window Help ~ aya ® 5a %e |'E- se
chuột lên & BÉ #8 1á au È8 = `
Zi š Name ~ | Value Class |
bién dé HHA 1.5708 double
2 H5 1 double
xem dữ FA x <1x13 double> double
liệu (hoặc ty <1x13 double> double
thay đổi
giá trị)
Hình 1.3: Cửa số Workspace
Ngồ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 nut save
Vi du: khi chọn biến (giả sử là biến b) rồi click (hoặc click chuột vào
Trang 15[4 Variable Editor - b Lo | © zee)
File Edit View Graphics Debug Desktop Window Help ».ax
4 2B) S| BB -| of -| te stack Base HO8 (0) EH b <1x4 double> 2 3 4 5 6 0.5000) 1 1.5000 2 ^
Hình 1.4: Cửa số Variable 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à I by 4 (tức là một hàng và 4 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 va kiéu dif liéu (class) (8 bytes cho mỗi phần tử dữ liệu kiéu double
cu thé là 24 bytes danh cho b va 8 bytes danh cho a)
1.1.2.4 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 đưới đạ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
- Dang ham function: co biến đữ liệu vào và biến ra
Trang 161.2.1 Khái niệm
Ả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 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 hon
1.2.2 Các kiểu ảnh trong Matlab
1.2.2.1 Anh duoc dinh chi sé (Indexed Images) 0.1211 0.1211 0.1416 0.1807 0.2549 0.1729 4 5 5 5 & 5& 0.2197 0.3447 0.1807 5 4 5 5 6 0.1611 0.1768 0.1924 5 5 B5 0 Eh 0.2432 0.2471 0.1924 5 5 5 5 11 if Pe 0.2119 0.1963 0.2002 8 11 11 26 33 20 0.2197 0.2432 0.2588 11 20 33 33 58 37 Indices Colour map Hình 1.5: Ảnh được định chỉ số
Ảnh được biểu điễn bởi hai 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, uintl6 hodc kiéu double Ma tran màu là một ma trận kích thước mx3 gồm các thành phần thuộc kiểu double cĩ giá trị trong khoảng [0,1] Mỗi hàng của ma trận xác định thành phần red, green và 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 ảnh cho biết màu của điểm ảnh đĩ nằm ở hàng nào trong ma trận mau
Trang 17229 232 236 236 255 255 90 67 182 255 199 255 132 162 234 234 251 37 129 150 163 235 230 94 189 170 152 161 130 132 147 122
Hinh 1.6: Anh grayscale
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ể một trong các kiểu uint8, uintl6, hoặc double Ảnh biểu diễn theo kiểu này cịn gọi là ảnh “trắng đen” 1.2.2.3 Ảnh nhị phân 6eooooe= oooo OF oo oO orr oo°o or oco$0o » OCOac OO Hình 1.7: Ảnh nhị phân
Ảnh được biểu diễn bởi một ma trận hai chiều truộc kiểu logical Mỗi điểm ảnh chỉ cĩ thể nhận một trong hai giá trị là 0 (đen) hoặc 1 (trắng)
Trang 1849 55 56 57 52 53 64 76 82 79 78 78 66 80 77 80 87 77 5B 60 60 58 55 57 93 93 91 91 86 86 81 93 96 99 86 85 58 58 54 53 55 56 88 82 88 9O 88 89 83 83 91 94 92 88 83 78 72 69 68 69 125 119 113 108 111 110 135 128 126 112 107 106 88B 91 91 8 83 82 137 136 132 128 126 120 141 129 129 117 115 101 69 76 83 78 76 75 105 108 114 114 118 113 95 99 109 108 112 109 61 69 73 78 76 76 96 103 112 108 111 107 84 93 107 101 105 102 Hinh 1.8: Anh RGB
Trang 19CHƯƠNG II: CÁC HÀM XỨ LÍ ẢNH TRONG MATLAB
2.1 Đọc và ghi dữ liệu ảnh 2.1.1 Ham imread
Hàm imread đọc các file ảnh với bất kì các định dang ảnh đã biết hiện nay và lưu lại dưới dạng một ma trận biểu diễn anh trong matlab
Cú pháp: A=imread (filename,fmt)
Ví dụ: A=imread(‘E:\anh\ bonghong.jpg’) 2.1.2 Ham imwrite
Ham imwrite cho phép lưu một ảnh biểu diễn bằng một ma trận trong matlab thành một file ảnh dưới một trong các định dạng đã biết
Cu phap: imwrite (A,filename,fmt)
Ham 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 bít, hàm imwrite tạo một file ảnh 1 bít Nếu định dạng ảnh ra được chỉ rõ là khơng trợ giúp ảnh I bít ( như JPEG ), ham imwrite chuyền ảnh tới một ảnh thuộc lớp uinf8
- Uint8: Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bít, 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 bít (PNG hoặc TIFF), hàm ímwrite tạo một ảnh 16 bít Nếu định dạng ảnh ra
khơng trợ giúp ảnh 16 bít, hàm chuyên đổi dữ liệu ảnh tới lớp uint8 va tao
một ảnh 8 bit
- Double: Matlab chuyên dữ liệu ảnh tới dạng uinf8 và tạo một ảnh
Trang 202.1.3 Ham imfinfo
Ham imfinfo ding dé xem cac thơng số của một file ảnh nào đĩ Cu phap: imfinfo (filename,fmt)
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 đạ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 anh: RGB, chi sé 2.2 Cac ham hién thi anh trong Matlab
Matlab cung cấp hai hàm hiển thi cơ bản là image va imagesc Ngoai
ra trong IPT cũng cĩ hai hàm hiển thị ảnh khác, đĩ là imview va imshow - Hàm image (X, Y, C) hiển thị hình ảnh biểu diễn bởi ma trận C kích thước M x N lên trục toạ độ hiện hành X, Y là các vectơ xác định vi tri các pixel C(1,1) và C(M,N) trong hệ trục hiện hành
- Hàm imagesc cĩ chức năng tương tự như hàm image, ngoại trừ việc dữ liệu ảnh sẽ được co dãn đề sử dụng tồn bộ bản đồ màu hiện hành
Trang 21- Hàm imshow cũng tạo một đối tượng đồ hoạ thuộc loại image và hiển thị ảnh trên một figure Hàm imshow sẽ tự động thiết lập các giá trị của các đối tuong image, axes va figure để thực hiện hình ảnh
2.3 Chuyển đổi giữa các kiểu dữ liệu, kiểu anh
2.3.1 Chuyến đổi giữa các kiếu dữ liệu ảnh
Matlab cung cấp sẵn các hàm thực hiện chuyên kiêu cho các ma trận biểu diễn ảnh, bao gồm: im2double, im2uint8, và im2uint16
Tuy nhiên khi thực hiện chuyên kiểu giữa các dữ liệu ảnh cần lưu ý
một số điều sau:
- Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ
liệu dùng ït bit hơn thì một số thơng tin chỉ tiết về bức ảnh ban đầu sẽ bị mắt - Khơng phải lúc nào cũng cĩ thê chuyển đổi kiểu dữ liệu đối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác định một địa chỉ trong bản đồ màu chứ khơng phải là giá trị màu, do đĩ khơng thể lượng tử hố được
2.3.2 Chuyến đổi giữa các kiéu ánh
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:
- Dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng Tạo
một ảnh chỉ số từ một ảnh RGB
- Gray2ind: 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
Trang 22- 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ệ đữ 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 2.4 Số học ánh
Số học ảnh sự ứng dụng của các phép tố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
2.4.1 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 tố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
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 gồm Inf ) thì được gán là 255
Trang 23K = imdivide(imadd(112), 2);
Khi được sử dụng với kiểu uint8 hay uintl6, mỗi hàm số học cắt kết quả của nĩ trước khi truyền nĩ cho hàm tiếp theo Sự cắt bỏ này cĩ thê giảm đáng kể lượng thơng tin trong anh 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 tốn là sử dụng hàm imlincomb Ham này thi hành tất cả các phép tố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,1.5,12); 2.5 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
2.3.1 Bảng thuật ngữ
Tên thuật ngữ Diễn giải
Răng cưa xuât hiện khi giảm kích thước ảnh Khi kích thước của một ảnh bị giảm, các pixel
Aliasing gốc bị lấy mẫu giảm để tạo ra ít pixel hơn
Aliasing xảy ra như kết quá của việc giảm kích thước ảnh thường xuất hiện dưới dạng bậc thang (đặc biệt trong các ảnh cĩ độ tương phản cao)
Antialiasing Cac bién phap chong rang cua cho anh
Giá trị của cac pixel ra được tính tốn từ giá Bicubic interpolation | trị trung bình của 4x4 pixel lân cận
Gía trị của pixel ra được tính tốn từ giá trị Bilinear interpolation 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
Trang 24
Interpolation Quá trình được sử dụng đê ước lượng gia tri ảnh ở một vị trí giữa các pixel
Nearest- Các giá trị pixel ra được gán giá trị của pixel neighbor interpolation | nằm trong một vùng gần pixel đĩ
2.5.2 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 dé tinh gia tri cho cac pixel thém vao Ham imresize va imrotate sử dụng nội suy hai chiều dé thực hién thao tac cua minh Ham improfile cing st dung su ndi suy hoa
2.5.2.1.Cac phuong phap nội suy
Toolbox xt ly anh cung cấp 3 cách nội suy hố:
- Nội suy các pixel gần nhất (nearest —neighbor interpolation) -_ Nội suy song tuyến tinh (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 tố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: - 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 252.5.2.2 Nội suy với các kiểu ảnh khác nhau
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 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 tốn được cho pixel trong ảnh ra sẽ khơng hồn tồn là 0 hoặc 1
2.5.3 Thay đổi kích thước ánh
2.5.3.1 Chỉ ra kích thước của ảnh kết quả
Sử dụng hàm imresize, ta cĩ thể chỉ ra kích thước của ảnh kết quả theo hai cách:
- Chỉ ra hệ số phĩng đại được sử dụng trên ảnh
Để mở rộng một ảnh, chỉ ra hệ số phĩng đại lớn hon 1 Để thu nhỏ một ảnh, chỉ ra hệ số phĩng đại nằm giữa 0 và I Chang hạn, lệnh sau tang kích thước của ảnh I lên 1.25 lần: 1= imread('circuit.tif); J = imresize(I,1.25); imshow(1) figure, imshow(J) - Chỉ định kích thước của ảnh ra
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
Trang 26Chí ý: 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
2.5.3.2 Chỉ ra 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) dé tinh 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 ímresize sử dụng phương pháp nội suy song tuyến tính: Y=imresize(X, [100 150],’bilinear’); 2.5.3.3 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é chi 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ế
Trang 27Để quay một ảnh, sử dụng hàm imrotate Hàm này chấp nhận hai tham số chính:
- Ảnh cần quay - Gĩc quay
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 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(1,35 ); Cú pháp của nĩ như sau: B= imrotate(A,angle) B = imrotate(A,angle,method) B = imrotate(A,angle,method,bbox) Diễn giải:
- B= imrotate(A,angle): Quay anh 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,anglemethod): 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,anglemethod,bbox): Quay ảnh A một gĩc angle độ Tham số bbox chỉ ra hộp biên của ảnh trả về
Ví dụ sau quay một ảnh 35 độ ngược chiều kim đồng hồ sử dụng nội suy song tuyến tính:
1= imread('circuit.tif); J= imrotate(I35, bilinear );
Trang 28figure, imshow(}; 2.5.5 Xén ảnh Để trích một vùng chữ nhật của một ảnh, sử dụng hàm imcrop Hàm imcrop chap nhan hai tham số chính: - Ảnh cần xén - Các gĩc của hình chữ nhật xác định vùng xén
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, di chuyển chuột đề chọn vùng xén Khi chọn xong thi nha chuột
Trang 29Ta cũng co thé chi 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:
12 = imcrop(1rect) X2 = imcrop(X,map,rect) RGB2 = imcrop(RGB,rect)
Trong đĩ: Rect là một véctơ bốn phần tử dang [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 véc tơ 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 phu, ham imcrop sé tra lai thong tin về vùng chữ nhật được chọn và hệ toạ độ của ảnh vào Chắng hạn:
JA,rect] = imcrop( ) [xy,A,rect] = imcropt )
A la anh ra, x va y la Xdata va Ydata cua anh vao
Trang 30Toolbox xử lý ảnh của Matlab gồm cĩ 4 hàm khơi phục ảnh mờ bao gơm:
- Deconvwnr: Su dung b6 loc Wiener
- Deconvreg: Sử dụng bộ lọc được quy tắc hố - Deconvlucy: Sử dụng giải thuật Lucy-Richardson - Deconvblind: Sử dụng giải thuật blind deconvolution 2.6.1 St dung b6 loc Wiener
Su dung ham deconvwnr để khử mờ một ảnh sử dung b6 loc Wiener Bộ lọc này cĩ thể được sử dụng rất hiệu quả khi đặc tính tần số của ảnh và nhiễu phụ là đã biết ít nhất là vài bậc Trong trường hợp khơng cĩ nhiễu, bộ lọc Wiener giảm tới bộ lọc đảo lý tưởng Ví dụ: Đọc một ảnh vào khơng gian làm việc (để tăng tốc quá trình khử mờ, ví dụ này cũng cắt ảnh) 1= imread(peppers.png ); T= 1(10+[1:256],222+[1:256],:); figure;imshow(T);title("Original Image’); Tao ham PSF LEN = 31; THETA = 11; PSF = fspecial(‘motion',LEN, THETA); Tao su mo gia trén anh
Blurred = imfilter(I,PSF, ‘circular’, conv’); figure; imshow(Blurred);title('Blurred Image’); Khử mờ cho ảnh
Trang 31title(‘Restored, True PSF');
2.6.2 Sứ dụng bộ lọc được quy tắc hố
Sử dụng hàm đeconvreg để khử mờ một ảnh sử dụng bộ lọc được quy
tắc hố Một bộ lọc kiểu này cĩ thể được sử dụng hiệu quả khi thơng tin về
nhiễu phụ được biết một cách hạn ché Ví dụ:
Đọc một ảnh vào trong khơng gian làm việc Ví dụ này sẽ cắt ảnh để giảm kích thước của ảnh
I = imread( tissue.png ); I= I(125+[1:256],1:256,:);
figure; imshow(I); title(‘Original Image’);
Tao ham PSF dé lam mé anh
PSF = fspecial(‘gaussian'‘,11,5); Làm mờ ảnh và thêm nhiễu vào ảnh
Trang 322.6.3 Sử dụng giải thuật Lucy-Richardson
Sử dụng hàm đeconviucy để khử mờ một ảnh bằng cách sử dụng giải thuật Lucy-Richardson Hàm này cĩ thể được sử dụng hiệu quả khi biết được
hàm PSF nhưng biết ít về nhiễu tác động phụ lên ảnh
Hàm đeconvlucy thi hành vài sự điều hợp tới giải thuật Luey- Richardson St dụng những điều hợp này ta cĩ thể:
- Giảm tác động của sự mở rộng nhiễu trên một ảnh khơi phục - Giải thích được tính khơng đồng nhất của chất lượng ảnh - Điều khiển camera đọc hết nhiễu nền
- Cải thiện độ phân giải của ảnh phục hồi bằng cách lấy mẫu phụ
Vi du: Su dung ham deconvlucy để khử mờ một ảnh Đọc một ảnh vào khơng gian làm việc 1 = imread(‘board.tif’); 1 = 1(50+[1:256],2+[1:256],:); figure;imshow/(1);title(‘Original Image’); Tao ham PSF dé lam mé anh PSF = fspecial(‘gaussian',5,5);
Tao mé anh va thém nhiéu vao anh
Blurred = imfilter(I,PSF,'symmetric’, conv’); V=0.002;
Trang 33Sử dụng hàm đevconlucy để khơi phục ảnh gốc, chỉ ra hàm PSF được
sử dụng để tạo mờ và giới hạn số vịng lặp tới 5 (mặc định là 10)
luc1 = deconvlucy(BlurredNoisy,PSF,5); figure; imshow(luc);
title(‘Restored Image’); 2.6.4 Sử dụng giải thuật blind deconvolution
Sử dụng hàm đeconvblind để khử mờ một ảnh Giải thuật này cĩ thể
được sử dụng hiệu quả khi khơng cĩ thơng tin về mờ hoặc nhiễu được biết Ví dụ: Tạo một ảnh giả mờ và sau đĩ dùng hàm đeconvblind để khử mờ
Đọc một ảnh vào khơng gian làm việc
I= imread('cameraman.tif);
figure; imshow(I); title(‘Original Image’);
Tao ham PSF dé lam mo anh
PSF = fspecial(‘motion’,13,45); Figure, imshow(PSF,[], 'notruesize’); title(‘Original PSF’);
Tạo mờ trên ảnh
Blurred = imfilter(1,PSF, 'circ’,'conv');
figure; imshow(Blurred); title(‘Blurred Image’); Khử mờ ảnh, tạo một sự ước lượng ban đầu cho kích thước của PSF Để quyết định kích thước của PSF, kiểm tra ảnh mờ và đo chiều rộng của mờ (theo pixel) xung quanh một vật cĩ hình dạng nhất định
Trong ứng dụng thực, ta cĩ thể cần chạy lại hàm deconvblind, kiêm tra PSF với các kích thước khác nhau cho tới khi nhận được một kết quả ổn định
Trang 34INITPSF = ones(size(PSF));
[J P]= deconvblind(Blurred,INITPSF,30); figure; imshow()); title('Restored Image’); figure; imshow(P,[], ‘notruesize');
title(‘Restored PSF');
Mặc dù hàm đeconvblind cĩ thể khử nhiễu ảnh tới một khoảng rất
rộng, hiện tượng rung xung quanh vùng tương phản cường độ trong ảnh phục
hồi là khơng ổn định Bước tiếp theo trong ví dụ lặp lại quá trình khử mờ, cố
gắng đạt tới một kết quả tốt hơn bằng cách: - Tránh vùng tương phản cao từ sự xử lý - Chỉ ra một giá trị PSF tốt hơn - Tạo một mảng WEIGHT để loại trừ vùng tương phản cao từ thao tác khử mờ 2.7 Màu sắc 2.7.1 Bảng thuật ngữ Tên thuật ngữ Diễn giải Approximation
Phương pháp nhờ đĩ phân mêm lựa chọn sự thay thế màu sắc trong một sự kiện mà trực tiếp thích hợp khơng thê tìm thấy Phương pháp xấp xỉ được thảo luận ở đây là ánh xạ bản đồ màu, lượng
tử hố đồng nhất và lượng tử hố với biến động
nhỏ nhất
Indexed image
Ảnh mà các giá tri pixel của nĩ được đánh số trực tiếp trong một bản đồ màu Trong Matlab, một ảnh chỉ số được đại điện bởi một mảng thuộc lớp uint8, uintI6 hoặc double Bản đồ màu luơn là một mảng mx3 thuộc lớp double
Trang 35
Intensity image
Anh bao gom cac gia trị cường độ Trong Matlab, anh cuong độ được đại diện bởi một mảng thuộc lớp uint8,uint16 hoặc double Trong
khi ảnh cường độ khơng được lưu trữ với bản đồ
màu, Matlab sử dụng bản đồ màu hệ thống đề hiển thị chúng
Ảnh mà trong đĩ mỗi pixel được chỉ định rõ 3 màu R,G,B Trong Matlab, một ảnh RGB được
RGB image đại diện bởi một ma trận mxnx3 thuộc ldp uint8, uint16 hoac double
Screen bit depth Số lượng bít trên một pixel màn hình
Screen color resolution So lượng các màu riêng biệt cĩ thê được tạo ra bởi màn hình
2.7.2 Làm việc với các chiều sâu bít màn hình khác nhau
Hầu hết các màn hình máy tính sử dụng 8,16,24 bít trên một pixel man hình Số lượng bít trên một pixel màn hình quyết định độ sâu bít màn hình Độ sâu bít màn hình quyết định đến độ phân giải màu sắc của màn hình đĩ là bao nhiêu màu sắc riêng biệt màn hình cĩ thê tạo ra
Trang 36- 8 bit hién thị trợ giúp 256 màu Một màn hình 8 bít cĩ thể sản sinh ra bất kì màu sắc nào cĩ trên màn hình 24 bít nhưng chỉ 256 màu cĩ thể xuất hiện cùng lúc
- Ché độ hiển thị 16 bít thường sử dụng 5 bit cho mỗi thành phần màu dẫn đến 32 mức cho mỗi màu R,G,B Do đĩ, nĩ trợ giúp 32768 màu riêng
biệt Một vài hệ thống sử dụng các bít phụ để tăng số lượng mức của màu G Trong trường hợp này, số lượng màu khác nhau được trợ giúp là 64536
- Chế độ hiển thị 24 bít sử đụng 8 bít cho mỗi màu R, G,B dẫn đến
256 mức cho mỗi màu này, do đĩ nĩ trợ giúp 16777216 màu khác nhau
- Chế độ hiển thị 32 bít sử dụng 24 bít để lưu thơng tin màu và sử
dụng 8 bít cịn lại để lưu dữ liệu trong suốt 2.7.4 Chọn độ sâu bít màn hình
Phụ thuộc vào hệ thống, ta cĩ thể chọn độ sâu bít màn hình ta muốn
Nhìn chung, chế độ hién thi 24 bít tạo ra kết quả tốt nhất Nếu ta muốn sử
dụng một độ sâu thấp hơn 16 bít thường được sử dụng hơn là 8 bít Tuy
nhiên, hiển thị 16 bít cĩ một số giới hạn
2.7.5 Giám số lượng màu trong một ánh
Ta sẽ xem xét làm cách nào để giảm số lượng màu trong một ánh chỉ số hoặc ảnh RGB Dithering được sử dụng để tăng số lượng màu của một ảnh
Toolbox cung cấp cho ta một số hàm sau đây đề giám màu:
- Imapprox: Giảm số lượng màu được sử dụng bởi ảnh chỉ số, cho phép ta chỉ ra số lượng màu trong bản đồ màu mới
- Rgb2ind: Convert một ảnh RGB thành một ảnh chỉ số, cho phép ta chỉ ra số lượng màu chứa trong bản đồ màu mới
- Dithering: Thay đơi màu sắc của các pixel ở một vùng lân cận vì vậy màu sắc trung bình của mỗi vùng xấp xỉ màu gốc
Trang 37- Cu pháp của nĩ như sau: [Y,newmap] = imapprox(X,map,n) [Y,newmap] = imapprox(X,map,tol) Y = imapprox(X,map,newmap) [ ] = imapprox¢ ,dither_option) - Dién giai
[Y,newmap]=imapprox(X,map,n): Xấp xi các màu trong một ảnh chỉ số X được kết hợp với bản đồ màu map bằng cách sử dụng lượng tử biến đổi nhỏ nhất (minumum variance quantization) Hàm imapprox trả về ảnh chỉ số Y với bản đồ màu newmap cĩ nhiều nhất n màu
[Y,newmap]=imapprox(X,map,tol ): Xấp xi các màu trong X và map thơng qua lượng tử đều (uniform quantization) newmap chứa nhiều nhất (floor (1/tol)+1)^3 màu Tol phải nằm giữa 0 và 1
Y=imapprox(X,map,newmap ): X4p xi mau trong map bang cach sit dụng ánh xạ bản đồ màu để tìm các màu trong newmap tương hợp tốt nhất VỚI các màu trong map
Y=imapprox( ,dither_option ): cho phép hoặc cấm trộn Dither_option là một chuỗi cĩ một hoặc nhiều giá trị Giá trị mặc định được đặt trong dấu ({}) Nếu dither_option la {‘dither’} sẽ trộn nếu cần thiết để thu được một độ phân giải màu tốt hơn Nếu dither_option là (“nodither°) ánh xạ mỗi màu trong ảnh gốc tới màu gần nhất trong bản đồ màu mới Khơng cĩ phép trộn nào được thực hiện
Ví dụ:
X4p xi anh chỉ số trees.tif bằng một anh chi số khác chỉ chứa 16 màu [X, map] = imread( trees.tiƒ');
Trang 382.7.5.2 Ham rgb2ind
Hàm này dùng để convert một ảnh RGB thành một anh chỉ số Cú pháp của nĩ như sau: JX,map] = rgb2ind(RGB,tol) [X,map] = rgb2ind(RGB,n) X = rgb2ind(RGB,map) E ] = rgb2ind( ,dither_option) Diễn giải
Ham rgb2ind convert anh RGB thành ảnh chỉ số sử dụng một trong 3 cách khác nhau: lượng tử đều, lượng tử biến đổi cực tiểu và ánh xạ bản đồ màu Với tất cả các phương pháp này, rgb2ind cũng trộn ảnh trừ khi ta chỉ ra nodither trong dither_option
[X,map]=rgb2ind(RGB,tol): Convert ảnh RGB thành một ảnh chỉ số X sử dụng lượng tử đều map chứa nhiều nhất (floor(1/tol)+1)^3 màu Tol cĩ
giá trị từ 0 đến 1
[X,map]=rgb2ind(RGB,n): Convert anh RGB thành ảnh chỉ số X sử dụng lượng tử biến đổi cực tiểu, map chứa nhiều nhất n màu, n phải nhỏ hơn
hoặc bằng 65536
X=rgb2ind(RGB,map ): Convert ảnh RGB thành ảnh chỉ số X với bản đồ màu map bằng cách hợp các màu trong RGB với các màu gần nhất trong bản đồ màu map, size(map,1) phải nhỏ hơn hoặc bằng 65536
[ ]=rgb2ind( ,dither_option ): Cho phép hoặc cẩm trộn,
dither_option là một chuỗi Các giá trị của dither_option giống như trong ham imapprox
2.7.5.3 Ham Dithering
Trang 39rgb2ind và imapprox cả hai đều thực hién dithering dé ting sé lượng màu trong ảnh kết quả Dithering thay đổi màu sắc của các pixel ở một vùng lân cận vì vậy, màu sắc trung bình của mỗi vùng xắp xi màu gốc
Vi dụ: Nạp một ảnh 24 bít, sau đĩ sử dung ham rgb2ind để tạo ra hai ảnh chỉ số chỉ với § màu cho mỗi ảnh: Đọc một ảnh và hiền thị nĩ: rgb=imread('onion.png ); imshow(rgb); Tạo một ảnh chỉ số với 8 màu mà khơng trộn JX no _dither,map]=rgb2ind(rgb,8, nodither `); figure, imshow(X_no_dither,map); Tạo một ảnh chỉ số 8 màu cĩ trộn [X_dither,map]=rgb2ind(rgb,8, dither ); figure, imshow(X_dither,map); 2.8 Phan tich va lam giau anh 2.8.1 Bảng thuật ngữ Tên thuật ngữ Diễn giải
Bộ lọc mà tính chât của nĩ biên đơi qua Adaptive filter một ảnh phụ thuộc vào đặc tính địa phương của
các pixel trong ảnh
Contour Đường trong một ảnh dọc theo đĩ giá trị cường độ của các pixel ảnh bằng hằng sé
Đường cong mà theo đĩ độ biên đơi cường
độ các pixel ảnh rất nhanh Edge thường được kết Edge hợp với vùng biên của một đối tượng trong một cảnh Sự phát hiện các edge được sử dụng để
Trang 40
phân biệt các edge trong một ảnh
Property Sự đo đạc định lượng của một ảnh hoặc một vùng ảnh
Đơ thị được sử dụng trong phân tích ảnh chỉ ra sự phân bố của cường độ của một ánh Ta cĩ thể sử dụng thơng tin này trong một histogram Histogram để lựa chọn một thao tác làm giàu ảnh thích hợp Chẳng hạn, nếu đồ thị histogram của một ảnh chỉ ra rằng vùng các giá trị cường độ nhỏ, ta cĩ thê sử dụng một hàm điều chỉnh cường độ để mở rộng các giá trị qua một vùng rộng
Noise Các sai sơ trong quá trình thu thập ảnh dẫn đến việc các giá trị pixel khơng phản ánh đúng cường độ của cảnh thực
Một tập hợp các giá trị cường độ lây từ các điểm cách đều nhau dọc theo một đoạn đường Profile thắng hoặc đường gấp khúc trong một ảnh Với các điểm khơng nằm ở tâm của pixel, giá trị này được nội suy
Quadtree decomposition Kĩ thuật phân tích ảnh băng cách chia ảnh ra nhiều khối giống nhau
2.8.2 Các giá trị pixel và thống kê
Toolbox xử lý ảnh cung cấp một số hàm trả lại thơng tin về đữ liệu tạo nên một ảnh Những hàm này trả lại thơng tin về dữ liệu ảnh theo nhiều dạng khác nhau bao gồm: