Đề tài Phân vùng với tách ngưỡng tự động
- 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.
50 trang |
Chia sẻ: tienthan23 | Lượt xem: 7256 | Lượt tải: 6
Bạn đang xem trước 20 trang tài liệu Đề tài Phân vùng với tách ngưỡng tự động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
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ến
2
Mục lục
BACKGROUD ............................................................................................................................ 4
Cơ sở thực nghiệm .................................................................................................................... 8
I. Giới thiệu chung về phân vùng ảnh. ................................................................................ 8
II. Đôi điều về phân vùng ảnh theo ngưỡng. ........................................................................ 9
PHÂN VÙNG ẢNH THEO NGƯỠNG ........................................................................................10
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
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
3
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.
- Phụ lục: phần code matlab cho các kĩ thuật trình bày ở phần 3.
4
- 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:
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
5
- 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
ả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ả
6
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
tượng trong ảnh.Trong khoảng 30 năm trở lại đây đã có rất nhiều các thuật
7
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.
8
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.
9
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.
10
- 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, -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.
11
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.
12
13
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:
14
- 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.
15
16
17
18
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
19
- 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
20
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)
21
b. Chọn b=1, p=15
22
Chọn b=1, p = 25.
23
24
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.
25
- 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.
26
27
28
Chọn b=1
Chọn b=0.
29
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:
30
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:
{
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
31
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
32
33
Chọn T=127, T0 = 1.
34
Để 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.
35
- 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.
PHỤ LỤC
A. Code matlab
36
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
37
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);
38
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));
39
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
40
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)*(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
41
%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;
42
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
43
44
2. Thuật toán đẳng điệu
45
46
3. Thuật toán đối xứng nền
47
4. Thuật toán tam giác
48
5. Thuật toán tách ngưỡng tự động(tách ngưỡng toàn
cục)
49
50
Các file đính kèm theo tài liệu này:
- 118379436_bao_cao_xu_ly_anh_nhom_13_d09cn2_9363.pdf