58
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 TỰ ĐỘNG 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: D09CN2 Nguyễn Thị Bích 1

Báo cáo xu ly anh nhom 13 _ D09CN2

Embed Size (px)

DESCRIPTION

báo cáo xử lý ảnh, phân vùng ảnh dựa vào tách ngưỡng tự động

Citation preview

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 TỰ ĐỘNG

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: 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ến1

M c l cụ ụBACKGROUD................................................................................................................................................3

Cơ sở thực nghiệm......................................................................................................................................7

I. Giới thiệu chung về phân vùng ảnh.................................................................................................7

II. Đôi điều về phân vùng ảnh theo ngưỡng.........................................................................................8

PHÂN VÙNG ẢNH THEO NGƯỠNG..............................................................................................................9

I. Làm trơn ảnh – Làm trơn histogram – Chọn ngưỡng dựa vào biểu đồ ...........................................9

II. Thuật toán đẳng điệu....................................................................................................................12

III. Thuật toán đối xứng nền...........................................................................................................17

IV. Thuật toán tam giác...................................................................................................................23

V. Kĩ thuật tìm ngưỡng tự động.........................................................................................................28

1. Phân vùng với ngưỡng toàn cục................................................................................................29

KẾT LUẬN CHUNG..................................................................................................................................34

PHỤ LỤC....................................................................................................................................................34

BẢNG KẾT QUẢ THỬ NGHIỆM...................................................................................................................41

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ười một số phương pháp phân vùng ảnh dựa theo ngưỡng, hi vọng đây sẽ là

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.

- Hiểu và áp dụng được thuật toán tìm ngưỡng tự động: thuật toán đẳng điệu,

đối xứng nền, làm trơn histogram, tam giác, tìm ngưỡng toàn cục…. vào xử

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.

- Phân vùng ảnh theo ngưỡng: Trình bày một số kĩ thuật điển hình trong phân

vùng ảnh theo ngưỡng: làm trơn histogram, đẳng điệu, đối xứng nền…., một

số vấn đề cần lưu ý trong các kĩ thuật tìm ngưỡng để phân vùng ảnh.

3

- Phụ lục: phần code matlab cho các kĩ thuật trình bày ở phần 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 chungcủa XLA được chi làm 2 phần:

- Biến đổi ảnh làm tăng chất lượ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:

4

Thu nhận ảnh

Tiền xử lý ảnh

Phân đoạn Biểu diễn và mô tả ảnh

Nhận dạng và giải thích

Cơ sở tri thức

- 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 ở bước này là độ phân giải, chất lượng màu, dung

lượng bộ nhớ và tốc độthunhậ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ử độ lệch… với mục đích làm cho chất lượng ảnh trở nên tốt

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 nào đó

dựa theo biên hay các vùng liên thông. Tiêu chuẩn để 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 ả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 chọn 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ồ ấ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 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

5

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

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. 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 hơn cho các xử lý về sau. Chúng ta còn

phải đư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 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 thì 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 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

6

tượng trong ảnh.Trong khoảng 30 năm trở lại đây đã có rất nhiều các thuật

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 ( boundary – based methods), còn phương pháp dựa

trên sự giống nhau cảu 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 được các thuộc tính cục bộ (local) của ảnh. Do đó, trong thời gian

gần đâ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 các đối tượng của một cảnh (3-D) được biểu diễn

bởi hình ảnh (2-D).Để phân tích các đốitượng trong ảnh, chúng tacần phải

phân biệt đượ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 văn bản hoặc một đoạn thẳng trong một bản vẽ

kỹ thuật, một nhóm 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 vùng, các đối tượng tương ứng đại diện cho một cảnh thì

có giá trị 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 phân đoạn. Có rất nhiều kĩ thuật chọn ngưỡng

tự động xuất phát từ lược đồ xám {h[b] | b=0, 1, ……2B-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 ảnh theo ngưỡng sử dụng thuật toán

đẳng điệu để tìm ngưỡng.

14

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 điểm (x,y), p(x,y) - hàm biểu diễn

tính chấtcủa vùng ả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:

g(x , y)={1 ,∧f (x , y )>T0 ,∧f (x , y )≤T

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 thể vànền được táchbằng cách so

sánhvớimộtmức 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:

T=12(m1+m 2)

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 là phương pháp phân vùng tìm ngưỡng

theo thuật 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.

35

PH L CỤ ỤA. Code matlab

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);

end

37

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));

t=maxp-(k-maxp)-1;

else

if b==0

min1=x(1);

38

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

s=size(a);

if b==1

min1=0;

else

min1=s(2)-1;

end

max1=find(a==max(a))-1;

39

vtpt=[ -max(a) max1-min1 ];

d=zeros(1,s(2));

if b==1

for i=0:max1

d(i+1)=abs(vtpt(1)*(i-min1)+vtpt(2)*a(i+1))/sqrt(vtpt(

1)^2+vtpt(2)^2);

end

else

for i=max1:s(2)

d(i)=abs(vtpt(1)*(i-min1)+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

%T is the initial threshold guess

%When successive values of T become less than T0

% the algorithm finishes

s=size(img);

40

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;

G2=(~tmp).*imgfl;

mu1=sum(G1(:))/zeros1;

mu2=sum(G2(:))/zeros2;

Tlast=T;

T=1/2*(mu1+mu2)

end

thresh=T;

41

end

B NG K T QU TH NGHI MẢ Ế Ả Ử Ệ

1. Thuật toán Làm trơn Histogram

42

2. Thuật toán đẳng điệu

43

44

3. Thuật toán đối xứng nền

45

4. Thuật toán tam giác

46

5. Thuật toán tách ngưỡng tự động(tách ngưỡng toàn

cục)

47

48

49