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
Trang 1Khoa 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
Trang 2Cơ 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
Trang 3Mộ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ử
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
Trang 4BACKGROUD
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
Trang 5thô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ả
Trang 6bê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
Trang 7(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
Trang 8I 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
Trang 9cấ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
Trang 10- 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
Trong đó W là lẻ và W thường là 3 hoặc 5
Trang 11Hà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
Trang 13II 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:
Trang 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
Trang 18III 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
Trang 19đối tượng nền và là ranh giới xác định sự phân chia
- 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
Trang 20a (b=1vì nền sang hơn vật,p=95)
Trang 24Nhậ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
Trang 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
Trang 28Chọn b=0
Trang 29Nhậ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:
Trang 30f(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
Trang 34T0 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
Trang 35KẾ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
Trang 36%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=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
Trang 37method
% 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;
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);
Trang 383 Thuật toán đối xứng nền
Trang 39kc(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
Trang 40min1=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;