Đồ án kỹ thuật lập trình Tìm hiểu thuật toán Isodata xác định ngưỡng để phân đoạn ảnh.

21 1.3K 14
Đồ án kỹ thuật lập trình  Tìm hiểu thuật toán Isodata xác định ngưỡng để phân đoạn ảnh.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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”.

ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Đề 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 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo MỤC LỤC LỜI NÓI ĐẦU 2 KẾT LUẬN 21 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ừ đó 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”. Xử lý ảnh tuy là một ngành khoa học còn mới mẻ so với nhiều ngành khoa học khác nhưng hiện nay nó đang là một trong những lĩnh vực phát triển rấ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ất trong 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ượng chuyể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 ả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. 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 Sinh viên thực hiện: Đinh Thị Ánh Trang 2 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Đinh Thị Ánh Sinh viên thực hiện: Đinh Thị Ánh Trang 3 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo I. 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ình biế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ớp cá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ùng hay 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 tin họ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ương trình. Xử lý ảnh số bao gồm các phương pháp và kĩ thuật để biến đổi, để truyền tả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ằm cho 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 đối tượ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. Sinh viên thực hiện: Đinh Thị Ánh Trang 4 Ảnh Xử lý ảnh Ảnh “tốt hơn” Kết luận Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Sơ đồ 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ơn nữ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ùng thà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 đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên ngườ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. Mụ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ộ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 đã Sinh viên thực hiện: Đinh Thị Ánh Trang 5 Nhận dạng và nội suy ảnh Biểu diễn và mô tả ảnh Phân đoạn ảnh Thu nhận ảnh Tiền XLA Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo đượ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 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 được bằ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ạch ngang trên phong bì thư có thể được nội suy thành mã điện thoại. Có nhiều cách phân loại ảnh khác nhau về ảnh. Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản: - Nhận dạng theo tham số. - Nhận dạng theo cấu trúc. Đây là bước cuối trong quá trình xử lý ảnh. 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. Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người… 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ích thước và khoảng cách của các điểm ảnh đó được chọn thích hợp sao cho mắt ngườ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ị. Sinh viên thực hiện: Đinh Thị Ánh Trang 6 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Theo định nghĩa, khoảng cách giữa các điểm ảnh sẽ được chọn sao cho mắ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ợp tạ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ểu diễn mức xám: Mức xám dùng 1byte biểu diễn: 2 8 =256 mức, tức là từ 0 đến 255 mứ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ả 2 1 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. Ả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. Sinh viên thực hiện: Đinh Thị Ánh Trang 7 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo 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ới mứ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ức cường độ sáng nhất. Trong biểu diễn số của các ảnh đa mức xám, một ảnh được biểu diễn dưới dạ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ám hay cường độ của ảnh tại vị trí đó. Sinh viên thực hiện: Đinh Thị Ánh Trang 8 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo 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ới nhữ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 ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 2 8*3 =2 24 ≈ 16,7 triệu. Sinh viên thực hiện: Đinh Thị Ánh Trang 9 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Hình 5 : Ảnh màu Sinh viên thực hiện: Đinh Thị Ánh Trang 10 [...]... 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ưỡng thích hợp Sinh viên thực hiện: Đinh Thị Ánh Trang 14 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo III 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ương trình được cài đặt trên Microsoft Visual Studio 2008 bằng ngôn ngữ C# Phân oạn.cs using System; using System.Collections.Generic;... ngưỡng T0 = 24 Sinh viên thực hiện: Đinh Thị Ánh Trang 20 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo KẾ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 gian không... 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 Sinh viên thực hiện: Đinh Thị Ánh Trang 13 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo (tức là ngưỡng T0 lúc này là ngưỡng đúng và ta phân ảnh thành 2 vù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... ảnh theo kết cấu bề mặt Sinh viên thực hiện: Đinh Thị Ánh Trang 11 Đồ án Kỹ thuật lập trình 2 GVHD: Bùi Thị Thảo 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.. .Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo II 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ằ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 Mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo 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í... Thị Ánh Trang 18 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo sfd.OverwritePrompt = true; if (sfd.ShowDialog() != DialogResult.Cancel && sfd.FileName != "") { panhdich.Image.Save(sfd.FileName, ImageFormat.Bmp); } } } } Sinh viên thực hiện: Đinh Thị Ánh Trang 19 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Kết quả của chương trình với giá trị ngưỡng T0 = 24 Sinh viên thực hiện: Đinh Thị Ánh Trang 20 Đồ án. .. giá trị mức xám tương đối đồng đều hay tí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ác tậ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 ảnh chí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ề... 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ẩn chọn Để hiểu rõ hơn nguyên tắc phân vùng dựa vào ngưỡng. .. Hình 6: Lược đồ rắn lượn và cách chọn ngưỡng Sinh viên thực hiện: Đinh Thị Ánh Trang 12 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Giả 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 Ck 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) ∈ Ck nếu Tk-1 ≤ P(m,n) < Tk , k=1,2,3,4 Khi phân vùng xong,... nền sáng chúng ta có thuật toán sau: 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ác đối tượng tối trên nền sáng chúng ta có thuật toán sau: 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: . Ánh Trang 9 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo Hình 5 : Ảnh màu Sinh viên thực hiện: Đinh Thị Ánh Trang 10 Đồ án Kỹ thuật lập trình GVHD: Bùi Thị Thảo II. THUẬT TOÁN ISODATA 1. Phân đoạn. 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

Ngày đăng: 11/04/2015, 16:23

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • KẾT LUẬN

Tài liệu cùng người dùng

Tài liệu liên quan