TÁCH vật THỂ RA KHỎI KHUNG nền (có code) ............................................ TÁCH vật THỂ RA KHỎI KHUNG nền (có code) ............................................ TÁCH vật THỂ RA KHỎI KHUNG nền (có code) ............................................ TÁCH vật THỂ RA KHỎI KHUNG nền (có code) ............................................ TÁCH vật THỂ RA KHỎI KHUNG nền (có code) ............................................
Trang 1ĐỒ ÁN 3 TÁCH VẬT THỂ RA KHỎI
KHUNG NỀN
Trang 2DANH MỤC CÁC BẢNG BIỂU……….1
DANH MỤC CÁC TỪ VIẾT TẮT……… 1
CHƯƠNG 1 TỔNG QUAN VỀ ẢNH SỐ……… 1
1.1 GIỚI THIỆU……… .1
1.2 QUÁ TRÌNH CƠ BẢN TRONG XỬ LÍ ẢNH……… ……
3 1.2.1 Thu nhận ảnh…… ……… ……… 3
1.2.2 Tiền xử lí……… ……… 3
1.2.3 Phân đoạn ảnh……….3
1.2.4 Biểu diễn và mô tả……… 4
1.2.5 Nhận dạng và nội suy………4
1.2.6 Cơ sở trí thức……….
….4 1.3 VẤN ĐỀ CƠ BẢN TRONG ẢNH SỐ……… 4
1.3.1 Phân loại ảnh……….4
1.3.1.1 Ảnh RGB………
4 1.3.1.2 Ảnh xám (Gray scale) ………
6 1.3.1.3 Ảnh nhị phân……… 6
Trang 31.3.2 Điểm ảnh(pixel) ………
7 1.3.3 Độ phân giải ảnh……… 7
1.3.4 Mức xám……….8
CHƯƠNG 2 GIỚI THIỆU CHUNG VỀ MATLAB……….9
2.1 GIỚI THIỆU CHUNG………
9 2.1.1 Khái niệm……….9
2.1.2 Tổng quan về cấu trúc và giao diện………9
2.2 CÔNG CỤ DIGITAL IMAGE PROCESSING TOOLBOX………10
2.2.1 Giới thiệu về toolbox trong matlab……….10
2.2.2 Digital Image Processing Toolbox trong matlab ………10
CHƯƠNG 3 TÁCH VẬT THỂ RA KHỎI KHUNG NỀN……… 12
3.1 THIẾT KẾ HỆ THỐNG……… 12
3.1.1 Phân đoạn và xử lí ảnh (threshold segmentation)……….12
3.1.2 Gắn nhãn đối tượng………14
3.1.3 Tách đối tượng ra khỏi khung nền……… 15
3.2 THIẾT KẾ VÀ LẬP TRÌNH GIAO DIỆN GUI………16
Trang 43.2.3 Thiết kế giao diện GUI cho đề tài……….18
CHƯƠNG 4 : KẾT QUẢ MÔ PHỎNG……….20
CHƯƠNG 5: KẾT LUẬN………22
TÀI LIỆU THAM KHẢO……….23
PHỤ LỤC CODE………24
DANH MỤC CÁC BẢNG BIỂU
Trang 5DANH MỤC CÁC HÌNH VẼ
HÌNH 1-1: QUÁ TRÌNH XỬ LÍ ẢNH
HÌNH 1-2: MÔ HÌNH MÀU RGB
HÌNH 1-3: ẢNH NHỊ PHÂN
HÌNH 2-1: GIAO DIỆN MATLAB
HÌNH 2-2: GIAO DIỆN IMAGE PROCESSING TOOLBOX HÌNH 3-1 : SƠ ĐỒ KHỐI
Trang 7GIF Graphics Interchange Format
Trang 8CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÍ ẢNH SỐ
1.1 GIỚI THIỆU
Ngày nay với sự phát triển nhanh của công nghệ thông tin Nó đã đem lại nhữngứng dụng to lớn trong nhiều lĩnh vực khác nhau Công nghệ thông tin đã trở thànhngành công nghiệp mũi nhọn của nhiều nước trên thế giới Sự tồn tại và phát triểncủa một doanh nghiệp, cơ quan, tổ chức nhà nước không thể thiếu sự trợ giúp củamáy tính Trong việc quản lý, thu nhận và xử lý thông tin với khối lượng ngày cànglớn, nhiều lúc với những phần mềm thủ công không đem lại hiệu quả mong muốn,tốn nhiều công sức và thời gian
Xử lý tín hiệu là một môn học trong kỹ thuật điện tử, viễn thông và trong toánhọc Liên quan đến nghiên cứu và xử lý tín hiệu kỹ thuật số và analog, giải quyếtcác vấn đề về lưu trữ, các thành phần bộ lọc, các hoạt động khác trên tín hiệu Cáctín hiệu này bao gồm truyền dẫn tín hiệu, âm thanh hoặc giọng nói, hình ảnh, và cáctín hiệu khác…
Trong số các phương pháp xử lý tín hiệu kể trên, lĩnh vực giải quyết với các loạitín hiệu mà đầu vào là một hình ảnh và đầu ra cũng là một hình ảnh, sản phẩm đầu
ra được thực hiện trong một quá trình xử lý Đó chính là quá trình 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ủangườ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êndị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 đồ họa đề cập đếnnhữ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à đượctạo 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
Mục đích của xử lý ảnh gồm:
Biến đổi ảnh làm tăng chất lượng ảnh
Trang 9ĐỒ ÁN 3 Trang 2/25
Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh
1.2 QUÁ TRÌNH CƠ BẢN TRONG XỬ LÍ ẢNH
HÌNH 1.1 QUÁ TRÌNH XỬ LÍ ẢNH
1.2.1 Thu nhận ảnh
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ẽ được thu nhậ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 Việc lựa chọn các thiết bị thu nhận ảnh sẽ phụ thuộc vào đặc tính của các đối tượng cần xử lý Các thông số quan trọng ở bước này
là độ phân giải, chất lượng màu ảnh, dung lượng bộ nhớ và tốc độ thu nhận ảnh của các thiết bị
1.2.2 Tiền xử lí
Ở bước này, ảnh sẽ đƣợc cải thiện về độ tương phản, khử nhiễu, khử bóng, khử
độ lệch, với mục đích làm cho chất lượng ảnh trở lên tốt hơn nữa, chuẩn bị chocác bước xử lý phức tạp hơn về sau trong quá trình xử lí ảnh Quá trình này thườngđược thực hiện bởi các bộ lọc
1.2.3 Phân đoạn ảnh
Phân đoạn ảnh là bước then chốt trong XLA Giai đoạn này phân tích ảnh thànhnhữ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 để xác định các vùng liên thông có thể là cùng màu, cùng mức xám
Tách vật thể ra khỏi khung nền
Trang 10Mụ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ácnhau cấu tạo lê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 một vài đặc trƣng nào đó, do vậy cần có mộtquá trìnhđể giảm lƣợng thông tin khổng lồ đó Quá trình này bao gồm phân vùngảnh và trích chọn đặc tính chủ yếu.
1.2.4 Biểu diễn và mô tả
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn)cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạngthích hợp là cần thiết cho xử lý tiếp theo bằng máy tính
1.2.5 Nhận dạng và nội suy
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằngcá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ántheo ý nghĩa trên cơ sở nhận dạng
1.2.6 Cơ sở trí thức
Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểmảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý vàphân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợicho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theocách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo cácphương pháp trí tuệ con người
Cũng lưu ý rằng mô hình màu RGB tự bản thân nó không định nghĩa thế nào là
"đỏ", "xanh lục" và "xanh lam" một cách chính xác, vì thế với cùng các giá trị như
Trang 11ĐỒ ÁN 3 Trang 4/25
nhau của RGB có thể mô tả các màu tương đối khác nhau trên các thiết bị khácnhau có cùng một mô hình màu Trong khi chúng cùng chia sẻ một mô hình màuchung, không gian màu thực sự của chúng là dao động một cách đáng kể
HÌNH 1.2 MÔ HÌNH MÀU RGB
Không gian màu RGB mô tả màu sắc bằng 3 thành phần chính là Red - Green vàBlue Không gian này được xem như một khối lập phương 3 chiều với màu red làtrục x, màu Green là truc y, và màu Blue là trục z Mỗi màu trong không gian nàyđược xác định bởi 3 thành phần R, G, B Ứng với các tổ hợp khác nhau của 3 màunày sẽ cho ta một màu mới
Trong hệ màu RGB, một pixel được biểu diễn bằng 3 giá trị (R, G, B) trong đó
R, G, B là một giá trị xám và được biểu biểu diễn bằng 1 byte Khi đó ta có một ảnh
24 bits Một mảng RGB có thể thuộc lớp double, uint8 hoặc uint16 Trong mảngRGB lớp double, mỗi thành phần màu có giá trị 0 và 1 Pixel(0,0,0) hiển thị vớimàu đen và pixel(1,1,1) hiển thị với màu trắng Ví dụ để tính màu sắc của pixel tạihàng 2 và cột 3, ta nhìn vào giá trị lưu trong (2,3,1:3) Giả sử (2,3,1) chứa giá trị0.5168; (2,3,2) chứa giá trị 0.1574 và (2,3,3) chứa giá trị 0.0672 thì màu sắc củapixel tại (2,3) sẽ là (0.5168, 0.1574, 0.0672)
Đoạn mã hiển thị các thành phần màu trong ảnh
clear all
clc
Tách vật thể ra khỏi khung nền
Trang 12Người ta phân các mức đen trắng thành L mức, với số bit B= 8 bits để mã hóamức xám thì L được xác định:
Trang 13ĐỒ ÁN 3 Trang 6/25
HÌNH 1.3 ẢNH NHỊ PHÂN
1.3.2 Điểm ảnh(pixel)
Là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định Kíchthước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt ngườicả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ư ảnhthật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
1.3.3 Độ phân giải ả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 phải được chọn sao cho mắtngười vẫn 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ạonê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à ytrong không gian hai chiều
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là mộtlưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh(320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA17” độ phân giải 320*200 Lý do: cùng một mật độ (độ phân giải) nhưng diện tíchmàn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn
1.3.4 Mức xám
Tách vật thể ra khỏi khung nền
Trang 14Là kết quả của sự biến đổi tương ứng 1 giá trị độ sáng của 1 điểm ảnh với 1 giátrị nguyên dương Thông thường nó xác định trong [0, 255] tuỳ thuộc vào giá trị màmỗi điểm ảnh được biểu diễn 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 (8bit) để biểu diễn mức xám Mức xám dùng 1 byte biểu diễn: 256 mức, tức là từ 0đến 255)
Trang 15ĐỒ ÁN 3 Trang 8/25
2.1 GIỚI THIỆU CHUNG
lý tín hiệu số, xử lý đồ họa, … mà không phải lập trình cổ điển
Hiện nay, Matlab có đến hàng ngàn lệnh và hàm tiện ích Ngoài các hàm cài sẵntrong chính ngôn ngữ, Matlab còn có các lệnh và hàm ứng dụng chuyên biệt trongcác Toolbox, để mở rộng môi trường Matlab nhằm giải quyết các bài toán thuộc cácphạm trù riêng Các Toolbox khá quan trọng và tiện ích cho người dùng như toán sơcấp, xử lý tín hiệu số, xử lý ảnh, xử lý âm thanh, ma trận thưa, logic mờ,…
2.1.2 Tổng quan về cấu trúc và giao diện
Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), và cónhiều loại kiểu dữ liệu: đơn, double, sprase, uint8, cell,…
Hệ thống giao diện của Matlab được chia thành 5 phần: môi trường, thư viện,ngôn ngữ matlab, đồ họa và giao tiếp với ngôn ngữ khác
Matlab tạo điều kiện thuận lợi cho:
Các khoá học về toán học
Các kỹ sư, các nhà nghiên cứu khoa học
Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất
Tách vật thể ra khỏi khung nền
Trang 16HÌNH 2.1 GIAO DIỆN MATLAB
2.2 CÔNG CỤ DIGITAL IMAGE PROCESSING TOOLBOX
2.2.1 Giới thiệu về toolbox trong matlab
Toolbox là công cụ quan trọng nhất trong matlab Công cụ này được Matlab cungcấp cho phép ứng dụng các kỹ thuật để phân tích, thiết kế, mô phỏng các mô hình
Ta có thể tìm thấy toolbox ở trong mô trường làm việc của:
Mạng nơron
Logic mờ
Simulink
Trang 17ĐỒ ÁN 3 Trang 10/25
Image Processing Toolbox là công cụ cung cấp một tập hợp các thuật toán chuẩntham chiếu và ứng dụng để xử lý, phân tích hình ảnh và phát triển thuật toán Chophép người dùng thực hiện việc phân đoạn hình ảnh(segmentation), tăng cườnghình ảnh(enhancement), giảm tiếng ồn(noise reduction), chuyển đổi hình học, và xử
lý hình ảnh 3D
Image Processing Toolbox còn cho phép tự động hóa quy trình xử lý hình ảnhthông thường Các chức năng và ứng dụng của nó cho phép ứng dụng vào việctương tác các hình ảnh và video, điều chỉnh độ tương phản,tạo biểu đồ,…
HÌNH 2.2 GIAO DIỆN IMAGE PROCESSING TOOLBOX
Tách vật thể ra khỏi khung nền
Trang 18CHƯƠNG 3 TÁCH VẬT THỂ RA KHỎI KHUNG NỀN
3.1 THIẾT KẾ HỆ THỐNG
HÌNH 3.1 SƠ ĐỒ KHỐI
3.1.1 Phân đoạn và xử lí ảnh (threshold segmentation)
Phân đoạn hình ảnh là quá trình chia một hình ảnh thành nhiều phần Điều nàythường được sử dụng để xác định các đối tượng hoặc thông tin liên quan khác tronghình ảnh kỹ thuật số Có nhiều cách khác nhau để thực hiện phân đoạn hình ảnh,bao gồm: phương pháp Otsu, K mean, lọc kết cấu Ở đây ta chỉ dùng thuật toánOtsu để phân đoạn ảnh
Otsu là tên một nhà nghiên cứu người Nhật đã nghĩ ra ý tưởng cho việc tínhngưỡng một cách tự động dựa vào giá trị điểm ảnh của ảnh đầu vào nhằm thay thếcho việc sử dụng ngưỡng cố định Phương pháp Otsu còn gọi là nhị phân hóa hìnhảnh
Đầu tiên sử dụng lược đồ Histogram biểu diễn tần suất xuất hiện mức xám dựatrên hàm mật độ:
Trong đó: n - tổng số pixel trên ảnh;
nq - tổng số pixel có mức độ xám rq;
L - tổng số ngưỡng độ xám trên ảnh;
Trang 19ĐỒ ÁN 3 Trang 12/25
Giả sử có ngưỡng k được chọn sao cho C0 là tập hợp các pixel có ngưỡng từ[0,1,…,k-1] và C1 là tập hợp các pixel có ngưỡng từ [k,k+1,…,L-1] Phương phápOtsu lựa chọn ngưỡng k sao cho độ lệch chuẩn giữa các lớp là lớn nhất Độ lệchchuẩn được xác định theo công thức:
HÌNH 3.2 ẢNH ĐẦU VÀO
Tách vật thể ra khỏi khung nền
Trang 20HÌNH 3.4 KẾT NỐI ĐIỂM ẢNH
Gắn nhãn thành phần kết nối là quá trình xác định các thành phần được kết nốitrong một hình ảnh và gán cho mỗi một nhãn một duy nhất, như sau:
Trang 21ĐỒ ÁN 3 Trang 14/25
3.1.3 Tách đối tượng ra khỏi khung nền
Sau khi nhận dạng gắn nhãn đối tượng, ta phải tạo đường bao (bounding box)bao quanh các đối tượng đó Đường bao sẽ tự nhận biết các đối tượng có giá trịđiểm ảnh nằm trong vùng sáng của thành phân kết nối 8 trong ảnh nhị phân( bw).Đối tượng được chọn để tách phải nằm trong khu vực được chọn
Tách vật thể ra khỏi khung nền
Trang 22Ví dụ về đoạn mã:
Sdata=regionprops(L,'BoundingBox'); %tao khung vuong bao quanh doi tuong
for i=1:Total % cho i chạy từ 1 đến tổng số thành phần của mảng
Img=imcrop(A,Sdata(i).BoundingBox); %tao khung chu nhat de cat anh
HIHI=strcat('Object Number:',num2str(i)); %noi chuoi va chuyen doi so thanh ki tu
GUI được viết tắt của từ “Graphical User Interface” dịch theo tiếng việt là giao
diện đồ họa cho người dùng Là ta sẽ tiến hành sử dụng chuột để thao tác các thanhcông cụ đã được con người lập trình sẵn và tích hợp vào phần mền Matlab Nó chophép tương tác giao diện chương trình từ đó nhìn được một cách khách quan nhất
và bắt đầu viết code để tương tác giao diện
Hầu hết GUI chỉ thực hiện lệnh của người dùng thông qua các tác động lên hệthống giao diện GUI được thực hiện dựa trên hàm callback Khi người dùng tácđộng lên giao diện bằng các cách khác nhau, hàm callback sẽ được gọi để thực thilệnh
Trang 23ĐỒ ÁN 3 Trang 16/25
3.2.2 Cách sử dụng GUI
Tại cửa sổ command window của matlab gõ lệnh guide, giao diện guide sẽ hiện ra
Chỉ cần nhấp chọn vào Blank Gui và bắt đầu viết giao diện Giao diện được tạo ra
gọi là file.fig
Các lệnh cơ bản trong GUI:
Push Button: Dùng để khi nhấn chuột vào thì nút này sẽ xử lý một công việc nào đó
mà người dùng muốn
Static Text: Dùng để hiện thì thông tin cho một đối tượng nào đó hoặc có thể xuất
dữ liệu từ chương trình ra đây
Callback: Là Function khi thực hiện thao tác gì đó trên GUI Gỉa sử nhấn
chuột vào 1 Button nào đó mà bạn kéo vào GUI thì Function sẽ thực hiện cáccâu lệnh bên trong mà bạn đã viết
Giao diện được callback là giao diện file.m Hai giao diện này luôn tương tác song
song với nhau để thực thi chương trình
Tách vật thể ra khỏi khung nền
Trang 243.2.3 Thiết kế giao diện GUI cho đề tài
HÌNH 3.8 GIAO DIỆN ĐỀ TÀI
Thiết lập các thuộc tính trong GUI:
Trang 25ĐỒ ÁN 3 Trang 18/25
File.m khi được callback:
HÌNH 3.9 FILE m
CHƯƠNG 4 : KẾT QUẢ MÔ PHỎNGTách vật thể ra khỏi khung nền
Trang 26 Mô phỏng với hệ màu RGB
HÌNH 4.1 ẢNH RGB
Chuyển sang ảnh xám và nhị phân
HÌNH 4.2 ẢNH XÁM VÀ NHỊ PHÂN
Trang 27ĐỒ ÁN 3 Trang 20/25
Trang 28Sau khi được giao đề tài đồ án, em đã tiến hành xây dựng và thiết kế hoàn chỉnh
hệ thống đề tài như yêu cầu Kết quả đạt được :
Nắm bắt được thông tin cơ bản về xử lí ảnh và phương pháp nhận diện vật thể, tách vật thể ra khỏi khung nền
Vật nhận diện được còn bị hạn chế, một số ảnh chưa thể tách ra được.Hướng phát triển:
Cần thêm quá trình lọc nhiễu cao để có thể nhận diện được nhiều loại ảnhhơn
Có thể dùng trong việc xử lí và nhận diện để đánh giá mặt tốt xấu của đồ vật