NHẬN DẠNG HÌNH học của vật THỂ (có code bên dưới) .............................. NHẬN DẠNG HÌNH học của vật THỂ (có code bên dưới) .............................. NHẬN DẠNG HÌNH học của vật THỂ (có code bên dưới) .............................. NHẬN DẠNG HÌNH học của vật THỂ (có code bên dưới) .............................. NHẬN DẠNG HÌNH học của vật THỂ (có code bên dưới) ..............................
Trang 1NHẬN DẠNG HÌNH HỌC
CỦA VẬT THỂ
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT VI
CHƯƠNG 1 GIỚI THIỆU VỀ ẢNH SỐ VÀ XỬ LÝ ẢNH 1
1.1 CÁC KHÁI NIỆM CƠ BẢN VỀ ẢNH 1
1.1.1 Điểm ảnh (Picture Element) 1
1.1.2 Mức xám 2
1.1.3 Độ phân giải (Resolution) 2
1.2 PHÂN LOẠI ẢNH 2
1.2.1 Ảnh nhị phân 2
1.2.2 Ảnh xám 3
1.2.3 Ảnh màu 3
1.3 XỬ LÝ ẢNH VỚI MATLAB 5
1.3.1 Thu nhận ảnh (Image Acquisition) 5
1.3.2 Tiền xử lý (Image Processing) 5
1.3.3 Phân đoạn (Segmentation) 5
1.3.4 Biểu diễn ảnh (Image Representation) 6
1.3.5 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) 6
1.3.6 Cơ sở tri thức (Knowledge Base) 6
CHƯƠNG 2 SƠ LƯỢC VỀ MATLAB 7
2.1 MATLAB 7
2.2 DIGITAL IMAGE PROCESSING TOOL 8
Trang 3TÀI LIỆU THAM KHẢO 16 PHỤ LỤC 17
Trang 4HÌNH 1-2: ĐIỂM ẢNH 2
HÌNH 1-3:ẢNH NHỊ PHÂN 2
HÌNH 1-4: ẢNH XÁM 3
HÌNH 1-5: HỆ MÀU RGB 4
HÌNH 1-6: HỆ MÀU CMYK 4
HÌNH 1-7: CÁC BƯỚC CƠ BẢN TRONG XỬ LÝ ẢNH 5Y HÌNH 2-1: GIAO DIỆN MATLAB KHI CHẠY ỨNG DỤNG 7
HÌNH 2-2: HÀM IMREAD VÀ IMSHOW ĐỂ HIỂN THỊ ẢNH TRÊN MATLAB 9
HÌNH 2-3: CHUYỂN ĐỔI ẢNH RGB THÀNH ẢNH XÁM 9
HÌNH 2-4: CHUYỂN ĐỔI ẢNH XÁM THÀNH ẢNH NHỊ PHÂN 10
HÌNH 2-5: ẢNH XÁM ĐƯỢC TÁCH BIÊN 10
HÌNH 2-6: ẢNH CỦA ĐỐI TƯỢNG ĐƯỢC LOẠI BỎ CÁC CHI TIẾT KHÔNG CẦN THIẾT 11
HÌNH 3-1: GIAO DIỆN MÔ PHỎNG GUI TRÊN MATLAB 12
HÌNH 3-2: NHẬN DẠNG HÌNH TAM GIÁC 13
HÌNH 3-3: NHẬN DẠNG HÌNH THOI 13
HÌNH 3-4: NHẬN DẠNG HÌNH VUÔNG 14
HÌNH 3-5: NHẬN DẠNG HÌNH TRÒN 14
Trang 5GPU Graphics Processing Unit
GUI Graphical User Interface
MATLABMatrix Laboratory
Trang 6CHƯƠNG 1 GIỚI THIỆU VỀ ẢNH SỐ VÀ XỬ LÝ ẢNH
1.1 Các khái niệm cơ bản về ảnh
Ảnh số là tập hợp các điểm ảnh với mức xám dùng để mô tả ảnh sao cho gần vớiảnh thật
Hình 1-1: Ảnh
1.1.1 Điểm ảnh (Picture Element)
Trang 7Điểm ảnh (pictrure element viết tắt là pixel) là một phần tử của ảnh số có toạ độ (x,y) với độ xám hoặc màu nhất định
Hình 1-2: Điểm ảnh
1.1.2 Mức xám
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đó
1.1.3 Độ phân giải (Resolution)
Độ phân giải (resolution) tức là mật độ điểm ảnh của ảnh đó
Độ phân giải của ảnh càng cao thì bức ảnh mà ta nhìn thấy càng rõ nét
Trang 9Trong đó, K là độ đậm nhạt của màu, K= min(C, M, Y)
Hình 1-6: Hệ màu CMYK
1.3 Xử lý ảnh với MATLAB
Trang 10Hình 1-7: Các bước cơ bản trong xử lý ảnh
1.1.6 Thu nhận ảnh (Image Acquisition)
Ảnh được thu từ các thiết bị kĩ thuật số như: máy quay phim, máy quét, ảnh vệ tinh,điện thoại, máy ảnh, sau đó được lưu trữ trên máy tính, ổ cứng hay đĩa mềm,
1.1.7 Tiền xử lý (Image Processing)
Là quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnh tốt lên theo mục đích sửdụng Chẳng hạn như giảm nhiễu, giảm mờ, tăng cường độ tương phản, nâng caochất lượng ảnh,
1.1.8 Phân đoạn (Segmentation)
Là quá trình phân tách nội dung các đối tượng cần khảo sát ra khỏi ảnh Gồm: phânchia các đối tượng tiếp giáp nhau và phân chia các đối tượng riêng biệt thành cácđối tượng con
1.1.9 Biểu diễn ảnh (Image Representation)
Chọn các đặc trưng thích hợp của từng đối tượng để phân chia các lớp đối tượng,sau đó gán nhãn cho từng đối tượng dựa trên thông tin đã được mô tả
Trang 11Nhận dạng ảnh là quá trình xác định ảnh, gán ý nghĩa cho từng đối tượng đã đượcnhận dạng.
Nội suy là phán đoán theo ý nghĩa của đối tượng cần tìm trên cơ sở nhận dạng.Ảnh được phân loại bằng nhiều cách khác nhau 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 theo tham số
Nhận dạng theo cấu trúc
Một số đối tượng nhận dạng khá phổ biến hiện nay như: 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ậndạng mã vạch, nhận dạng mặt người, nhận dạng hình học…
1.1.11 Cơ sở tri thức (Knowledge Base)
Áp dụng công nghệ khoa học, trí tuệ nhận nhân tạo, cơ sở dữ liệu vào quá trình xử
lý ảnh giúp cải thiện quá trình xử lý được thực hiện nhanh chóng, hiệu quả, chínhxác,
Trang 12CHƯƠNG 2 SƠ LƯỢC VỀ MATLAB
1.4 MATLAB
MATLAB viết tắt của từ tiếng anh Matrix Laboratory là một môi trường tính toán
số và lập trình, được thiết kế bởi công ty MathWorks MATLAB cho phép tính toán
số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo cácgiao diện người dùng và liên kết với những chương trình máy tính viết trên nhiềungôn ngữ lập trình khác MATLAB giúp đơn giản hóa việc giải quyết các bài toántính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như C, C++, vàFortran…
MATLAB được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyềnthông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính,hay tính toán sinh học
Giao diện của MATLAB khi chạy ứng dụng:
Trang 131.5 Digital image processing tool
Digital image processing tool là hộp công cụ cung cấp một cách toàn diện các thuậttoán tham chiếu và ứng dụng để xử lý, phân tích và phát triển thuật toán Có thểthực hiện phân đoạn hình ảnh, tăng cường hình ảnh, giảm nhiễu, giảm mờ, chuyểnđổi hình ảnh, đăng ký hình ảnh và xử lý hình ảnh 2D hoặc 3D
Ứng dụng hộp công cụ xử lý hình ảnh cho phép tự động hóa quy trình xử lý hìnhảnh Có thể tương tác phân đoạn dữ liệu hình ảnh, so sánh hình ảnh và xử lý hàngloạt các tập dữ liệu theo mảng Các chức năng và ứng dụng hình ảnh cho phép tạokhối 2D 3D và video, điều chỉnh độ tương phản, tạo biểu đồ và xử lý thuộc tínhtừng đối tượng
1.6 Các hàm được sử dụng trong đề tài
Trang 14Hình 2-2: Hàm imread và imshow để hiển thị ảnh trên MATLAB
Rgb2gray()
Hàm rgb2gray() chuyển đổi hình ảnh RGB thành ảnh xám, bằng cách loại bỏ cácthông tin màu sắc và độ bão hòa, nhưng vẫn giữ độ sáng
Trang 15 im2bw()
Hàm im2bw() chuyển đổi các hình ảnh màu xám sang một hình nhị phân Hay tạomột ảnh nhị phân từ một ảnh cường độ, ảnh chỉ số hay ảnh RGB trên cơ sở củangưỡng ánh sáng
Hình 2-4: Chuyển đổi ảnh xám thành ảnh nhị phân
Edge ()
Hàm edge() bộ lọc biên ảnh dựa trên ảnh xám Gồm các bộ lọc biên khác nhau:sobel, roberts, canny, prewitt,
Hình 2-5: Ảnh xám được tách biên
Trang 16Xóa các chi tiết nhỏ không cần thiết, lấp các khoảng trống của đối tượng cần tìm.bwe = bwareaopen(bwe,30);
sel = strel('disk',2);
bwe = imclose(bwe,sel);
bwe = imfill(bwe,'holes');
Hình 2-6: Ảnh của đối tượng được loại bỏ các chi tiết không cần thiết
Truy vấn để đo các thuộc tính của đối tượng chẳng hạn như tâm, diện tích tam = regionprops(la, 'centroid');
dtich = regionprops(la, 'area');
Công thức toán học thực hiện xác định cho từng đối tượng:
square = c/(4*b^2);
Trang 17CHƯƠNG 3 KẾT QUẢ MÔ PHỎNG TRÊN MATLAB
1.7 Giao diện GUI trên MATLAB
Đồ thị 1 hiển thị ảnh đầu vào
Đồ thị 2 hiển thị ảnh của đối tượng được tách biên,xóa các chi tiết không cần thiết
và fill in các khoảng trống để được khung của đối tượng cần tìm
Đồ thị 3 hiển thị đối tượng đã được xử lý nhận dạng
Hình 3-1: Giao diện mô phỏng GUI trên MATLAB
1.8 Mô phỏng trên MATLAB
Trang 18Hình 3-2: Nhận dạng hình tam giác
Hình 3-3: Nhận dạng hình thoi
Trang 19Hình 3-4: Nhận dạng hình vuông
Hình 3-5: Nhận dạng hình tròn
Trang 20CHƯƠNG 4 NHẬN XÉT
1.9 Nhận xét
Giao diện GUI mô phỏng đơn giản
Nhận dạng các vật thể có hình dạng phổ biến như hình vuông, hình chữ nhật, hìnhtròn, hình tam giác,
Chưa nhận dạng được các vật thể có hình dạng phức tạp
Kết quả mô phỏng chưa đạt được đồ hoàn hiện cao nhất
1.10 Kết luận
Kết quả mô phỏng thực hiện đúng yêu cầu của đề tài đưa ra
Giúp sinh viên vận dụng kiến thức đã học áp dụng vào thực tế
Giúp sinh viên tìm hiểu học hỏi thêm nhiều lĩnh vực
1.11 Hướng phát triển
Cải tiến, phát triển để có thể nhận dạng các vật thể có hình dạng phức tạp hơn chẳnghạn như hình trụ, hình nón, hình quạt,hình cầu,
Phát triển để có thể nhận dạng các vật thể ở môi trường thực tế
Thiết kế giao diện GUI mô phỏng sao cho nhìn tinh tế hơn
Hoàn thiện để đạt độ chính xác cao nhất có thể
Trang 21TÀI LIỆU THAM KHẢO
Trang 22PHỤ LỤC
Code của chương trình:
function pushbutton1_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile({'*.bmp';'*.jpg';'*.gif';'*.*'}, 'Pick an Image File');
%search anh tu kho du lieu
%loc bien anh tu anh xam
%thao tac thuc hien de xoa cac chi tiet <30 pixel nham xoa cac chi tiet
Trang 23%thuc hien thao tac chuyen anh goc thanh anh xam
%loc bien anh anh xam
%thuc hien de xoa cac chi tiet nho 30 pixel nham xoa cac chi tiet
%thua khong can thiet
%dung ham strel khoi tao mot hinh dia, sau do fill vao khung trong de
%duoc khung anh can tim
la = bwlabel(bwe); %danh dau tung doi tuong tu anh vua tim duoc bien
%tim tam va dien tich cua doi tuong
tam = regionprops(la, 'centroid');
dtich = regionprops(la, 'area');
Trang 25text(tam(k).Centroid(1),tam(k).Centroid(2),'HINH TAM GIAC DEU'); end
end
function pushbutton5_Callback(hObject, eventdata, handles)
global i; %bien trung gian i khoi tao cho toan bo chuong trinh
Trang 26Perimeter = STATS(i).Perimeter;
Roundness=(4*Area*pi)/(Perimeter.^2);
if(Roundness > 0.8)
text(BB(1),BB(2),'HINH TRON','color','black'); elseif(length(lines) == 3)
text(BB(1),BB(2),'HINH TAM GIAC','color','black'); elseif(length(lines) == 4)
text(BB(1),BB(2),'HINH CHU NHAT','color','black'); elseif(length(lines) == 5)
text(BB(1),BB(2),'HINH NGU GIAC','color','black');