Tài liệu này kèm theo Code cho các bạn dễ tìm hiểu hơn Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thể thiếu trong một xã hội hiện đại. Các nhu cầu về thông tin ngày càng phức tạp. Nó không chỉ đơn thuần là các văn bản như trước kia. Nó đã trở thành công cụ không thể thiếu đối với các hình thức lưu trữ, biểu diễn thông tin. Và từ đó nhu cầu xử lý các bức ảnh để phục vụ cho nhiều mục đích khác nhau đã dẫn đến việc hình thành một khóa học có tên là “Xử lý ảnh”.
Trang 1Đề tài: Tìm hiểu thuật toán Isodata xác định ngưỡng để phân đoạn ảnh Thử nghiệm với ảnh đa mức xám
GVHD : Bùi Thị Thảo
Họ và tên: Đinh Thị Ánh Lớp : DS-TIN 5
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 2
I SƠ LƯỢC VỀ XỬ LÝ ẢNH 3 1 Tổng quan về một hệ thống xử lý ảnh 3
a) Thu nhận ảnh (Image Acquisition): 4
b) Tiền xử lý ảnh (Image Processing): 4
c) Phân đoạn ảnh (Segmentation) hay phân vùng ảnh: 4
d) Biểu diễn và mô tả ảnh (Image Representation): 5
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation): 5
2 Các khái niệm cơ bản về Xử lý ảnh: 5 a) Điểm ảnh(Pictrure Element): 5
b) Độ phân giải của ảnh (Resolution): 6
c) Mức xám (gray level): 6
d) Ảnh đen trắng: 6
e) Ảnh nhị phân: 6
f) Ảnh đa mức xám: 7
g) Ảnh màu: 8
II THUẬT TOÁN ISODATA 10 1 Phân đoạn ảnh: 10
2 Phân đoạn ảnh dựa theo ngưỡng 11 a) Khái quát về phân đoạn ảnh dựa theo ngưỡng 11 b) Thuật toán ISODATA 12
III CÀI ĐẶT CHƯƠNG TRÌNH .14
Trang 3KẾT LUẬN 20
LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trongđời sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thểthiếu trong một xã hội hiện đại Các nhu cầu về thông tin ngày càng phức tạp
Nó không chỉ đơn thuần là các văn bản như trước kia Nó đã trở thành công cụkhông thể thiếu đối với các hình thức lưu trữ, biểu diễn thông tin Và từ đó nhucầu xử lý các bức ảnh để phục vụ cho nhiều mục đích khác nhau đã dẫn đến việchình thành một khóa học có tên là “Xử lý ảnh”
Xử lý ảnh tuy là một ngành khoa học còn mới mẻ so với nhiều ngànhkhoa học khác nhưng hiện nay nó đang là một trong những lĩnh vực phát triểnrất nhanh Xử lý ảnh bao gồm nhiều kỹ thuật như: thu nhận ảnh, nén dữ liệu ảnh,
xử lý năng cao chất lượng và khôi phục ảnh, phát hiện biên, phân vùng ảnh,nhận dạng ảnh Trong các kỹ thuật trên thì phân đoạn ảnh là một bước khó nhấttrong xử lý ảnh Nó là tiền đề quan trọng cho bước nhận dạng, là một kỹ thuật córất nhiều ứng dụng Phân đoạn ảnh sẽ trợ giúp đắc lực cho quá trình nhận dạng,tìm kiếm các ảnh để minh họa cho các bài báo giúp phát hiện ra các đối tượngchuyển động trong một cuộn film
Người ta đã đưa ra một số phương pháp phân đoạn ảnh phân đoạn ảnhtheo ngưỡng, phân đoạn ảnh theo miền đồng nhất, phân đoạn ảnh theo kết cấu
bề mặt
Trong đề tài này, em sẽ tìm hiểu thuật toán ISODATA xác định ngưỡng để phânđoạn ảnh và cài đặt chương trình sử dụng phần mềm Microsoft Visual Studio
2008 bằng ngôn ngữ lập trình C#
Em xin chân thành cảm ơn
Sinh viên thực hiệnĐinh Thị Ánh
Trang 4I SƠ LƯỢC VỀ XỬ LÝ ẢNH
1 Tổng quan về một hệ thống xử lý ảnh
Xử lý ảnh là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trìnhbiến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ýmuốn của người sử dụng Xử lý ảnh có thể gồm quá trình phân tích, phân lớpcác đối tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùnghay quá trình biên dịch các thông tin hình ảnh của ảnh
Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tinhọc ứng dụng Xử lý dữ liệu bằng đồ hoạ đề cập đến những ảnh nhân tạo, cácảnh này được xem xét như là một cấu trúc dữ liệu và được tạo ra bởi các chươngtrình Xử lý ảnh số bao gồm các phương pháp và kĩ thuật để biến đổi, để truyềntải hoặc mã hoá các ảnh tự nhiên
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằmcho ra kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh có thể làmột ảnh “tốt hơn” hoặc một kết luận
Hình 1: Quá trình xử lý ảnhẢnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như
là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đốitượng trong không gian và nó có thể xem như một hàm n biến P(c1, c2, , cn)
Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều
Ảnh “tốt hơn”
Kết luận
Trang 5Sơ đồ tổng quát của một hệ thống xử lý ảnh:
Hình 2: Các bước cơ bản trong hệ thống xử lý ảnh
Sơ đồ này bao gồm các thành phần sau:
a) Thu nhận ảnh (Image Acquisition):
Đây là công đoạn mang tính quyết định đối với quá trình xử lý ảnh Ảnhđầu vào sẽ được thu nhận qua các thiết bị như camera, máy scanner, vv và sau
đó các tín hiệu này được số hóa Các thông tin quan trọng ở đây là độ phân giải,chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận ảnh của các thiết bị
b) Tiền xử lý ảnh (Image Processing):
Sau bộ thu nhận, ảnh sẽ được cải thiện về độ tương phản, khử nhiễu, khửbóng, khử độ lệch, vv với mục đích làm cho chất lượng ảnh trở nên tốt hơnnữa và thường được thực hiện bởi các bộ lọc
c) Phân đoạn ảnh (Segmentation) hay phân vùng ảnh:
Phân vùng ảnh là tách một ảnh đầu vào thành các vùngthành phần để biểu diễn phân tích, nhận dạng ảnh Ví dụ: đểnhận dạng chữ (hoặc mã vạch) trên phong bì thư cho mục đíchphân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tênngười thành các từ, các chữ, các số (hoặc các vạch) riêng biệt
để nhận dạng 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
ảnh
Tiền XLA
Trang 6Mục đích của phân đoạn ảnh là để có một miêu tả tổng hợp về nhiều phần
tử khác nhau cấu tạo lên ảnh thô
d) Biểu diễn và mô tả ảnh (Image Representation):
Sự chọn lựa các biểu diễn thích hợp cho một vùng ảnh mới chỉ là mộtphần trong việc chuyển đổi dữ liệu ảnh thô sang một dạng thích hợp hơn chocá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ổibật lên, thuận tiện cho việc sử dụng
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation):
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu đượcbằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy làphán đoán theo ý nghĩa trên cơ sở nhận dạng Ví dụ: một loạt chữ số và nét gạchngang trên phong bì thư có thể được nội suy thành mã điện thoại Có nhiều cáchphân loại ảnh khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toánhọc về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:
2 Các khái niệm cơ bản về Xử lý ảnh:
a)Điểm ảnh(Pictrure Element):
Điểm ảnh hay còn gọi là pixel (picture element, pels, image elements) làmột phần tử của ảnh số tại tọa độ (x,y) với độ xám hoặc màu nhất định Kíchthước và khoảng cách của các điểm ảnh đó được chọn thích hợp sao cho mắt
Trang 7người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh sốgần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
Ảnh được xem như là một tập hợp các điểm ảnh Khi được số hoá nóthường được biểu diễn là ma trận 2 chiều a[i][j] mà mỗi phần tử có một giá trịnguyên hoặc là một véc tơ cấu trúc màu
b) Độ phân giải của ảnh (Resolution):
Độ phân giải của ảnh là mật độ điểm ảnh được ấn định trên một ảnh sốđược hiển thị
Theo định nghĩa, khoảng cách giữa các điểm ảnh sẽ được chọn sao chomắt người thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợptạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục
x và y trong không gian hai chiều.
c) Mức xám (gray level):
Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số
tại điểm đó Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 Mức
256 là mức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểudiễn mức xám: Mức xám dùng 1byte biểu diễn: 28=256 mức, tức là từ 0 đến 255mức
d) Ảnh đen trắng:
Ảnh đen trắng là ảnh chỉ có màu đen và màu trắng Người ta phân mức đen trắng đó thành L mức Nếu sử dụng số bit B=8 bít để mã hóa mức đen trắng (hay mức xám) thì L được xác định : L=2 B
Nếu L bằng 2, B=1, nghĩa là chỉ có 2 mức: mức 1 ứng với màu sáng, mức
0 ứng với màu tối, còn gọi là ảnh nhị phân.Nếu L lớn hơn 2 ta có ảnh đa cấp
xám
e) Ảnh nhị phân:
Ảnh nhị phân là ảnh chỉ có 2 mức đen trắng phân biệt tức là dùng 1 bit
mô tả 21 mức khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ cóthể là 0 hoặc 1
Trang 8Ảnh nhị phân khá đơn giản, các phần tử ảnh có thể coi như các phần tử logic Ứng dụng chính của nó được dùng theo tính logic để phân biệt đối tượng ảnh với nền hay để phân biệt điểm biên với điểm khác.
Hình 3 : Ảnh nhị phân
f) Ảnh đa mức xám:
Ảnh đa mức xám là ảnh mà mỗi điểm ảnh được biểu diễn bởi một giá trị
và đó là cường độ sáng của điểm ảnh
Ảnh đa mức xám là ảnh có sự chuyển dần mức xám từ trắng sang đen Sửdụng 8 bit (tức 256 màu) để biểu diễn mức xám Nói cách khác, với ảnh nhịphân mỗi điểm ảnh được mã hóa trên 1 bit, còn với ảnh 256 mức, mỗi điểm ảnhđược mã hóa trên 8 bit Như vậy, với ảnh đen trắng: nếu dùng 8 bit (1 byte) đểbiểu diễn mức xám, số các mức xám có thể biểu diễn được là 256 Mỗi mức xámđược biểu diễn dưới dạng là một số nguyên nằm trong khoảng từ 0 đến 255, vớimức 0 biểu diễn cho mức cường độ đen nhất và mức 255 sẽ biểu diễn cho mứccường độ sáng nhất
Trang 9Trong biểu diễn số của các ảnh đa mức xám, một ảnh được biểu diễn dướidạng một ma trận hai chiều Mỗi phần tử của ma trận biểu diễn cho mức xámhay cường độ của ảnh tại vị trí đó.
Hình 4 : Ảnh đa mức xám
g) Ảnh màu:
Ảnh màu là ảnh được tổ hợp từ 3 màu cơ bản là đỏ(R), xanh lục(G), xanh
lơ (B) Để tiết kiệm bộ nhớ với những ảnh có số lượng màu nhỏ hơn hoặc bằng
256 màu thì màu của các điểm ảnh được lưu trữu dưới dạng bảng màu Vớinhững ảnh có số màu lớn thì các điểm ảnh không tổ chức dưới dạng bảng màu,khi đó giá trị của các điểm ảnh chính là giá trị của các thành phần màu R, G, B.Trong khuôn khổ lý thuyết ba màu R, G, B để tạo nên thế giới màu, người tathường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 28*3=224≈ 16,7triệu
Trang 10Hình 5 : Ảnh màu
Trang 11II THUẬT TOÁN ISODATA
1 Phân đoạn ảnh:
Phân đoạn ảnh là bước then chốt trong xử lý ảnh Giai đoạn này nhằmphâ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ênhay các vùng liên thông Mỗi vùng gồm một nhóm pixel liên thông và đồng nhấttheo một tiêu chuẩn nào đó Tiêu chuẩn này phụ thuộc vào mục tiêu của quátrình phân đoạn Ví dụ như cùng mức xám, cùng màu, hay cùng độ nhám Trước hết chúng ta cần làm rõ các khái niệm “vùng ảnh ” (Segment) và đặcđiểm vật lý của vùng
Vùng ảnh là một chi tiết, một thực thể trong toàn ảnh Nó là một tập hợpcá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 Vùng ảnh là một trong hai thuộc tính của ảnh Nói đến vùng ảnh là nóiđến tính chất bề mặt Đường bao quanh một vùng ảnh là biên ảnh Các điểmtrong một vùng ảnh có độ biến thiên giá trị mức xám tương đối đồng đều haytính kết cấu tương đồng
Phân vùng ảnh là quá trình phân hoạch tập các điểm ảnh của X thành cáctập con của các vùng ảnh Ri thỏa mãn các điều kiện sau:
1) Ri # Ø
2) Ri Rj = Ø 3) Ri Rj =X
Dựa vào đặc tính vật lý của ảnh, người ta có nhiều kỹ thuật phân đoạn ảnhchính như :
- Phân đoạn ảnh theo ngưỡng
- Phân đoạn ảnh theo miền đồng nhất
- Phân đoạn ảnh theo kết cấu bề mặt
Trang 122 Phân đoạn ảnh dựa theo ngưỡng
a) Khái quát về phân đoạn ảnh dựa theo ngưỡng
Phương pháp phân đoạn ảnh theo ngưỡng là việc phân các phần tử cóchung một số thuộc tính nào đó theo các tiêu chuẩn về thuộc tính
Việc chọn ngưỡng trong kỹ thuật này là một bước vô cùng quan trọng,thông thường người ta tiến hành theo các bước chung như sau:
Xem xét lược đồ xám của ảnh để xác định các đỉnh và các khe Nếuảnh có dạng rắn lượn (nhiều đỉnh và khe), các khe có thể dùng đểchọn ngưỡng
Chọn ngưỡng T sao cho một phần xác định trước η của toàn bộ số mẫu là thấp hơn T.
Điều chỉnh ngưỡng dựa trên lược đồ xám của các điểm lân cận
Chọn ngưỡng theo lược đồ xám của những điểm thỏa mãn tiêu chuẩnchọn
Để hiểu rõ hơn nguyên tắc phân vùng dựa vào ngưỡng biên độ, xét thí dụ sau:
Hình 6: Lược đồ rắn lượn và cách chọn ngưỡng
Trang 13Giả sử ảnh có lược đồ xám như hình trên ta chọn được các ngưỡng là: T0,
T1, T2, T3, T4 Ta có 5 ngưỡng và phân ảnh thành 4 vùng, ký hiệu C k là vùng
thứ k của ảnh với k=1,2,3,4 Cách phân vùng theo nguyên tắc :
P(m,n) C k nếu T k-1 ≤ P(m,n) < T k , k=1,2,3,4.
Khi phân vùng xong, nếu ảnh rõ nét thì việc phân vùng coi như kết thúc Nếu không, cần điều chỉnh ngưỡng
b) Thuật toán ISODATA
ISODATA là viết tắt của từ Iteractive Self Organizing DataAnalysis Đây
là kĩ thuật chọn ngưỡng theo kiểu lặp do Ridler và Calvart đưa ra
Ý tưởng:
Giả sử rằng chúng ta đang quan tâm đến các đối tượng sáng (object) trên nền tối (background), một tham số T gọi là ngưỡng độ sáng, sẽ được chọn cho một ảnh f[x,y] theo cách:
If f[x,y] ≥ T f[x,y] = object = 1 Else f[x,y] = Background = 0.
Ngược lại, đối với các đối tượng tối trên nền sáng chúng ta có thuật toánsau:
If f[x,y] < T f[x,y] = object = 1 Else f[x,y] = Background = 0.
Mô tả thuật toán:
Thuật toán phân ảnh X(m,n) thành 2 vùng như sau:
Bước 1 (khởi tạo):
Chọn ngưỡng T0 tùy ý (thông thường chọn T0 = L/2) (L là mức xám của ảnh)
Bước 2:
Phân ảnh X(m,n) thành 2 vùng Rright và Rleft dựa vào T0
Bước 3:
Sau đó tính độ sáng trung bình của 2 vùng ảnh:
+ mf,0 là độ sáng của những điểm ảnh thuộc đối tượng
Trang 14+ mb,0 là độ sáng của những điểm ảnh nền
Kiểm tra T0 có bằng (mf,0 + mb,0)/2 không?
+ Nếu đúng: Thuật toán kết thúc (tức là ngưỡng T0 lúc này là ngưỡng đúng và ta phân ảnh thành 2vùng dựa vào ngưỡng T0 này)
+ Nếu sai: gán T0 = (mf,0 + mb,0)/2 rồi quay lại Bước 2
Ưu điểm của thuật toán: Đây là một thuật toán khá mềm dẻo nó cho phépđiều chỉnh ngưỡng theo từng bước cho đến khi tìm được giá trị ngưỡngthích hợp
Trang 15III CÀI ĐẶT CHƯƠNG TRÌNH
- Cài đặt thuật toán ISODATA xác định ngưỡng để phân đoạn ảnh Chươngtrình được cài đặt trên Microsoft Visual Studio 2008 bằng ngôn ngữ C#
Trang 18Stopwatch st = new Stopwatch ();
private void btmoanh_Click_1( object sender, EventArgs e) {
OpenFileDialog ofd = new OpenFileDialog ();
if (ofd.ShowDialog() == DialogResult OK)
Trang 19}
}
}
Trang 20Kết quả của chương trình với giá trị ngưỡng T0 = 24.
Trang 21KẾT LUẬN
--
Trong quá trình thực hiện đồ án này, em đã hiểu thêm về môn Xử lý ảnh,với những kiến thức đầy đủ về thuật toán ISODATA xác định ngưỡng để phânđoạn ảnh cũng như có cơ hội tìm hiểu thêm về Ngôn ngữ lập trình C#
Khi làm đồ án này em đã cố gắng hết sức, song với khoảng thời giankhông nhiều và khả năng của em còn nhiều hạn chế nhưng nhờ sự giúp đỡ tậntình của cô Bùi Thị Thảo em đã hoàn thành đồ án của mình đúng thời gian quyđịnh.Tuy nhiên, trong quá trình làm bài, vẫn có nhiều sai sót rất mong nhậnđược sự góp ý của cô và các thầy cô giáo khác trong khoa để đồ án của em đượchoàn thiện hơn
Em xin chân thành cảm ơn!