Với mong muốn cung cấp tóm lược những kiến thức cơ bản của xử lý ảnh, bài giảng này được tham khảo trên nhiều nguồn tài liệu khác nhau nhằm cung cấp cho sinh viên có được cái nhìn tổng q
Trang 1
BỘ CÔNG THƯƠNG |
TRƯỜNG ĐẠI HỌC SAO ĐỎ
SAODo, (yywERSITY, \§
ĐỎ ÁN HỌC PHẢN XỬ LÝ ẢNH TEN DE TAI: BIEN DOI HINH THAI HOC
Sinh viên thực hiện : Nguyễn Thị Thanh Hậu
Lớp : DKI0-CNTT
Giảng viên : Hoàng Thị An
Trang 2
LỜI NÓI ĐẦU
Xử lý ảnh là môn học đang được quan tâm và đã trở thành một môn học chuyên ngành của sinh viên ngành Công nghệ Thông tin cũng như những ngành kỹ thuật trong các trường Đại học Môn học này có liên quan đến nhiều ngành khác như: hệ thống tin học, lý thuyết thông tin, lý thuyết thống kê, nhận dạng Với mong muốn cung cấp tóm lược những kiến thức cơ bản của xử lý ảnh, bài giảng này được tham khảo trên nhiều nguồn tài liệu khác nhau nhằm cung cấp cho sinh viên có được cái nhìn tổng quát về lĩnh vực xử lý ảnh và những ứng dụng của nó trong cuộc sống Xin chân thành cám ơn những ý kiến đóng góp quý báu của các đồng nghiệp và các bạn sinh viên đã góp ý cho bài giảng hoàn thiện hơn
CHUONG I: CO SO LY THUYET 1.1 Một số khái niệm
Trình bày các kiến thức cơ bản về xử lý ảnh: Khái niệm ảnh số, ảnh màu, ảnh xám, ảnh nhị phân; không gian màảu
° Tổng quan về hệ thống xử lý ảnh
Xử lý ảnh là một khoa học còn tương đối mới mẻ so với nhiều ngành khoa học khác, nhất là trên quy mô công nghiệp, song trong xử lý ảnh đã bắt đầu xuất hiện những máy tính chuyên dụng
® Pixel (picture element): phan tử ảnh
Ảnh trong thực tế là một ảnh liên tục về không gian và giá trị độ sáng Đề có thê xử lý ảnh bằng máy tính cần thiết phải tiến hành số hoá Trong quá trình số hoá người ta biến đối tín hiệu liên tục sang tín hiệu rời rạc thông qua quá trình lấy mẫu(rời rạc hoá về không gian) và lượng hoá thành phần giá trỊ, về nguyên tắc bằng mắt thường không thê phân biệt được hai điểm kề nhau Trong quá trình này, người ta sử dụng khái niệm Picture element mà ta quen gọi hay viết tắc là Pixel (phần tử ảnh) Như vậy ảnh là một tập hợp các pixel
© Grey leval (mire xam)
Mức xám là kết quả sự mã hoá tương ứng cường độ một điểm ảnh với một giá trị số, kết quả của quá trình lượng hoá Cách mã hoá kinh điển thường dùng là
16, 32, 64 mức Mã 256 là phổ dụng nhất, mỗi pixel được mã hoá bởi 8 bít
¢ Giãn nở: Thêm pixel vào các đường biên (boundaries) của các đối tượng trong ảnh
© Xói mòn: Loại bỏ pixel trên đường biên của đối tượng
Số lượng pixel được thêm/xóa phụ thuộc vào hình dạng và kích thước của phần
tử cầu trúc
Trạng thái của pixel trong ảnh đầu vào được xác định bằng cách áp dụng quy tắc cho pixel tương ứng và các lân cận của nó trong ảnh đầu vào
Quy tắc được sử dụng để xứ lý các pixel xác định hoạt động là sự giãn nở hay x01 mon
1.2 Bién déi hình thái học
® Khái niệm cơ bản
Trang 3Morphological Image Processing là tập hợp các phép toán phi tuyến tính (non-linear) tác động đến hình dạng hoặc hình thái của các điểm nhị phân trong ảnh Dựa trên các phép toán AND OR XOR NOT để biến đôi các điểm nhị phân
Morphological Operator sẽ sử dụng một cấu trúc nhỏ quét qua và áp dung toan b6 anh duoc goi la Structuring Element (SE) SE sé quét qua toàn bộ vị trí trong hình ảnh và so sánh với các pixel lân cận nằm trong vung sẽ tương ứng
Structunng Element là một ảnh nhị phân nhỏ Tức là một ma trận nhỏ gồm các pixel mang giá trị 0 và l:
Kích thước của ma trận xác định kích thước của SE
Pixel có giá trị 0 được bỏ qua trong quá trình tính toán
Luôn có một pixel làm mốc trong ma trận SE
Structuring Element hoạt động giống như ma trận tich chap (convolution kernel) trong lọc ảnh tuyến tinh (linear image filtering) SE sé dich chuyên toàn bộ ảnh với điểm mốc
® Opening và Closing
Opening là thực hiện phép co rồi bắt đầu thực hiện phép giãn với một cầu trúc Giúp làm mượt các đường viên, phá vỡ các khe nhỏ, loại bỏ các đối tượng nhỏ, làm mượt các đỉnh lôi
Closing là thực hiện phép giãn rồi bắt đầu thực hiện phép co với một cầu trúc Giúp làm mượt các đường viền, loại bỏ các lỗ nhỏ, làm mượt các
đỉnh khe hẹp
Trình bày các kiến thức liên quan đến đề tài Ví dụ đề tài làm về khử nhiễu cho ảnh, trình bay về nhiễu, các loại nhiễu, cách tạo nhiễu Các phương pháp khử nhiễu (chia các mục cho phù hợp với đề tải) - tham khảo giáo trình cách trình bày các kiến thức liên quan đến đề tài
s Phép dãn
Phép dãn của ảnh A bởi phần tử cấu trúc B cho ra ảnh G Mỗi vị trí cầu trúc B quét qua được sẽ chọn giá trị lớn nhất và trả về điểm mốc tương ứng trên ảnh G
Phép giãn ảnh sửa chữa các chỗ nứt
Phép giãn ảnh làm giãn các đối tượng
Phép giãn ảnh làm cho các vật thé rd hon va lấp đầy các lỗ nhỏ trên các vật thê
Imdilate(image,SE)
® Phép co
Phép co của ảnh A bởi phan tử cấu trúc B cho ra ảnh G
Mỗi vị trí cau tric B quét qua được sé chon giá trị nhỏ nhất và trả về điểm mốc tương ứng trên ảnh G
Trang 4- Phép co ảnh loại bỏ các đối tượng nhỏ, đối tượng tách biệt chỉ để lại các đôi tượng đáng kê
; , Imerode(image,SE)
® Một sô phép biên đôi dựa trên phép giãn ảnh và co ảnh:
Function Define
imopen Perform morphological opening imclose Perform morphological closing
bwskel Skeletonize objects in a binary
image
bwperim Find perimeter of objects in a
binary image
bwhitmiss Perform binary hit-miss transform
imtophat Perform a morphological top-hat
transform
imbothat Perform morphological bottom-
hat transform
® Phép mo anh (imopen)
- Lasu két hợp phép co ảnh và giãn ảnh với cùng | phan tử câu trúc
- _ Thực hiện phép co ảnh trước, sau đó thực hiện giãn anh
-_ Phép mở ảnh rất hữu ích loại bỏ các đối tượng nhỏ trong ảnh trong khi vần giữ được hình dạng và kích thước của các vật thê lớn trong ảnh
Trang 5- _ Thực hiện mở hình thái Thao tác mở sẽ xóa một hình ảnh và sau đó làm giãn hình ảnh bị xói mòn, sử dụng cùng một thành phần cấu trúc cho cả hai thao tác
- _ Mở hình thái rất hữu ích dé loại bỏ các vật thê nhỏ khỏi hình ảnh trong khi vẫn giữ được hình dạng và kích thước của các vật thê lớn hơn trong hình ảnh
° Phép đóng ảnh (imclose)
Là sự kết hợp phép co ảnh và giãn ảnh với cùng | phan tr cau trúc -_ Thực hiện phép giãn ảnh trước, sau đó thực hiện co ảnh
- - Thực hiện đóng hình thái Thao tác đóng làm giãn một hình ảnh và sau
đó làm xói mòn hình ảnh bị giãn, sử dụng cùng một yếu tố cấu trúc cho
cả hai hoạt động
- Đóng hình thái là hữu ích đề lấp đầy các lỗ nhỏ từ một hình ảnh trong khi vẫn giữ được hình dạng và kích thước của các đối tượng trong hình ảnh
Trang 6CHƯƠNG 2 XÂY DỰNG ỨNG DỤNG 2.1 Mô tả bài toán
Mô tả bài toán, các chức năng cơ bản của bài toán
(Sử dụng phân mêm Eclipse phiên bản bao nhiêu? SQL Server phiên bản bao
nhiêu? )
2.2 Công cụ - `
® Giới thiéu tong quan vé Matlab
Matlab là một ngôn ngữ lập trình thực hành bac cao được sử dụng dé giải các bài toán về kỹ thuật Matlab tích hợp được việc tinh toán, thê hiện kết quả, cho phép lập trình, giao diện làm việc rat dé dàng cho người sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng
có thê có được những ứng dụng sau đây
Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường
Cho phép lập trình tạo ra những ứng dụng mới
Cho phép mô phỏng các mô hình thực tế
Phân tích, khảo sát và hiển thị dữ liệu
Với phần mềm đồ hoạ cực mạnh
Cho phép phát triên, giao tiếp với một số phần mềm khác như C+>, Fortran
® Tông quan về cầu trúc dữ liệu của Matlab, các ứng dụng
Matlab là một hệ thống tương giao, các phan tử đữ liệu là một mảng (mảng này không đòi hỏi về kích thước) Chúng cho phép giải quyết các van
đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về
ma trận hay vectơ và có thê sử dụng ngôn ngữ C học Fortran lập trinh roi thực hiện ứng dụng lập trình đó bằng các câu lệnh gọi từ Matlab Matlab được viết tắt từ chữ “MATrix LABoratory” tức 1a thư viện về ma trận, từ
đó phần mềm Matlab được viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận một cách đễ dàng, phần mềm ma trận này được phát triển bởi các công trình Linpack và Eispack Ngày nay Matlab được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận
° Dirligu
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ó các kiêu dữ liệu được liệt kê sau đây:
Kiéu don single, kiéu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, kiêu dữ liệu này không được sử dụng trong các phép tính toán học,
độ chính xác kém hơn
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab Kiểu Sparse
Kiểu uint8, uint8, uintl6, uint64
Kiéu char vi du “Hello”
Kiéu cell
Kiéu Structure
Trang 7Trong Matlab kiểu đữ liệu double là kiểu mặc định sử dụng trong các phép tính sô học
° Ứng dụng
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 nhat trong sản xuất
® - Toolbox là một công cụ quan trong trong Matlab
Công cụ này được Matlab cung cấp cho phép bạn ứ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ể tim thay toolbox ở trong mô trường làm việc của
Mạng nơron
Logic mo
Simulink
¢ Hé théng Matlab
Hé thong giao dién cua Matlab được chia thành 5 phan:
Môi trường phát triển
Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh và các file, ta có thể liệt kê một số như sau
Desktop
Command Window
Command History
Browsers for viewinghelp
Thư viện, các hàm toán học bao gồm các cấu trúc như tính tong, sin cosin atan, atan2 etc , các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghích dao, trị riêng, chuyên đối fourier, laplace, symbolic library
Ngôn ngữ Matlab Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng lệnh, các hàm, cau tric dit ligu vao, co thê lập trình hướng đối tượng
Đồ hoạ trong Matlab Bao gồm các câu lệnh thê hiện đồ họa trong môi trường 2D và 3D, tạo các hình ảnh chuyến động, cung cấp các giao diện tương tác giữa người sử dụng và máy tính
Giao tiếp với các ngôn ngữ khác Matlab cho phép tương tác với các ngôn ngữ khác như C, Fortran
Giới thiệu công cụ sử dụng dé thiết kế ứng dụng (VD: Matlab 2019b; OpenCV, Python, các thư viện cân cho ứng dụng (nêu có)
2.3 Thiết kế ứng dụng
Trang 82.3.1 Giao diện _
£ VATLAB Ape
Ảnh Kết Qua Arh Góc
2.3.2 Các chức năng chính
* LOAD
% Button pushed function: LOADButton
function LOADButtonPushed(app, event)
global a;
[FileName,PathName] = uigetfile('*.*','Load ‘);
FileName =strcat(PathName, FileName) ;
a=imread(FileName) ;
imshow(a, ‘Parent’ ,app.UIAxes) ;
end
° XOI MON
% Button pushed function: XIMNButton
function XIMNButtonPushed(app, event)
lglobal a;
global 3;
J=a;
se = strel(‘line’,11,90);
J = imerode(J,se);
imshow(3, “Parent”, app.UIAxes2) ;
end
Trang 9® GIÃN NỞ
% Button pushed function: GANNButton
function GANNButtonPushed(app, event) global a;
global 3;
se = strel(‘line’,11,90);
J = imdilate(j,se);
imshow(3, "Parent", app.UIAxes2);
end
¢ IMOPEN
% Button pushed function: IMOPENButton function IMOPENButtonPushed(app, event) global a;
global 3;
J=a3
se = strel('disk',5);
afterOpening = imopen(J,se);
imshow(afterOpening, "Parent", app.UIAxes2) ;
end
® IMCLOSE
% Button pushed function: TMCLOSEButton function IMCLOSEButtonPushed(app, event) global a;
global 3;
J=a;
se = strel('disk',10);
close] = imclose(J,se);
end
end
Trang 102.4 Kết quả chương trình „
® Chương trình Load ảnh gốc
Trang 11
¢ Anh két quả của “Xói mòn”
Ảnh Kết Quả
Trang 12
e Anh ket qua cua “Imelose”
Trang 13
KÉT LUẬN VA HUONG PHAT TRIEN
1 Kết luận
e - Đã hoàn thành chương trình chạy biến đôi hình thái học với 4 hình thái cơ bản:
- Gian no
- X6i mon
- Imopen
- Imclose
¢ Mot sé tai liệu tham khảo
- Giao trinh “Xu ly anh”
- Tài liệu Internet “https://apit.vn/xu-ly-anh-hinh-thai-hoc-morphological- image-processing/”’
- “https:/Awww.slideshare.net/phamngoclong33/2-9-27278324”
2 Hướng phát triển
Đề đề tai tốt hơn, em đề xuất hướng phát triên của đề tài (bô sung chức năng, sử dụng công cụ thiết kế giao điện đẹp hơn như )
Trang 14TÀI LIỆU THAM KHẢO LI] Trường Đại học Sao Đỏ (2022), Giáo trình Xử lý ảnh [2] Trần Văn A (2018), Xử lý ảnh, NXB KH&KT