Tải bản đầy đủ (.pdf) (44 trang)

CHẾ TẠO THIẾT BỊ ĐẾM SẢN PHẨM BẰNG PHƯƠNG PHÁP XỬ LÝ ẢNH

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.03 MB, 44 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

KHÓA LUẬN TỐT NGHIỆP

CHẾ TẠO THIẾT BỊ ĐẾM SẢN PHẨM BẰNG PHƯƠNG
PHÁP XỬ LÝ ẢNH

Họ và tên sinh viên: TRẦN VỸ ANH
Ngành: ĐIỀU KHIỂN TỰ ĐỘNG
Niên khóa: 2007-2011

Tháng 05/2011


CHẾ TẠO THIẾT BỊ ĐẾM SẢN PHẨM BẰNG
PHƯƠNG PHÁP XỬ LÝ ẢNH

Tác giả

TRẦN VỸ ANH

Luận văn được đệ trình để hoàn tất yêu cầu cấp bằng Kỹ sư Điều khiển tự động
Ngành Điều khiển tự động

Giáo viên hướng dẫn:
Th.S Đặng Phi Vân Hài

Tháng 05 năm 2011
i



LỜI CẢM ƠN
Em xin trân trọng cám ơn tất cả quý Thầy/Cô ở trường Đại học Nông Lâm
TP.Hồ Chí Minh, quý Thầy/Cô trong Khoa Cơ Khí đã trang bị cho em những kiến
thức quý báu cũng như đã giúp đỡ em trong suốt quá trình học tập tại trường.
Em xin chân thành cám ơn các Thầy/Cô trong bộ môn Điều Khiển Tự Động,
cám ơn thầy Nguyễn Văn Bạn đã giúp đỡ em nhiệt tình trong học tập cũng như trong
thời gian thực hiện Đề tài.
Em cũng xin bày tỏ sự biết ơn chân thành đối với cô Đặng Phi Vân Hài đã tận
tình hướng dẫn em trong suốt quá trình làm Luận văn tốt nghiệp.
Đặc biệt, em xin cám ơn Thầy/Cô trong Hội Đồng đã dành thời gian nhận xét
và góp ý để Luận văn của em hoàn thiện hơn.
Cuối cùng, con xin kính gửi đến Cha Mẹ lòng biết ơn sâu sắc vì công ơn sinh
thành và dưỡng dục cho con có được ngày hôm nay. Đồng thời, cám ơn những người
thân cũng như bạn bè và tập thể lớp DH07TD đã động viên, ủng hộ và luôn tạo cho tôi
mọi điều kiện thuận lợi trong suốt quá trình hoàn thành Luận văn.
TP.HCM, ngày 20 tháng 05 năm 2011
Sinh viên thực hiện
TRẦN VỸ ANH

ii


TÓM TẮT
Trong khoảng thời gian 10 năm trở lại đây, việc ứng dụng xử lý ảnh vào cuộc
sống rất phát triển, đặc biệt là trong lĩnh vực tự động hóa sản xuất, như: Đếm số lượng
sản phẩm, phân loại sản phẩm, nhận diện bảng số xe khi ra vào cổng, theo dõi sự phát
triển và môi trường sống của các loại thủy sản khi nuôi trồng thủy sản, v.v…
Từ đó, với sự gợi ý của thầy Lê Văn Bạn và sự giúp đỡ của cô Đặng Phi Vân
Hài cũng như các thầy trong bộ môn Điều Khiển Tự Động, em đã thực hiện đề tài này

với mong muốn: Đưa lý thuyết về xử lý ảnh áp dụng vào quy trình đếm số lượng sản
phẩm, nhằm góp phần tự động hóa sản xuất, tăng năng suất lao động. Cụ thể, em đã
nghiên cứu và chế tạo thiết bị đếm số lượng cá giống với sự quan sát của camera và
được xử lý bằng phần mềm Matlab. Với mục đích cung cấp thiết bị này cho các hộ bán
cá giống để phân phối cá cho các hộ nuôi trồng thủy sản.
Do thời gian thực hiện đề tài hạn chế, và chưa sâu sát được thực tế sản xuất nên
đề tài chắc chắn sẽ không tránh khỏi những thiếu xót. Em rất mong nhận được sự đóng
góp ý kiến của quý Thầy Cô và bạn bè để đề tài của em càng được hoàn thiện hơn.
Em xin chân thành cám ơn.

iii


MỤC LỤC
Trang
Trang tựa..........................................................................................................................i
LỜI CẢM ƠN................................................................................................................ ii
TÓM TẮT..................................................................................................................... iii
MỤC LỤC .....................................................................................................................iv
DANH SÁCH CÁC HÌNH ............................................................................................vi
CHƯƠNG I: MỞ ĐẦU .................................................................................................. 1
1.1 Tổng quan ................................................................................................................. 1
1.2 Mục đích và yêu cầu nghiên cứu .............................................................................. 2
1.3 Thời gian và địa điểm nghiên cứu đề tài .................................................................. 2
1.3.1 Địa điểm tiến hành đề tài ....................................................................................... 2
1.3.2 Phân bố thời gian tiến hành đề tài ......................................................................... 2
1.4 Đối tượng và thiết bị nghiên cứu .............................................................................. 3
1.4.1 Đối tượng nghiên cứu ............................................................................................ 3
1.4.2 Thiết bị nghiên cứu ................................................................................................ 3
1.5 Phương pháp nghiên cứu .......................................................................................... 3

CHƯƠNG II: TỔNG QUAN ......................................................................................... 4
2.1 Tổng quan về xử lý ảnh ............................................................................................ 4
2.1.1 xử lý ảnh là gì? ...................................................................................................... 4
2.1.2 các loại ảnh và không gian màu ............................................................................ 5
2.2 Tổng quan về Matlab ................................................................................................ 9
2.2.1 Matlab là gì? .......................................................................................................... 9
2.2.2 Các cửa sổ làm việc chính của Matlab ................................................................10
2.2.3 Các kiểu dữ liệu trong MATLAB .......................................................................10
2.2.4 Hệ thống lệnh trong MATLAB ...........................................................................11
2.2.4.1 Lệnh hệ thống trong Matlab .............................................................................11
2.2.4.2 Lệnh số học.......................................................................................................11
2.2.4.3 Lệnh cấu trúc ....................................................................................................12
iv


2.2.5 Ứng dụng của MATLAB.....................................................................................13
2.2.6 Ứng dụng của Matlab trong xử lý ảnh.................................................................13
2.2.6.1 Image Acquisition Toolbox ..............................................................................13
a. Thu nhận ảnh tĩnh vào Matlab ..................................................................................14
b.Thu nhận ảnh động vào Matlab .................................................................................16
2.2.6.2 Image processing toolbox .................................................................................16
2.3 Cấu tạo webcamera.................................................................................................19
CHƯƠNG II: KẾT QUẢ VÀ THẢO LUẬN ..............................................................20
3.1 Phần cứng thiết bị ...................................................................................................20
3.2 Phần mềm xử lý ......................................................................................................22
3.2.1 Lưu đồ xử lý ảnh .................................................................................................22
3.2.2 Cấu trúc các lệnh xử lý đã sử dụng .....................................................................23
3.2.2.1 Các lệnh thu nhận ảnh ......................................................................................23
3.2.2.2 Các lệnh xử lý ảnh ............................................................................................25
a. Chuyển ảnh RGB sang ảnh xám ..............................................................................25

b. Lấy cạnh (edge) ........................................................................................................26
c. Xóa các pixel nhiễu trên ảnh ....................................................................................27
d. làm giãn ảnh (Dilate) ................................................................................................27
e. làm co ảnh (erode) ....................................................................................................28
f. Đếm số lượng cá........................................................................................................28
3.2.3 Thiết kế giao diện trong GUI...............................................................................29
CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ NGHỊ .................................................................30
4.1 Kết quả đạt được.....................................................................................................30
4.2 Hướng phát triển đề tài ...........................................................................................30
TÀI LIỆU THAM KHẢO ............................................................................................31
Phụ lục 1: Chương trình xử lý ảnh Trên Matlab ..........................................................32
Phụ lục 2: Bảng khảo nghiệm số lượng cá đếm được ..................................................33
Phụ lục 3: Matlab help ..................................................................................................35
Phụ lục 4: Một số định dạng ảnh mà Matlab hỗ trợ .....................................................37

v


DANH SÁCH CÁC HÌNH
Hình 2.1 Quá trình xử lý ảnh .......................................................................................... 4
Hình 2.2 Sơ đồ tổng quát một hệ thống xử lý ảnh.......................................................... 5
Hình 2.3 Pixel ảnh (nguồn internet) ............................................................................... 6
Hình 2.4 Mô hình ảnh RGB (nguồn internet) ................................................................ 7
Hình 2.5 Mô hình màu HSV (nguồn internet) ............................................................... 8
Hình 2.6 Mô hình màu L*a*b (nguồn internet) ............................................................. 9
Hình 2.7 Biểu tượng Matlab ........................................................................................... 9
Hình 2.8 Giao diện làm việc của Matlab ......................................................................10
Hình 2.9 Sơ đồ các kiểu dữ liệu ...................................................................................11
Hình 2.10 minh họa lệnh imread ..................................................................................14
Hình 2.11 minh họa lệnh imshow.................................................................................15

Hinh 2.12 Ảnh chụp từ camera.....................................................................................16
Hình 2.13 Giãn ảnh.......................................................................................................18
Hình 2.14 Co ảnh ..........................................................................................................18
Hình 3.1 Cấu tạo thiết bị đếm cá giống ........................................................................20
Hình 3.2 Bản vẽ chi tiết thiết bị đếm cá giống. ............................................................21
Hình 3.3 Lưu đồ xử lý ảnh. ..........................................................................................22
Hình 3.4 thông tin thiết bị camera. ...............................................................................23
Hình 3.5 Ảnh động hiển thị trên Matlab.......................................................................24
Hình 3.6 ảnh sau khi chụp ............................................................................................25
Hình 3.7 Chuyển ảnh RGB sang ảnh xám....................................................................26
Hình 3.8 lấy cạnh từ ảnh xám .......................................................................................26
Hình 3.9 xóa đi pixel nhiễu sau khi lấy cạnh. ..............................................................27
Hình 3.10 Làm giãn ảnh ...............................................................................................27
Hình 3.11 kết quả sau khi co ảnh. ................................................................................28
Hình 3.12 kết quả sau khi dung lệnh đếm số lượng .....................................................28
Hình 3.13 Giao diện làm việc cho người sử dụng. .......................................................29

vi


CHƯƠNG I
MỞ ĐẦU
1.1 Tổng quan
Khi gia nhập WTO nông nghiệp Việt Nam có nhiều cơ hội để phát triển. Và có
thể nói ngành thủy sản đóng một vai trò quan trọng trong nền kinh tế quốc dân của
nước ta.
Có một đặc điểm là nguồn lợi thủy sản mang tính tái tạo, tái sinh. Nhưng khi
con người khai thác qua khả năng tái sinh thì nguồn lợi sẽ bị cạn kiệt. Trên thực tế
hiện nay khi sản lượng thủy sản mà con người khai thác ngày càng bị suy giảm. Nếu
như con người không tiến hành giải pháp khác thì nguy cơ cạn kiệt nguồn lợi là điều

dể dàng nhận thấy. Vì vậy, nuôi trồng thủy sản vừa nhằm mục đích phục vụ nhu cầu
trong nước đồng thời xuất khẩu có thể nói là một giải pháp hữu hiệu trong giai đoạn
phát triển hội nhập như hiện nay.
Theo số liệu của tổng cục Thống kê và Bộ Thủy sản, sản lượng thủy sản của
Việt Nam mặc dù trước năm 1985 có sự sa sút, yếu kém nhưng từ năm 1985 trở lại đây
liên tục phát triển qua các năm. Năm 1986, tong sản lượng thủy sản chỉ đạt 830.500
tấn; năm 1990 là 1.019.000 tấn; đến năm 2000 đã đạt 2.003.000 tấn; năm 2004 đạt
3.073.600 tấn. Trong đó khai thác hải sản đạt tương ứng là 487.000 tấn; 709.000 tấn;
1.280.000 tấn; 1.230.500 tấn và nuôi trồng thủy sản là 243.500 tấn; 310.000 tấn;
723.000 tấn; 1.150.000 tấn.
Trong những năm gần đây nghành thủy sản nước ta liên tục phát triển và trở
thành một trong bốn mặt hàng xuất khẩu chủ lực của Việt Nam. Năm 2010 xuất khẩu
thủy sản đạt 4,95 tỷ USD, chiếm 6,9% tổng kim nghạch xuất khẩu của nước ta. Xuất

1


khẩu thủy sản của Việt Nam đã trở thành hiện tượng của thị trường xuất khẩu thủy sản
thế giới, sản lượng nuôi trồng đứng thứ 3, chỉ sau Trung Quốc và Ấn Độ.
Hiện nay, việc sản xuất và ươm giống thủy sản được thực hiện bởi các cơ sở tư
nhân, trại sản xuất cá tôm giống, có sự hỗ trợ của viện, trung tâm nghiên cứu ngày
càng chuyên nghiệp và gắn với vùng nuôi.
Đã hình thành các cụm nuôi trồng – chế biến – xuất khẩu thủy sản – phụ trợ ở
các tỉnh Đồng bằng sông Cửu Long. Tính chuyên nghiệp và năng động của doanh
nghiệp trong mỗi phân đoạn cũng đang được nâng lên. Nhiều doanh nghiệp làm ăn bài
bản, sử dụng quy trình công nghệ sản xuất hiện đại, quy mô lớn, áp dụng mô hình
quản trị tiên tiến.
Đến nay sản phẩm thủy sản Việt Nam đã có mặt tại 80 nước và vùng lãnh thổ.
Trong đó Mỹ và Nhật Bản vẫn là thị trường lớn.
Với những thống kê trên cho ta thấy, nghành thủy sản Việt Nam đã và đang

phát triển rất mạnh mẽ. Từ đó, em tiến hành thực hiện đề tài: “ chế tạo thiết bị đếm số
lượng cá giống bằng phương pháp xử lý ảnh “ dưới sự hướng dẫn của cô Đặng Phi
Vân Hài, với mong muốn làm tăng năng suất lao động, giảm sai sót do con người khi
đếm thủ công, góp phần tự động hóa sản xuất từ khâu cung cấp giống.
1.2 Mục đích và yêu cầu nghiên cứu
Mục đích và yêu cầu nghiên cứu là nghiên cứu chế tạo thành công thiết bị đếm
cá giống bằng phương pháp xử lý ảnh ứng dụng phần mềm Matlab
1.3 Thời gian và địa điểm nghiên cứu đề tài
1.3.1 Địa điểm tiến hành đề tài
Đề tài được tiến hành vào ngày 28/03/2011 – 22/06/2011 tại Trường Đại Học
Nông Lâm Thành Phố Hồ Chí Minh và Khoa Cơ Khí Trường Đại Học Bách Khoa
Thành Phố Hồ Chí Minh.
1.3.2 Phân bố thời gian tiến hành đề tài
Tìm hiểu đề tài và nghiên cứu lí thuyết : từ ngày 28/03 đến 10/04.
Thiết kế chế tạo thiết bị đếm cá giống : 10/04 đến 20/04.
Tiến hành chụp hình, xử lý ảnh : 20/04 đến 15/05.
Viết báo cáo và chỉnh sửa: 15/05 đến 31/05.

2


1.4 Đối tượng và thiết bị nghiên cứu
1.4.1 Đối tượng nghiên cứu
- Nghiên cứu chế tạo thiết bị đếm cá giống bằng phương pháp xử lý ảnh.
- Phần mềm Matlab 7.8 (R2009a).
1.4.2 Thiết bị nghiên cứu
Web camera Colovis.
Máy tính.
Nguồn sáng .
Phần mềm Matlab 7.8.

1.5 Phương pháp nghiên cứu
Vận dụng phương pháp xử lý ảnh trên phần mềm Matlab, bằng các công cụ xử
lý ảnh trong phần mềm Matlab có khả năng thu nhận ảnh từ camera, xử lý ảnh, đếm
được số lượng, cho ra kết quả.

3


CHƯƠNG II
TỔNG QUAN
2.1 Tổng quan về xử lý ảnh
2.1.1 xử lý ảnh là gì?
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò
quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử
lý ảnh và đồ hoạ đó phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc
sống. Xử lý ảnh và đồ hoạ đóng một vai trò quan trọng trong tương tác người máy.
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.

Ảnh

XỬ LÝ ẢNH

Ảnh
“Tốt hơn”
Kết luận

Hình 2.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.
Sơ đồ tổng quát của một hệ thống xử lý ảnh, hình 2.2

4


Hệ quyết
định
Thu nhận
ảnh

Tiền xử


Trích
chọn
đặc điểm

Đối sánh
rút ra kết
luận

Hậu
xử lý

Lưu trữ

Hình 2.2 Sơ đồ tổng quát một hệ thống xử lý ảnh.

2.1.2 các loại ảnh và không gian màu
a. Ảnh
- Tín hiệu ảnh thuộc loại tín hiệu đa chiều: tọa độ (x,y,z), độ sáng (), thời gian
(t).
- Ảnh (tĩnh) không gian 2 chiều được định nghĩa là một hàm 2 biến S(x,y), với S
là giá trị biên độ (độ sáng) tại vị trí tọa độ (x,y).
+ Ảnh tương tự S(x,y):
Miền xác định (x,y) liên tục.
Miền giá trị S liên tục.
+ Ảnh số S(m,n) (ảnh tương tự được số hóa):
Miền xác định (m,n) rời rạc
Miền giá trị S rời rạc.
- Một ảnh (bao gồm một tập các điểm ảnh) có thể xem như bao gồm tập các ảnh
con (các vùng ảnh). Thuật ngữ gọi là ROIs – vùng quan tâm (Regions of Interest).
Ảnh số trong không gian rời rạc thu được từ ảnh tương tự trong không gian liên
tục thông qua quá trình số hóa.
Ảnh tương tự được chia thành M hàng, N cột.
Giao của hàng và cột được gọi là: pixel
5


Giá trị biên độ của pixel tại tọa độ nguyên (m,n) là S(m,n): là trung bình độ sáng
trong pixel đó.
M, N thường được chọn là M=N=2K (K=8,9,10). L =2B , B là số bít mã hóa cho
độ sáng(biên độ) mỗi pixel.
Ảnh số được biểu diễn bởi ma trận 2 chiều. Các phần tử của nó là biểu diễn cho
các pixel số hóa.
Ta ký hiệu 1 ảnh số là S (M, N). Ta nói ảnh có độ phân giải M x N. Ký hiệu là
S (m, n) để chỉ ra một phần tử ảnh. Hình 2.3 minh họa ảnh dưới dạng pixel.


Hình 2.3 Pixel ảnh (nguồn internet).
b. Không gian màu
Tuỳ theo nhu cầu và ứng dụng, các hệ thống xử lí ảnh sẽ có tiêu chuẩn về hệ
không gian màu khác nhau (color space) như: RGB, L*a*b*, HSV,…Ngoài ra còn có
một số color space khác.
 Mô hình màu RGB
Còn gọi là ảnh “truecolor” do tính trung thực của nó. Ảnh này được biểu diễn
bởi một ma trậnba chiều kích thước m x n x 3, với m x n là kích thước ảnh theo pixels.
Ma trận này định nghĩacác thành phần màu red, green, blue cho mỗi điểm ảnh, các
phần tử của nó có thể thuộc kiểu
Uint 8, uint16 hoặc double.

6


Hình 2.4 Mô hình ảnh RGB (nguồn internet).
Hệ thống toạ độ các pixels của ảnh được biểu diễn bằng hàm số f (x, y) như
sau:

Trong đó :
M, N là kích thước chiều rộng và chiều cao tương ứng của ảnh (đại diện cho số
hàng và số cột trong hàm f (x, y). Hay nói cách khác, ảnh có kích thước M x N.
Toạ độ điểm ảnh (x0, y0)
 Mô hình HSV suy diễn từ mô hình RGB
7


Hãy quan sát hình hộp RGB theo đường chéo từ White đến Black (gốc) -> ta có
hình lục giác, sử dụng làm đỉnh hình nón HSV. Hình 2.5 minh họa mô hình màu HSV.


Hình 2.5 Mô hình màu HSV (nguồn internet).
- Hue: bước sóng gốc của ánh sáng. Trong mô hình Hue được biểu diễn bằng
góc từ 00 đến 3600.
- Value: cường độ hay độ chói ánh sáng.
- Saturation: thước đo độ tinh khiết ánh sáng gốc. S trong khoảng [0 1]. Biểu
diễn tỷ lệ độ tinh khiết của màu sẽ chọn với độ tinh khiết cực đại.
- Mô hình HSV trực giác hơn mô hình RGB. Bắt đầu từ Hue (H cho trước và
V=1, S=1), thay đổi S: Bổ sung hay bớt trắng, thay đổi V: Bổ sung hay bớt đen cho
đến khi có màu mong muốn.
 Mô hình màu L*a*b
Là không gian màu phổ biến cho việc so sánh sự khác biệt về màu sắc. Trong đó,
hệ thống L*a*b đại diện cho 3 mức tỷ lệ với L(light) đại diện cho độ sáng.

8


Hình 2.6 Mô hình màu L*a*b (nguồn internet).
Tài liệu tham khảo Nhập môn xử lý ảnh số, Nxb Khoa Học và Kỹ Thuật của
tác giả Lương Mạnh Bá & Nguyễn Thanh Thủy.
2.2 Tổng quan về Matlab
2.2.1 Matlab là gì?
MATLAB là sản phẩm của công ty The Matworth Inc, MATLAB có nguồn gốc
từ chữ matrix laboratory, là ngôn ngữ máy tính dùng để tính toán kỹ thuật. Ban đầu
MATLAB được lập ra để giải quyết các phép toán tính trên ma trận, và điều này khiến
cho MATLAB ứng dụng rất lớn trong nhiều ngành kỹ thuật khác nhau. MATLAB kết
hợp tính toán với lập trình và đồ họa trong môi trường phát triển tương tác, thời gian
lập trình ngắn nhờ vào các hàm có sẵn. Được tích hợp cùng với một số ngôn ngữ lập
trình khác như: Pascal, C, C++, Fortran, Java, Visual Basic, Delphi,…do đó những
ứng dụng của MATLAB có thể chuyển đổi một cách dễ dàng sang ngôn ngữ đó. Với
hàng loạt những ưu điểm nói trên, MATLAB đã và đang được sử dụng rộng rãi trong

nhiều lĩnh vực ở nhiều nước trên thế giới.

Hình 2.7 Biểu tượng Matlab

9


2.2.2 Các cửa sổ làm việc chính của Matlab
- Cửa sổ Command Window: Là cửa sổ giao tiếp chính của MATLAB. Tất cả
công việc tính toán, lập trình, sử dụng các hàm dựng sẵn trong thư viện hoặc các hàm
tự tạo đều được làm việc trên cửa sổ này.
- Cửa sổ Worthspace: Là cửa sổ thể hiện các biến đang sử dụng trong quá trình
lập trình dưới dạng mảng (array), cấu trúc (struct),… tùy theo tính chất của biến. Cửa
sổ sẽ tự động xóa toàn bộ dữ liệu bên trong nó sau mỗi lần tắt chương trình.
- Cửa sổ Command History: Là cửa sổ lưu lại tất cả các dòng lệnh được viết
trên cửa sổ Command Window và cho phép thực hiện các lệnh đó một lần nữa bằng
cách nhấp đôi chuột vào dòng lệnh trên cửa sổ này. Dữ liệu vẫn được lưu trên cửa sổ
này sau mỗi lần tắt máy.

Hình 2.8 Giao diện làm việc của Matlab
2.2.3 Các kiểu dữ liệu trong MATLAB
- Matlab sử dụng 14 kiểu dữ liệu cơ bản. Mỗi một kiểu dữ liệu này đều ở dạng
của một ma trận hoặc mảng. Các ma trận và mảng này có kích thước tối thiểu là 0 x 0
và có thể phát triển đến mảng n chiều với kích cỡ tùy ý.
- Ngoài ra, còn có các kiểu dữ liệu do người dùng thiết lập, kiểu hướng đối
tượng và kiểu dữ liệu liên quan đến Java. Hình 2.8 minh họa sơ đồ các kiểu dữ liệu.
10


Hình 2.9 Sơ đồ các kiểu dữ liệu

2.2.4 Hệ thống lệnh trong MATLAB
2.2.4.1 Lệnh hệ thống trong Matlab
 casesen off: bỏ thuộc tính phân biệt chữ hoa và chữ thường.
 casesen on: sử dụng thuộc tính phân biệt chữ hoa và chữ thường.
 clc: Xoá cửa sổ dòng lệnh.
 exit, quit : thoát khỏi Matlab.
 help: lệnh cho xem phần trợ giúp.
 save: lưu giữ các biến vào file có kiểu .mat
2.2.4.2 Lệnh số học
Cũng giống như máy tính đơn giản thông thường, MATLAB cũng sử dụng các
phép toán đơn giản như: cộng (+), trừ (-), nhân (*), chia (/), và các phép toán quan hệ
(<, > ,= , …) phép toán logic, các hàm logarit, các hàm lượng giác,…để giải toán.
Ngoài các đại lượng vô hướng, các lệnh số học này còn được xây dựng để sử dụng cho
các tham số là ma trận.
 asb(x): Hàm tính giá trị tuyệt đối của x.
 sqrt(x): Hàm tính căn bậc hai của x.
 log(x): Hàm tính Logarit của x.
 sin(x): Hàm tính sin góc x, x có đơn vị là radian.
11


 cos(x): Hàm tính cosin góc x, x có đơn vị là radian.
 all(x): Hàm cho giá trị là 1 nếu tất cả các phần tử ma trận x khác 0,
ngược lại cho giá trị bằng 0.
Các toán tử Logic
&

:Và




: Hoặc

~

: Không (Not)

2.2.4.3 Lệnh cấu trúc
a.Vòng lặp for-end
Cú pháp :
For chỉ số= biểu thức
Nhóm lệnh A;
End
Qui tắc thực hiện:
 Chỉ số của vòng lặp là biến.
 Nếu ma trận biểu thức là rỗng thì không thực hiện được vòng lặp.
 Nếu số biểu thức là một đại lượng vô hướng, vòng lặp thực hiện một lần
và chỉ số nhận giá trị của đại lượng vô hướng.
 Nếu biểu thức là vectơ hàng, số lần lặp bằng số phần tử trong vectơ, sau
mỗi lần lặp chỉ số nhận tiếp theo của vectơ.
 Nếu biểu thức là một ma trận thì số vòng lặp bằng số cột của ma trận,
sau mỗi lần lặp chỉ số sẽ nhận giá trị cột tiếp theo của ma trận.
Ví dụ:
data=[4 5 6 8;7 16 -1 5]
for n=data
x=n(1)-n(2)
end
b. Vòng lặp While
Cú pháp:
While <Biểu thức>

Nhóm lệnh A;
12


End
- Nếu biểu thức đúng thì thực hiện nhóm lệnh A. Khi thực hiện xong thì lại
kiểm tra điều kiện. Nếu điều kiện A vẫn còn đúng thì nhóm lệnh A lại được thực hiện.
Khi điều kiện sai, vòng lặp kết thúc. Trong nhóm lệnh A, nên có các biến trong biểu
thức hoặc các giá trị của biểu thức không thay đổi.
Ví dụ:
num=0;ESP=1;
while(1+ESP)>1
ESP=ESP/2
num=num+1
End
c. Cấu trúc câu lệnh điều kiện: (if hoặc If…else…)
Cú pháp :
If <biểu thức logic> hoặc

If < biểu thức logic>

Nhóm lệnh 1;

nhóm lệnh 1;

End

Else
Nhóm lệnh 2;
End


- Nếu biểu thức logic đúng thì nhóm lệnh 1 được thực hiện, nếu biểu thức sai
thì chương trình sẽ chuyển đến câu lệnh tiếp theo sau lệnh end (đối với định dạng if
đơn) hoặc chuyển đến thực hiện nhóm lệnh 2 (đối với if…else..).
2.2.5 Ứng dụng của MATLAB
- MATLAB là công cụ lập trình đáp ứng được những vấn đề hết sức đa dạng
như: xử lí tín hiệu, xử lí ảnh, điều khiển, logic mờ, mạng nơron, robot,…Nhờ các
toolbox mà lĩnh vực áp dụng của MATLAB rất rộng, bao gồm các ngành Kỹ thuật
điện - Điện tử, Điều khiển tự động, Viễn thông, Cơ khí, Động lực…Các toolbox của
MATLAB ngày càng được bổ sung theo sự phát triển của khoa học kỹ thuật.
2.2.6 Ứng dụng của Matlab trong xử lý ảnh
- Trong xử lý ảnh Matlab sử dụng hai Toolbox chính là Image Acquisition
Toolbox để thu thập ảnh và Image processing toolbox để xử lý ảnh.
2.2.6.1 Image Acquisition Toolbox
13


- Trong quá trình thu thập ảnh vào Matlab người ta phân ra thành hai loại ảnh
 Ảnh tĩnh: là các loại ảnh đã dược chụp và lưu lại hoặc được vẽ bằng các
công cụ vẽ như: paint, Corel Draw,…
 Ảnh động: Là các loại ảnh được quan sát và thu lại thông qua các thiết bị
thu nhận như camera.
a. Thu nhận ảnh tĩnh vào Matlab
Đọc ảnh từ môi trường ngoài vào Matlab
im=imread(‘filename.fmt’)
Trong đó:
 filename: Tên tập tin ảnh cần đọc ( mặc định được lưu trong thư mục Worth
của Matlab), hoặc đường dẫn đến tập tin ảnh cần đọc.
 fmt: Định dạng của file ảnh.
Ví dụ:

>>im=imread('hinh.bmp')
% Ảnh đọc vào sẽ hiển thị dưới dạng mảng ma trận

Hình 2.10 minh họa lệnh imread
Các hàm hiển thị ảnh trong Matlab.
- Matlab cung cấp hai hàm hiển thị cơ bản là Image và imagesc. Ngoài ra trong
IPT cũng có hai hàm hiển thị ảnh khác, đó là Imview và imshow.
14


- Hàm image(X,Y,C) hiển thị hình ảnh biểu diễn bởi ma trận C kích thước MxN
lên trục tọa độ hiện hành. X, Y là các vector xác định vị trí các pixel C(1,1) và C(M,N)
trong hệ trục hiện hành.
- Hàm imagesc có chức năng tương tự như hàm image, ngoại trừ việc dữ liệu
ảnhsẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành.
- Hàm imview cho phép hiển thị hình ảnh trên một cửa sổ riêng, nền Java, gọi
làimage Viewer. Image Viewer cung cấp các công cụ dò tìm và xác định các giá trị
pixel một cách linh hoạt.
- Hàm imshow cũng tạo một đối tượng đồ họa thuộc loại image và hiển thị
ảnhtrên một figure. Hàm imshow sẽ tự động thiết lập các giá trị của các đối tượng
image,axes và figure để thể hiện hình ảnh.
Cấu trúc hàm imshow.
Imshow(‘filename.fmt’)
hoặc imshow(I)

% I là tên biến gán cho một ma trận ảnh.

Ví dụ:
i = imread('D:\de tai\hinh_vy\canho2\c1.jpg');
>> imshow (i)


Hình 2.11 minh họa lệnh imshow

15


b.Thu nhận ảnh động vào Matlab
 Kết nối thiết bị camera và hiển thị quá trình thu nhận ảnh trên Matlab.
Vid = videoinput(‘adaptorname’, deviceID,’format’)
preview(vid)
Trong đó:
Adaptorname: tên thiết bị do Matlab qui định ( thường là winvideo).
deviceID: số thiệt bị được kết nối.
format: định dạng ảnh được thu lại.
 Chụp ảnh từ camera:
Hinh = getsnapshot(vid)
Ví dụ:

out = imaqhwinfo('winvideo')
vid = videoinput('winvideo',1,'rgb24_320x240')
h = getsnapshot(vid);
imshow(h)

Hinh 2.12 Ảnh chụp từ camera
2.2.6.2 Image processing toolbox
Các lệnh cơ bản để xử lý ảnh trong Image processing toolbox
 Các lệnh chuyển đổi ảnh
+ gray2id : Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng .

16



+ grayslice : Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách
đặt ngưỡng.
+ im2bw : 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 .
+ ind2gray : Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số.
+ ind2rgb : Tạo một ảnh RGB từ một ảnh chỉ số.
+ mat2gray : Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận
bằng cách lấy tỉ lệ giữ liệu.
+ rgb2gray : Tạo một ảnh cường độ đen trắng từ một ảnh RGB.
+ rgb2ind : Tạo một ảnh chỉ số từ một ảnh RGB.
- Chú ý : Khi convert một ảnh từ dạng này sang dạng khác , ảnh kết quả có thể
khác ảnh ban đầu . Chẳng hạn , nếu ta convert một ảnh màu chỉ số sang một ảnh cường
độ , kết quả ta sẽ thu được một ảnh đen trắng .
 Lấy cạnh (edge)
Cú pháp:
BW = edge (I,’sobel’,thresh)
Trong đó:

sobel: là phương pháp lấy biên gradient theo kiểu Sobel.
Thres (threshold):giá trị ngưỡng gradient.

 Các phép toán Morphology
- Morphology là các toán tử xử lý trên ảnh nhị phân. Toán tử này sử dụng một
phần tử có cấu trúc, sau đó áp dụng các phép giao, phép hợp, phép bù, … với phần tử
này lên ảnh gốc nhằm thu được ảnh kết quả có sự biến đổi về hình dáng biên dạng phù
hợp.
Các phép biển đổi cơ bản của Morphology là Erode và Dilate.
+ Phép biến đổi Dilate: có tác dụng làm đầy biên dạng vật thể và kết quả

là vật thể to ra còn các lỗ rỗng thì nhỏ lại. Phép toán này định nghĩa:
Dilate = I  X
Với I là ma trận ảnh, X là phần tử cấu trúc.

17


Hình 2.13 Giãn ảnh
- Phép biến đổi Erode: có tác dụng ăn mòn biên dạng vật thể và kết quả là vật
thể nhỏ lại vấc lỗ rỗng thì to ra. Phép toán này được định nghĩa:
Erode = I  X
Với I là ma trận ảnh, X là phần tử cấu trúc.

Hình 2.14 Co ảnh
 Xóa các pixel nhiễu trên ảnh
Cú pháp:
BW1=bwareaopen(BW,P)
Trong đó:

P(pixel): khi các đối tượng nhiễu có số pixel nhỏ hơn P sẽ bị xóa.

 Biểu đồ hiển thị giá trị màu (histograme)
Cú pháp:

Imhist(I)

Trong đó:

I chỉ có thể là đạng index, grayscale hoặc l*a*b.


 Lọc nhiễu

18


×