Tải bản đầy đủ (.docx) (26 trang)

NHẬN DẠNG HÌNH học của vật THỂ (có code bên dưới)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.58 MB, 26 trang )

ĐỒ ÁN 3

NHẬN DẠNG HÌNH HỌC
CỦA VẬT THỂ


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ..............................................................................................V
DANH 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

2.3

CÁC HÀM ĐƯỢC SỬ DỤNG TRONG ĐỀ TÀI...................................................................8

CHƯƠNG 3. KẾT QUẢ MÔ PHỎNG TRÊN MATLAB.............................................12
3.1

GIAO DIỆN GUI TRÊN MATLAB.............................................................................12

3.2

MÔ PHỎNG TRÊN MATLAB.....................................................................................13

CHƯƠNG 4. NHẬN XÉT..................................................................................................15



4.1

NHẬN XÉT................................................................................................................15

4.2

KẾT LUẬN.................................................................................................................15

4.3

HƯỚNG PHÁT TRIỂN.................................................................................................15

TÀI LIỆU THAM KHẢO..................................................................................................16
PHỤ LỤC

........................................................................................................................17


DANH MỤC CÁC HÌNH
HÌNH 1-1: ẢNH.......................................................................................................1
HÌ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


DANH MỤC CÁC TỪ VIẾT TẮT

GPU

Graphics Processing Unit

GUI

Graphical User Interface

MATLABMatrix Laboratory


ĐỒ ÁN 3
Trang 1/21

CHƯƠ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)

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 2/21

Đ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.
1.2 Phân loại ảnh
1.1.3 Ảnh nhị phân
Ảnh nhị phân là ảnh mà mức xám của mỗi điểm ảnh có giá trị 1 hoặc 0, được biểu
diễn bằng một bit.


Hình 1-3:Ảnh nhị phân

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 3/21

1.1.4 Ảnh xám
Ảnh xám là ảnh có giá trị mức xám nằm trong khoảng từ 0 đến 255, mỗi điểm ảnh
được biểu diễn bằng 1 byte.

Hình 1-4: Ảnh xám
1.1.5 Ảnh màu
 Hệ màu RGB:
RGB là từ viết tắt tiếng Anh của cơ chế hệ màu cộng (additive light), được sử dụng
phổ biến để hiển thị màu trên các màn hình ti vi, monitor máy tính, điện thoại di
động, camera kỹ thuật số...Bao gồm các màu: R = Red (đỏ), B = Blue (xanh
dương), G = Green (xanh lá).

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 4/21

Hình 1-5: Hệ màu RGB
 Hệ màu CMY là phần bù của hệ màu RGB.
 Hệ màu CMYK:
CMYK là từ viết tắt tiếng Anh của cơ chế hệ màu trừ (subtractive paint), được sử

dụng phổ biến trong in ấn. Bao gồm các màu: C = Cyan (xanh), M = Magenta
(hồng), Y = Yellow (vàng), K = Black (Đen).
Trong

đó,

K



độ

đậm

nhạt

của

màu,

Hình 1-6: Hệ màu CMYK
1.3 Xử lý ảnh với MATLAB
Nhận Dạng Hình Học Của Vật Thể

K=

min(C,

M,


Y)


ĐỒ ÁN 3
Trang 5/21

Hì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 cao
chấ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ân
chia 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ả.
1.1.10 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 6/21


Nhận dạng ảnh là quá trình xác định ảnh, gán ý nghĩa cho từng đối tượng đã được
nhậ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án
họ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ận
dạ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ính
xác,...

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 7/21

CHƯƠ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ác
giao 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ều

ngô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án
tí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ền
thô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:

Hình 2-1: Giao diện MATLAB khi chạy ứng dụng

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 8/21

1.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ật
toá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àng
loạ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ạo
khối 2D 3D và video, điều chỉnh độ tương phản, tạo biểu đồ và xử lý thuộc tính
từng đối tượng.
1.6 Các hàm được sử dụng trong đề tài
 Imread()
Hàm imread() đọc một file thành một ma trận. MATLAB trợ giúp rất nhiều định
dạng đồ hoạ thông dụng sau: bmp, jpg, jpeg, png, tiff, gif,…

 Imshow()
Hàm imshow() hiển thị hình ảnh trong MATLAB, hình ảnh hiển thị được định dạng
tiêu chuẩn 8-bit

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 9/21

Hì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ác
thông tin màu sắc và độ bão hòa, nhưng vẫn giữ độ sáng.

Hình 2-3: Chuyển đổi ảnh RGB thành ảnh xám

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 10/21

 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ạo
một ảnh nhị phân từ một ảnh cường độ, ảnh chỉ số hay ảnh RGB trên cơ sở của
ngưỡ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

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 11/21

Xó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);
rectangle=c/(4*b*sqrt(a^2-b^2));
triangle=(c*sqrt(3))/((a+b)^2);
ellip =c/(a*b*pi);
diamond= (c*sqrt( a^2 - b^2 )) / (2*a^2*b);

Nhận Dạng Hình Học Của Vật Thể



ĐỒ ÁN 3
Trang 12/21

CHƯƠ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

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 13/21

Hình 3-2: Nhận dạng hình tam giác

Hình 3-3: Nhận dạng hình thoi

Nhận Dạng Hình Học Của Vật Thể



ĐỒ ÁN 3
Trang 14/21

Hình 3-4: Nhận dạng hình vuông

Hình 3-5: Nhận dạng hình tròn

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 15/21

CHƯƠ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ình
trò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ẳng
hạ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ể.

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 16/21

TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]

Giáo trình xử lý ảnh (biên soạn PGS.TS Nguyễn Quang Hoan)

[2]

Mathworks.com

[3]

Matlabthayhai.info

[4]

Vutienit.com

Nhận Dạng Hình Học Của Vật Thể



ĐỒ ÁN 3
Trang 17/21

PHỤ 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
img = imread([pathname,filename]);
%doc anh vao
axes(handles.axes1);
imshow(img);
%hien thi anh vao tren do thi
handles.img = img;
% bien trung gian cho chuong trinh
guidata(hObject, handles);
function pushbutton3_Callback(hObject, eventdata, handles)
global i;
%bien trung gian i khoi tao cho toan bo chuong trinh
img = handles.img;
axes(handles.axes2);
xam=rgb2gray(img);
%thao tac thuc hien chuyen doi anh xam tu anh anh goc
bwe=edge(xam);
%loc bien anh tu anh xam
%thao tac thuc hien de xoa cac chi tiet <30 pixel nham xoa cac chi tiet
%thua khong can thiet
%dung ham strel khoi tao mot hinh dia, sau do dien vao khoang trong de
%duoc bien anh can tim

imshow(bwe);bwe = bwareaopen(bwe,30);
sel = strel('disk',2);

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 18/21

bwe = imclose(bwe,sel);
bwe = imfill(bwe,'holes');
imshow(bwe);
% %sau do show anh len do thi
handles.bwe = bwe;
img = handles.img;
axes(handles.axes3);
format long;
%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
xam=rgb2gray(img);
bwe=edge(xam);
bwe = bwareaopen(bwe,30);
sel = strel('disk',2);
bwe = imclose(bwe,sel);
bwe = imfill(bwe,'holes');
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');
dim = size(tam);
BW_filled = imfill(bwe,'holes');
boundariesa = bwboundaries(BW_filled);
imshow(img);
hold on;

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 19/21

for k=1:dim(1)
b= boundariesa{k};
dim = size(b);
for i=1:dim(1)
khoangcach{k}(1,i) = sqrt ( ( b(i,2) - tam(k).Centroid(1) )^2 + ( b(i,1) tam(k).Centroid(2) )^2 );
end
%tu tam cua khung anh tim duoc, sau do tim duoc khoang cach max min
a=max(khoangcach{k});
b=min(khoangcach{k});
c=dtich(k).Area;
dlech=a-b;
%dien tich cua cac hinh hoc vuong, chu nhat, elip, tam giac deu, thoi
vuong = c/(4*b^2);
chunhat=c/(4*b*(a^2-b^2)^0.5);
tamgiacdeu=(c*3^0.5)/((a+b)^2);

elip =c/(a*b*pi);
thoi= (c*( a^2 - b^2 )^0.5) / (2*a^2*b);
if dlech < 10
text(tam(k).Centroid(1),tam(k).Centroid(2),'HINH TRON');
elseif (vuong < 1.05 ) & (vuong > 0.95 )
text(tam(k).Centroid(1),tam(k).Centroid(2),'HINH VUONG');
elseif (elip < 1.05 ) & (elip > 0.95 )
text(tam(k).Centroid(1),tam(k).Centroid(2),'HINH ELIP');
elseif (thoi < 1.05 ) & (thoi > 0.95 )
text(tam(k).Centroid(1),tam(k).Centroid(2),'HINH THOI');
elseif ((chunhat <1.05) & (chunhat >0.95))
text(tam(k).Centroid(1),tam(k).Centroid(2),'HINH CHU NHAT');
elseif (tamgiacdeu < 1.05 ) & (tamgiacdeu > 0.95 )

Nhận Dạng Hình Học Của Vật Thể


ĐỒ ÁN 3
Trang 20/21

text(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
img = handles.img;
axes(handles.axes2);
xam=rgb2gray(img);
bwe=edge(xam);
bwe = bwareaopen(bwe,30);

sel = strel('disk',2);
bwe = imclose(bwe,sel);
bwe = imfill(bwe,'holes');
imshow(bwe);
handles.bwe = bwe;
img = handles.img;
axes(handles.axes3);
format long;
outlined_img = img;
img = im2bw(img);% chuyen thanh anh nhi phan
img = edge(img);
for mm = 1:size(outlined_img,1)
for nn = 1:size(outlined_img,2)
if ((img(mm,nn) == 1))
outlined_img(mm,nn,:) = [255 0 0]; % duong vien mau do xung quanh doi
tuong
end
end
end

Nhận Dạng Hình Học Của Vật Thể


×