Học viện công nghệ bưu chính viễn thông Khoa Công nghệ thông tin ********
BÁO CÁO XỬ LÝ ẢNH ĐỀ TÀI: PHÂN VÙNG V ỚI TÁCH NGƯỠ NG Ự ĐỘNG NG TỰ ĐỘ
Giáo viên giảng dạy: Phạm Việt Hưng. Nhóm sinh viên thực hiện: Nhóm 1: - Lớ p: p: D09CN2 Nguyễn Thị Bích Hoàng Thị Ngọc Nguyễn Thị Thi Nguyễn Thị Trâm Nguyễn Hải Yến 1
Mục lục BACKGROUD BACKGROUD ............................................................................................................................ 4
Cơ sở thực nghiệm .................................................................................................................... 8 Giới thiệu chung v ề phân vùng ảnh. ................................................................................ 8
I.
II. Đôi điều về phân vùng ảnh theo ngưỡ ng......................................................................... 9
NGƯỠNG........................................................................................10 PHÂN VÙNG ẢNH THEO NGƯỠ I.
Làm trơn ảnh – Làm trơn histogram – Chọn ngưỡng dựa vào biểu đồ . .........................10
II.
Thuật toán đẳng điệ u......................................................................................................13
III.
Thuật toán đố i xứng nền. ............................................................................................18
IV.
Thuật toán tam giác ....................................................................................................24 ....................................................................................................2 4
V. Kĩ thuật tìm ngưỡ ng tự động. .........................................................................................29 1.
Phân vùng với ngưỡng toàn cục. ...............................................................................30
KẾT LU ẬN CHUNG...............................................................................................................35 PHỤ LỤC ..................................................................................................................................35 B ẢNG KẾT QU Ả THỬ NGHIỆM ...............................................................................................42
2
Mục lục BACKGROUD BACKGROUD ............................................................................................................................ 4
Cơ sở thực nghiệm .................................................................................................................... 8 Giới thiệu chung v ề phân vùng ảnh. ................................................................................ 8
I.
II. Đôi điều về phân vùng ảnh theo ngưỡ ng......................................................................... 9
NGƯỠNG........................................................................................10 PHÂN VÙNG ẢNH THEO NGƯỠ I.
Làm trơn ảnh – Làm trơn histogram – Chọn ngưỡng dựa vào biểu đồ . .........................10
II.
Thuật toán đẳng điệ u......................................................................................................13
III.
Thuật toán đố i xứng nền. ............................................................................................18
IV.
Thuật toán tam giác ....................................................................................................24 ....................................................................................................2 4
V. Kĩ thuật tìm ngưỡ ng tự động. .........................................................................................29 1.
Phân vùng với ngưỡng toàn cục. ...............................................................................30
KẾT LU ẬN CHUNG...............................................................................................................35 PHỤ LỤC ..................................................................................................................................35 B ẢNG KẾT QU Ả THỬ NGHIỆM ...............................................................................................42
2
MỞ ĐẦU Một
trong các bướ c then chốt trong x ử lý ảnh số đó là phân vùng ảnh.Vớ i mong
muốn cuốn tài liệu này tr ở nên có ích cho b ạn
đọc muốn tìm hiểu bước đầu về kĩ
thuật phân đoạn ảnh trong môn h ọc Xử Lý Ảnh. Tài liệu này sẽ giớ i thiệu đến mọi ng, hi v ọng đây sẽ là ngườ i một số phương pháp phân vùng ảnh dựa theo ngưỡ ng,
hành trang đầu tiên để các bạn chạm đến cánh cửa tri th ức, tạo nguồn cảm hứng để bạn đi sâu tìm hiể u về môn học thu vị này. Mục tiêu của cuốn tài liệu: -
Giúp người đọc hiểu đượ c tầm quan tr ọng của Xử lý ảnh nói chung và phân vùng ảnh nói riêng.
-
Nắm được sơ bộ về phân vùng ảnh theo ngưỡ ng. ng.
-
Hiểu và áp d ụng
ng t ự động: thuật toán đẳng điệu, đượ c thuật toán tìm ngưỡ ng
ng toàn cục…. vào xử đối x ứng n ền, làm trơn histogram, tam giác, tìm ngưỡ ng lý ảnh. Vớ i những mục tiêu như trên, tài liệ u này g ồm có các ph ần chính sau: -
Phần Backgroup: Vài nét v ề Xử lý ảnh
-
Cơ sở thực nghiệm: Giớ i thiệu chung về phân vùng ảnh và đôi điều v ề phân vùng ảnh theo ngưỡ ng. ng.
-
Phân vùng vùng
ng: Trình bày m ột số kĩ thuật điển hình trong phân ảnh theo ngưỡ ng:
ng: làm trơn histogram, đẳng điệu, đố i xứng nền…., một ảnh theo ngưỡ ng
số vấn đề cần lưu ý trong các kĩ thuật -
ng để phân vùng ảnh. tìm ngưỡ ng
Phụ lục: phần code matlab cho các kĩ thuậ t trình bày ở phần 3.
3
-
Bảng k ết quả thực nghiệm: Đưa ra kết quả thực nghiệm ứng d ụng thuật toán
ở phần 3 vào một số loại ảnh.
BACKGROUD Xử lý ảnh là một trong nh ững chuyên ngành quan tr ọng và lâu đờ i c ủa công nghệ thông tin. X ử lý
ảnh đượ c áp dụng nhiều trong nhiều lĩnh vực khác
nhau như y họ c, vật lý, hóa h ọc, tìm kiếm tội phạm, Mục đích chung của XLA đượ c chi làm 2 ph ần: -
Biến đổi ảnh làm tăng chất lượ ng ng ảnh.
-
Tự động nhận dạng, đoán ảnh, đánh giá nộ i dung của ảnh.
Quá trình x ử lý ảnh có thể đượ c mô tả bằng sơ đồ sau:
Phân đoạn
Biểu diễn và mô tả ảnh
Tiền xử lý ảnh
Cơ sở tri thức Nhận dạng và giải thích
Thu nhận ảnh
4
-
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ẽthunhận qua các thi ết bị như camera,
sensor, máy scanner… và sau đó các tín hiệu này sẽ đượ c số hóa. Các thông số quan trọng
ng màu, dung ở bước bước này là độ phân giải, chất lượ ng
ng bộ nhớ và tốc độthunhận ảnh của các thiết bị. lượ ng -
Tiền xử lý:
Ở bướ c này, ảnh sẽ đượ c cải thiện về độ tương phản, khử
nhiễu, khử
ng ảnh trở nên tốt độ lệch… vớ i mục đích làm cho chất lượ ng
hơn nữa và thường đượ c thực hiện bở i các bộ lọc. -
Phân đoạn : phân đoạn ảnh là bướ c then chốt trong XLA. Giai đoạn này nhằm phân tích ảnh thành nh ững thành ph ần có cùng tính ch ất dựa theo biên hay các vùng liên thông. Tiêu chu ẩn để
nào đó
các định các vùng
liên thông có th ể là cùng màu, cùng mức xám hay cùng độ nhám… Mục
đích của phân đoạ n ảnh là để có một miêu t ả tổng hợ p v ề rất nhiều phần tử khác nhau cáu t ạo nên lớ nn-
ng thông tin ch ứa trong ảnh r ất ảnh thô. Vì lượ ng
trong khi đa số các ứng dụng chúng ta ch ỉ cần trích chọn một vài
ng thông tin đặc trưng nào đó, do vậ y c ần có một quá trình để giảm lượ ng khổng l ồ ấy. Quá trình này bao g ồm phân vùng
ảnh và trích chọn đặc
tính chủ yếu. -
Biểu diễn và mô 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 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ý tỏng máy tính r ất là 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 cùng ảnh dướ i dạng biên hay dướ i dạng một cùng hoàn ch ỉnh gồm tất cả 5
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 bên ngoài của
đến các đặc trưng hình dạ ng
đối tượ ng. 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ự lựa chọn 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 phải
hơn cho các xử lý về sau. Chúng ta còn
đưa ra một phương phá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. Giải thích công đoạn gán nghĩa cho một tập các đối tượng đã đượ c nhận biết. Có thể thấy r ằng không ph ải bất k ỳ một ứng dụng 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 thì chỉ dừng lại quát thì nh ững chức
XLA nào cũng bắt buộc
ở bướ c tiền xử lý. Một cách tổng
năng xử lý bao gồm nhận cả nhận dạng và giải thích
thườ ng chỉ có mặt trong hệ thống phân tích ảnh tự động, được dùng để rút trích ra nh ững thông tin quan tr ọng từ ảnh, ví dụ
như các ứng dụng nhận
dạng ký t ự quang học, nhận dạng chữ viết tay,…
Như vậy, để xử lý đượ c một bức ảnh thì phải trải qua nhi ều bướ c, nhưng bướ c quan trọng và khó khăn nhất có lẽ đó là phân đoạn ảnh.Nếu bướ c phân đoạn ảnh không tốt thì dẫn đến việc nhận diện sai lầm về các đối tượ ng trong ảnh.Trong khoảng 30 năm trở lại đây đã có rất nhiều các thuật 6
toán được đề xuất để giải quyết bài toán phân đoạn ảnh. Các thuật toán hầu hết
đều dựa vào 2 thuộc tính quan trọng c ảu mỗi điểm ảnh só với các điểm
lân cận của
nó đó là: Sự khác nhau(Dissimilarity) và gi ống nhau
(Similarity). Các phương pháp dự a trên dự khác nhau của các điểm ảnh đượ c gọi là phương pháp biên ( trên sự giống nhau cảu
boundary – based methods), còn phương pháp dựa
các điểm ảnh đượ c gọi là phương pháp miền (region
based methods). Tuy nhiên, cho đến nay các thu ật toán theo c ả 2 hướ ng này đều v ẫn chưa cho kết qu ả phân đoạn t ốt, vì cả hai phương pháp này đề u ch ỉ nắm b ắt gần
đượ c các thuộc tính cục bộ (local) của ảnh. Do đó, trong thờ i gian
đây, việc tìm ra các thu ật toán nắm bắt đượ c các thuộc tính toàn c ục
(global) của bức ảnh đã trở thành xu hướ ng. Mục
đích chính củ a nhóm em là tìm hi ểu v ề phương pháp phân đoạ n
ảnh đã có theo hướng: phân đoạ n dựa theo ngưỡ ng vớ i các thuật toán đượ c đưa ra. Từ đó so sánh khả năng cũng như điểm yếu của phương pháp.
7
Cơ sở thự c nghiệm I.
Giớ i thiệu chung về phân vùng ảnh.
Phân vùng
ảnh thường được coi là bước đầu tiên trong phân tích hình ảnh vớ i
mục
đích: Chia nhỏ một hình ảnh thành từng vùng có ý nghĩa để phục vụ cho
việc
phân tích sâu hơn. Chúng ta hi v ọng r ằng các vùng thu đượ c s ẽ tương ứng
vớ i các bộ phận vật lý ho ặc bở i hình ảnh (2-D).Để phân biệt
các đối tượ ng của một cảnh (3-D) đượ c biểu diễn
phân tích các đốitượ ng trong ảnh, chúng tacần phải
được các đốitượ ngcần quan tâmvớ i phần cònlạicủa ảnh. Những
đốitượ ng này có thể tìm ra đượ c nhờ cáck ỹ thuật phân vùng ảnh, theo nghĩa tách phần tiềncảnh ra khỏi h ậucảnh trong ảnh.Nhìn chung, phân vùng độc lập là một nhiệm vụ khó khăn trong xử lý hình ảnh kĩ thuật số.Chúng tacần phải chú ý r ằng: -
Không cók ỹ thuật phân vùng nào là vạn
năng, theo nghĩa
có thể áp dụng cho mọi loại ảnh. -
Không có k ỹ thuật phân vùng nào là hoàn h ảo.
Có thể hiểu phân vùng là ti ến trình chia ảnh thành nhi ều vùng,mỗi vùng chứa một
đối tượ ng hay nhóm đối tượ ng cùng kiểu. Chẳng hạn, một đối tượ ng có
thể là một kí tự trên một trang k ỹ thuật, một nhóm
văn bản ho ặc một đoạn th ẳng trong một bản v ẽ
các đối tượ ng có thể biểu diễn một từ hay hai đoạn thẳng
tiếp xúc nhau. Tất cả các phương pháp phân vùng hình ảnh đượ c giả định rằng: 1. Giá trị cường độ khác nhau ở các vùng khác nhau thì khác nhau.
8
2. Trong từng có giá trị
vùng, các đối tượng tương ứng đạ i di ện cho một c ảnh thì
cường độ tương tự nhau. Nghĩa là các điểm trong một vùng
ảnh có độbiến thiên giá tr ịmức xám tương đối đồng đều hay tính k ết cấu
tương đồng vì vùng ảnh là một tập hợp các điểm có cùng hoặc
gần cùng một tính chất nào đó : mứ c xám, mức màu, độnhám… Dựa
vào đặc tính vật lý của ảnh, ngườ i ta có nhi ều kĩ thuật phân vùng: phân
vùng phân vùng d ựa theo miền liên thông g ọi là phân vùng d ựa theo miền
đồng
nhất hay mi ền k ề; phân vùng d ựa vào biên gọi là phân vùng biên. Ngoài ra còn có các k ỹthuật phân vùng khác d ựa vào biên độ , phân vùng d ựa theo k ết cấu….. Xuất phát từ những
cơ sở ý tưở ng nêu trên, trong ph ạm vi cuốn tài liệu này
chúng tôi s ẽ trình bày
kĩ thuật phân vùng ảnh d ựa theo ngưỡ ng v ớ i các kĩ thuật
tìm ngưỡ ng tự động (đẳng điệu, đối xứng nền, tách ngưỡ ng tự động, tìm ngưỡ ng toàn cục, tìm ngưỡ ng cục bộ…) áp dụng trên các đối tượ ng ảnh.
II.
Đôi điều về phân vùng ảnh theo ngưỡ ng.
Phân vùng ảnh theo ngưỡ ng : -
Phân vùng theo ngưỡ ng là tách 2 v ật thể bằng một ngưỡ ng chọn tự động
-
Việc chọn ngưỡ ng này s ẽ thực hiện trên biểu đồ tần suất.
-
Và ngưỡ ng này sẽ phân biệt vùng và nền.
Ý tưởng cơ bản. -
Giả sử chúng ta có ảnh bao gồm đối tượ ng và nền. 9
-
Chúng ta giả
định là đối tượ ng và nền là hai phân ph ối thống kê
riêng biệt -
Phân phối n ền bao giờ cũng
lớn hơn rất nhiều so vớ i phân bố đối
tượ ng. -
Biểu đồ tần suất của ảnh sẽ là tổ hợ p của hai phân ph ối này.
PHÂN VÙNG ẢNH THEO NGƯỠ NG I.
Làm trơn ảnh – Làm trơn histogram – Chọn ngưỡ ng d ự a
vào biểu đồ . Trong hầu h ết
các trườ ng h ợp, ngưỡng đượ c ch ọn t ừ lược đồ độ sáng
của vùng hay ảnh cần tự
phân đoạn. Có rất nhiều kĩ thuật chọn ngưỡ ng
động xuất phát từ lược đồ xám {h[b] | b=0, 1, …… -1} đã đượ c
đưa ra. Những kĩ thuật phổ biến sẽ được trình bày dưới đây. Những kĩ thuật này có thể tận dụng những lợ i thế do sự làm trơn dữ liệu lược đồ
ban đầ u mang lại nhằm lo ại b ỏ những dao động nhỏ về độ sáng. Tuy nhiên các thu ật toán làm trơn cần phải c ẩn th ận, không đượ c làm dịch chuyển các vị
trí đỉnh của lược đồ. Nhận xét này dẫn đến thuật toán
làm trơn dưới đây:
Trong đó W là lẻ và W thườ ng là 3 hoặc 5. 10
Trướ c khi phân vùng ảnh thườ ng biểu đồ tần suất ảnh sẽ đượ c làm trơn. Hàm làm trơn biểu đồ tần suất là hàm: b = histsmooth (a,w)
với a là histogram đầ u vào
w là chiều rộng của hàm smooth
thì b là histogram sau khi đã làm trơn. Ví dụ minh họa.chọn W =5.
11
12
II.
Thuật toán đẳng điệu. -
Thuật toán lặp do Ridler và Calvard đưa ra.
-
Đồ thị tấn xuất được chia ra làm 2 đoạ n bằng một giá trị ngưỡ ngθ0, giá trị này là giá tr ị nằm giữa của thang tần suất của ảnh.
-
Giá thị trung bình mẫu mf,0 c ủa
đối tượ ng và mb,0 c ủa n ền đượ c
tính toán theo công th ức:
-
mf,k+1 đượ c tính vớ i Gmin = 0 và Gmax = θk
-
mb,k+1 đượ c tính với Gmin = θk+1và Gmax = 255
-
Ngưỡng θk được tính như sau:
13
-
Thuật
toán đượ c lặp đi lặp lại cho đến khi θk = θk+1 thì ngưỡ ng
đượ c chọn là ngưỡng không đổi này Hàm t =ridandcal (a)
là hàm tìm ngưỡ ng dựa vào thuật toán đẳng
điệu vớ i:
với a là histogram đầ u vào
t là ngưỡng thu đượ c từ thuật toán đẳng điệu
Hình ảnh minh h ọa: phân vùng
đẳng điệu để tìm ngưỡ ng.
14
ảnh theo ngưỡ ng sử dụng thuật toán
15
16
17
III. Thuật toán đối xứ ng nền. -
Chúng ta gi ả
định là phân ph ối nền rất lớ n so vớ i phân phối đối
tượ ng và hai phân ph ối này là đối xứng. -
Và nền là sáng và đối tượ ng là tối
-
Vì vậy đỉnh maxp có th ể coi là đỉnh của phân phối của nền
18
-
Vì vậy bằng việc tính giá tr ị a sao cho a ch ỉ
định mốc 1-p% của
nền tính từ maxp -
Ta có thể lấy đối xứng sang qua maxp để
có đượ c ranh rớ i p% của
đối tượ ng nền và là ranh gi ới xác định sự phân chia -
T = maxp-(a-maxp)
-
Giả sử chúng ta chọn p% là 95% thì chúng ta s ẽ tính sao cho di ện tích từ a đến max là bằng 5% của điện tích từ maxp đến max.
-
Sau đó lấy đối xứng qua maxp vì vậy diện tích từ T đến max sẽ là 95% tổng diện tích của phân ph ối nền, vì v ậy T sẽ là ngưỡ ng phân tách nền và đối tượ ng
-
Hàm t = symbg(a,b,p) là hàm tìm ngưỡ ng d ựa theo thuật toán đối xứng nền vớ i:
với a là histogram đầ u vào
b =1 nếu nền sáng hơn
b=0 nếu nền tối hơn
p là tỉ lệ phần trăm ta muố n giữ lại nền (ví d ụ p=95)
t là ngưỡng thu đượ c từ thuật toán đối xứng nền
19
Hình ảnh minh h ọa:
ảnh phân vùng theo ngưỡ ng dựa vào thuật toán
đối xứng nền. a. (b=1vì nền sang hơn vậ t,p=95)
20
b. Chọn b=1, p=15
21
Chọn b=1, p = 25.
22
23
Nhận xét: -
Thuật toán áp d ụng t ốt cho các ảnh có histogram chia làm 2 ph ần rõ rệt (một phần cao, một phần thấp),
đối vớ i những ảnh có
histogram luôn bi ến thiên nhi ều lần thì không áp d ụng đượ c. -
Khó để chọn giá trị p.
IV. Thuật toán tam giác -
Thuật toán tam giác do Zack đề xuất
-
Thuật
toán này cũng sử dụng ý tưởng như thuật toán trên, đó là
tìm ranh gi ớ i giữa phân phối của nền và đối tượ ng.
24
-
Trong thuật toán này thì cách xác đị nh là k ẻ một đường Δ từ
đỉnh
có số điểm ảnh bằng max tới điểm có số điểm ảnh là min -
Rồi tìm vị trí b sao cho d t ừ Δ đến Hb là max
-
Viết hàm t = triangle (a,b)
là hàm tìm ngưỡ ng theo thuật toán tam
giác, trong đó:
với a là histogram đầ u vào
b =1 nếu nền sáng hơn
b=0 nếu nền tối hơn
t là ngưỡng thu đượ c từ thuật toán tam giác
Hình ảnh minh h ọa:
ảnh phân vùng theo ngưỡ ng dựa vào thuật toán
tam giác. b=1 vì nền sáng hơn.
25
26
27
Chọn b=1
Chọn b=0.
28
Nhận xét: -
Chỉ áp dụng đượ c vớ i một số ảnh nhất định. Đối vớ i những ảnh có histogram bi ến thiên nhi ều thì việc phân vùng, xác định đối tượ ng
khó khăn. V.
Kĩ thuật tìm ngưỡ ng tự động.
Kỹ thuật biến
đổi ảnh và so sánh biên độ các điểm ảnhvớ imức
ngưỡ ng đượ csửdụng khárộng rãi trong các phương pháp phân vùng
ảnh. Trong trườ nghợ ptổng quát, quá trìnhx ử lý ngưỡ ng là quá
trình so sánh ảnhvớ i hàm T: 29
T = T [x, y, p(x, y), f(x, y)] f(x,y)- giá tr ịmức xámtại tính chấtcủa vùng
điểm (x,y), p(x,y) - hàm bi ểu diễn
ảnh xung quanh điểm (x,y), vídụ, giá trịmức
xám trung bìnhc ủa vùng
ảnh, có tâm là điểm (x,y).Kết quả so
sánh đượ ctổnghợ p trên ảnh g(x,y) theo quy lu ật sau:
{ Chúng tagọi
các điểm ảnh trong g(x,y) có giá tr ịbằng 1 là các
điểm ảnh thuộc vật thể (hay vùng ảnh chi tiết),các điểm có giá trịbằng 0sẽ thuộc vùng ảnh nền.Nếu T chỉ phụ thuộc vào f(x,y) và
không thay đổi trong toànb ộ quá trình xử lý ảnh thì T đượ c gọi là ngưỡ ng toàn cục.Nếu T phụ thuộc vào toạ độ không gian (x,y) tag ọi
T là ngưỡ ng c ục b ộ.Nếu ngưỡ ng c ục b ộ T phụ thuộc
vào p(x, y) hay
nói cách khác, T thay đổ i theo tính chất của từng
vùng ảnh, ta gọi mức T là ngưỡ ng thích nghi.
1. Phân vùng với ngưỡ ng toàn c ục. Phương pháp phân vùng theo ngưỡ ng toàncục là phương pháp khá đơn giản, khivật sánhvớ imộtmức
thể
vànền
đượ c
táchbằng
cách
so
ngưỡ ng T.Mức độ chính xáccủa phương pháp
này phụ thuộc vào tính ch ấtcủa
ảnh, vídụ:nếu ảnh có histogram
đượ c chia thành các vùng rõ rệt (còngọi là các mode) thì vi ệc lựa chọn
ngưỡ ng sẽ tương đối dễ dàng. Dưới đây là một số hình ảnh
khá đơn giản dùng để thí nghiệm tách ngưỡ ng toàn cục. Phần hình học
sáng hơn và nền xám tối hơn đã đượ c tách biệt hẳn, rõ ràng
30
hơn. Tất c ả các điểm ảnhcó độ chói thấpsẽ đượ c gán mức tr ắng, các điểm ảnh có độchói cao(nền của ảnh) đượ c thay bằng mức đen
31
32
Chọn T=127, T0 = 1.
33
Để tìm được ngưỡ ng
toàn cục ta sử dụng một hàm
thresh=globalthreshold(img,T,T0). V ớ i T là giá tr ị
ngưỡng ban đầu,
T0 là sai số cho trướ c.
Để có thể xác định ngưỡ ng T một cáchtự động, chúng ta thực hiện cácbướ c sau: 1- Lựa chọnmức ngưỡng ban đầ uT. 2-
Dùng T để phân vùng ảnh.Kết qu ả nhận được là hai nhóm điểm
ảnh: nhóm G1 có giá trị độ chói lớ n hơnT, G2 – có độ chói nhỏ hơn T. 3-
Xác định giá trị độ chói trung bình m1và m2c ủa hai nhóm điể m
ảnh trên. 4-
Xác định giá trị ngưỡ ng T mớ i bằng:
5-
Thực hiện
cácbướ c 2-4 đến khi sai số giữa hai giá trị Tk ế
tiếp không vượ t quá giá trị T0 cho trướ c. Mức
ngưỡ ng ban đầu thườ ng đượ c lựa chọn bằng giá trị trung
bình giữa mức chói cao nh ất và mức chói thấp nhất trong ảnh. Nhận xét: -
Nhìn chung thu ật
toán tìm ngưỡ ng toàn cục đơn giản, thích hợ p
vớ i việc phân vùng cho nh ững ảnh có histogram chia làm 2 vùng rõ rệt.
34
-
Không thể xử lý khi chiếu
sáng thay đổi, có thể cho k ết quả kém
đối vớ i một số hình ảnh. -
Cách chọn ngưỡng T, T0 khó khăn.
KẾT LUẬN CHUNG -
Trong các phương pháp nêu trên có lẽ phương pháp đơn giản và mang lại hiệu quả nhất theo thuật
là phương pháp phân vùng tìm ngưỡ ng
toán đẳng điệu. Phân vùng v ớ i h ầu h ết các ảnh, và cho
ta k ết quả tốt hơn cả. -
Các phương pháp còn lại đại đa số chỉ phù hợ p v ớ i một số lại ảnh nhất định. Ví dụ như: phương pháp tìm ngưỡ ng toàn cục thích hợ p nhất
đối vớ i những ảnh có histogram tách làm 2 ph ần riêng bi ệt,
nghĩa là đồ thị của nó không bi ến thiên quá nhi ều lần.
PHỤ LỤC A. Code matlab
35
1. Thuật toán Làm tr ơ n Histogram function [ b ] = histsmooth( a , w ) %HISTSMOOTH This function smooth out a picture histogram % a is the input histogram % w is an odd number, throught error if w is an even number % b is the histogram that has been smoothed
b=a; if rem(w,2)==0
str=[ 'w should be an odd not ' num2str(w)]; error(str); end s=size(a); b=zeros(1,s(2)); k=(w-1)/2; x=zeros(1,s(2)+k*2); for i=1:s(2) x(i+k)=a(i); end for j=1+k:s(2)+k m=x(j-k:j+k); b(j-k)=round(mean(m)); end end
36
2. Thuật toán đẳng điệu function [ t ] = ridandcal( a ) %RIDANDCAL This function find a threadhold from rid and cal method % a is the input histogram % t is the threadhold this method return t=127; s=size(a); t=round((s(2))/2)-1; tcu=-1; while t~=tcu sumg1=0; sumg2=0; sumhg1=0; sumhg2=0; tcu=t; for i=0:t sumg1=sumg1+i*a(i+1); sumhg1=sumhg1+a(i+1); end t1=sumg1/sumhg1; for i=t+1:s(2)-1 sumg2=sumg2+i*a(i+1); sumhg2=sumhg2+a(i+1); end t2=sumg2/sumhg2; t=round(round((t1+t2))/2);
37
end end
3. Thuật toán đối xứng nền function [ t ] = symbg( a , b , p) %SYMBG This function find a threadhold using symmetry background method % a is the input histogram % b = 1 if background is brighter % b = 0 if background is darker % t is the threadhold this method return t=127; maxp=find(a==max(a)); maxp=maxp(end); x=find(a>0); if b==1 max1=(x(end)); a2=a(maxp:max1); sum2=sum(a2); kc=ones(1,max1); kc=kc*100; for i=maxp:max1; a1=a(maxp:i); kc(i)=abs((sum(a1)/sum2)*100-p); end k=find(kc==min(kc));
38
t=maxp-(k-maxp)-1; else if b==0 min1=x(1); a2=a(maxp:-1:min1); sum2=sum(a2); kc=ones(1,maxp); kc=kc*100; for i=maxp:-1:min1 a1=a(i:maxp); kc(i)=abs((sum(a1)/sum2)*100-p); end k=find(kc==min(kc)); t=maxp+maxp-k-1; end end end
4. Thuật toán tam giác function [ t ] = triangle( a, b ) %TRIANGLE This function find a threadhold using triangle method % a is the input histogram % b = 1 if background is brighter % b = 0 if background is darker % t is the threadhold this method return
39
s=size(a); if b==1 min1=0; else min1=s(2)-1; end max1=find(a==max(a))-1; vtpt=[ -max(a) max1-min1 ]; d=zeros(1,s(2)); if b==1 for i=0:max1 d(i+1)=abs(vtpt(1)*(imin1)+vtpt(2)*a(i+1))/sqrt(vtpt(1)^2+vtpt(2)^2); end else for i=max1:s(2) d(i)=abs(vtpt(1)*(imin1)+vtpt(2)*a(i))/sqrt(vtpt(1)^2+vtpt(2)^2); end end t=find(d==max(d))-1; end
5. Thuật toán tách ng ưỡ ng tự động (tách ngưỡ ng toàn cục) function thresh=globalthreshold(img,T,T0)
%Threshold an image using global thresholding
40
%T is the initial threshold guess
%When successive values of T become less than T0
% the algorithm finishes
s=size(img);
numelem=s(1)*s(2);
imgfl=double(img);
Tlast=-T0;
while abs(T-Tlast)>T0
tmp=imgfl>T;
zeros1=sum(tmp(:));
zeros2=numelem-zeros1;
G1=tmp.*imgfl;
41
G2=(~tmp).*imgfl;
mu1=sum(G1(:))/zeros1;
mu2=sum(G2(:))/zeros2;
Tlast=T;
T=1/2*(mu1+mu2)
end
thresh=T;
end
BẢNG KẾT QUẢ THỬ NGHIỆM 1. Thuật toán Làm trơn Histogram
42
43
2. Thuật toán đẳng điệu
44
45
3. Thuật toán đối xứng nền
46
4. Thuật toán tam giác
47
5. Thuật
toán tách ngưỡ ng tự động(tách ngưỡ ng toàn
cục)
48
49