Khái niệm về Matlab

Một phần của tài liệu Thiết kế phần cơ sở của robot tự hành (Trang 35)

Matlab là một ngôn ngữ lập trình thực hành bậc cao ựược sử dụng ựể giải các bài toán về kỹ thuật. Matlab tắch hợp ựược việc tắnh toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất 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.

4.1.2 Cu trúc d liu ca Matlab và các ng dng:

Matlab là một hệ thống tương giao, các phần tử dữ 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 vấn ựề 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 hoặc Fortran lập trình rồi 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 là 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ễ 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.

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 ựơn 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, uint16, uint64,... Ớ Kiểu char vắ dụ ỘHelloỢ.

Ớ Kiểu cell. Ớ Kiểu Structure.

Chương 4: Giới thiệu về Matlab và xử lý ảnh 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. Toolbox là một công cụ quan trọng trong Matlab. Công cụ này ựược Matlab cung cấ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.

4.1.3 H thng Matlab:

Hệ thống giao diện của Matlab ựược chia thành 5 phần: Ớ 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 tổng, 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 nghich ựảo, 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, cấu trúc dữ liệu vào, có 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ữ

4.2 Gii thiu khái quát vnh s:

4.2.1 Các khái nim cơ bn vnh:

Ảnh số là tập hợp hữu hạn các ựiểm ảnh với mức xám phù hợp dùng ựể mô tảảnh gần với ảnh thật. Sốựiểm ảnh xác ựịnh ựộ phân giải của ảnh. Ảnh có ựộ phân giải càng cao thì càng thể hiện rõ nét các ựặt ựiểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn.

a) điểm ảnh (Picture Element)

đ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ắch thướ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ười cả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ưảnh thật. Mỗi phần tử trong ma trận ựược gọi là một phần tửảnh.

b) Mức xám của ảnh

Mức xám là 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 (8 bit) ựể biểu diễn mức xám. Mức xám dùng 1 byte biểu diễn: 28 =256 mức, tức là từ 0 ựến 255).

c) độ phân giải của ảnh

định nghĩa: độ phân giải (Resolution) của ả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ắt ngườ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ạo nê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à y trong 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ột lướ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 CGA 17Ợ ựộ phân giải 320*200. Lý do: cùng một mật ựộ (ựộ phân giải) nhưng diện tắch màn hình rộng hơn thì

Chương 4: Giới thiệu về Matlab và xử lý ảnh

4.2.2 Các kiu nh trong Matlab:

a) Ảnh ựược ựịnh chỉ số (Indexed Images)

Một ảnh chỉ số bao gồm một ma trận dữ liệu X và ma trận bản ựồ màu map. Ma trận dữ liệu có thể có kiểu thuộc lớp uint8, uint16 hoặc kiểu double. Ma trận bản ựồ màu là một mảng m x 3 kiểu double bao gồm các giá trị dấu phẩy ựộng nằm giữa 0 và 1. Mỗi hàng của bản ựồ chỉ ra các giá trị mà: red, green và blue của một màu ựơn. Một ảnh chỉ số

sử dụng ánh xạ trực tiếp giữa giá trị của pixel ảnh tới giá trị trong bản ựồ màu. Màu sắc của mỗi pixel ảnh ựược tắnh toán bằng cách sử dụng giá trị tương ứng của X ánh xạ tới một giá trị chỉ số của map. Giá trị 1 chỉ ra hàng ựầu tiên, giá trị 2 chỉ ra hàng thứ hai trong bản ựồ màu Ầ

Một bản ựồ màu thường ựược chứa cùng với ảnh chỉ số và ựược tựựộng nạp cùng với ảnh khi sử dụng hàm imread ựểựọc ảnh. Tuy nhiên, ta không bị giới hạn khi sử dụng bản ựồ màu mặc ựịnh, ta có thể sử dụng bất kì bản ựồ màu nào.

Hình 4.2 Ờ Ảnh Index

b) Ảnh Grayscale

Một ảnh ựược biểu diễn bởi một ma trận hai chiều, trong ựó giá trị của mỗi phần tử

cho biết ựộ sáng ( hay mức xám ) của ựiểm ảnh ựó. Ma trận này có thể một trong các kiểu uint8, uint16 hoặc double. Ảnh biểu diễn theo kiểu này còn gọi là ảnh trắng ựen.

Chương 4: Giới thiệu về Matlab và xử lý ảnh

c) Ảnh nhị phân (Binary Images)

Ảnh ựược biểu diễn bởi một ma trận hai chiều thuộc kiểu logical. Mỗi ựiểm ảnh chỉ có thể nhận một trong hai giá trị là 0 (ựen) hoặc 1 (trắng).

Hình 4.4 Ờ Ảnh nhị phân

d) Ảnh RGB (RGB Images)

Một ảnh RGB - thường ựược gọi là true-color, ựược lưu trữ trong Matlab dưới dạng một mảng dữ liệu có kắch thước 3 chiều mxnx3 ựịnh nghĩa các giá trị màu red, green và blue cho mỗi pixel riêng biệt. Màu của mỗi pixel ựược quyết ựịnh bởi sự kết hợp giữa các giá trị R, G, B (Red, Green, Blue) ựược lưu trữ trong một mặt phẳng màu tại vị trắ của pixel. định dạng file ựồ hoạ lưu trữảnh RGB giống như một ảnh 24 bits trong ựó R, G, B chiếm tương ứng 8 bit một. điều này cho phép nhận ựược 16 triệu màu khác nhau.

Một mảng RGB có thể thuộc lớp double, uint8 hoặc uint16. Trong một mảng RGB thuộc lớp double, mỗi thành phần màu có giá trị giữa 0 và 1. Một pixel mà thành phần màu của nó là (0, 0, 0) ựược hiển thị với màu ựen và một pixel mà thành phần màu là (1, 1, 1 ) ựược hiển thị với màu trắng. Ba thành phần màu của mỗi pixel ựược lưu trữ cùng với chiều thứ 3 của mảng dữ liệu. Chẳng hạn, giá trị màu R, G, B của pixel (10, 5) ựượlưu trữ trong RGB(10, 5, 1), RGB(10, 5, 2) và RGB(10, 5, 3) tương ứng.

để tắnh toán màu sắc của pixel tại hàng 2 và cột 3 chẳng hạn, ta nhìn vào bộ ba giá trịựược lưu trữ trong (2, 3, 1:3). Giả sử (2, 3, 1) chứa giá trị 0.5176; (2, 3, 2) chứa giá trị

0.1608 và (2, 3, 3) chứa giá trị 0.0627 thì màu sắc của pixel tại (2, 3) sẽ là (0.5176, 0.1608, 0.0627).

Chương 4: Giới thiệu về Matlab và xử lý ảnh

4.3 Xnh vi Matlab:

4.3.1 Xnh:

Các bước cần thiết trong xử lý ảnh. đầu tiên, ảnh tự nhiên từ thế giới ngoài ựược thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Trước ựây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần ựây, với sự phát triển của công nghệ,

ảnh màu hoặc ựen trắng ựược lấy ra từ Camera, sau ựó nó ựược chuyển trực tiếp thành

ảnh số tạo thuận lợi cho xử lý tiếp theo. Máy ảnh số hiện nay là một thắ dụ gần gũi. Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từảnh chụp bằng máy quét ảnh. Hình dưới ựây mô tả các bước cơ bản trong xử lý ảnh.

Hình 4.7 Ờ Các bước cơ bản trong xử lý ảnh

4.3.2 Các giai on xnh:

a) Thu nhận ảnh (Image Acquisition)

- Ảnh ựược thu từ nhiều nguồn khác nhau:máy ảnh, máy quay phim, máy quét, ảnh vệ

tinhẦ

- Mục ựắch: biến ựổi thông tin hình ảnh về các cấu trúc ựược lưu trữ trong máy tắnh, có thể hiển thị ra các thiết bị ngoại vi như là máy in, màn hìnhẦ

- Gồm hai tiến trình:

+ Biến ựổi năng lượng quang học thành năng lượng ựiện. + Tổng hợp năng lượng ựiện thành ảnh hoặc ma trận số.

b) 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. - Mục ựắch:

+ điều chỉnh ựộ chiếu sáng ựể khắc phục hậu quả của việc chiếu sáng không ựều. + Giảm nhỏ thành phần nhiễu của ảnh tức là các ựối tượng xuất hiện ngoài ý muốn. + Hiệu chỉnh giá trị ựộ sáng giữa nền và ựối tượng.

+ Chuẩn hoá ựộ lớn, màu, dạng của ảnh.

c) Phân ựoạn (Segmentation)

- Là quá trình phân chia nội dung các ựối tượng cần khảo sát ra khỏi ảnh. - Phân chia các ựối tượng tiếp giáp nhau.

- Phân tách các ựối tượng riêng biệt thành các ựối tượng con.

d) Biểu diễn ảnh (Image Representation)

đầ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ạng thắch hợp là cần thiết cho xử lý tiếp theo bằng máy tắnh. Việc chọn các tắnh chất ựể thể hiện ảnh gọi là trắch chọn ựặc trưng (Feature Selection) gắn với việc tách các ựặc tắnh của ảnh dưới dạng các thông tin ựịnh lượng hoặc làm cơ sởựể phân biệt lớp ựối tượng này với ựối tượng khác trong phạm vi ảnh nhận ựược.

Vắ dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các ựặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác.

e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

Nhận dạng ảnh là quá trình xác ựịnh ảnh. Quá trình này thường thu ựược bằng cá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án theo ý nghĩa trên cơ sở nhận dạng.

Vắ dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thểựược nội suy thành mã ựiện thoại. Có nhiều cách phân loại ảnh khác nhau vềảnh. Theo lý thuyết 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 ảnh cơ

bản:

- 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 ựang ựược áp dụng trong khoa học và công nghệ là: 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Ầ

f) Cơ sở tri thức (Knowledge Base)

Nhưựã nói ở trên, ả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ợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý ựó, nhiều khâu hiện nay ựã xử lý theo các phương pháp trắ tuệ con người. Vì vậy, ởựây các cơ sở tri thức ựược phát huy.

Chương 4: Giới thiệu về Matlab và xử lý ảnh

4.4 Các hàm xnh cơ bn trong Matlab:

4.4.1 đọc và ghi d liu nh:

Hàm imread ựọc các file ảnh với bất kỳ các ựịnh dạng ảnh ựã biết hiện nay và lưu lại dưới dạng một ma trận biểu diễn ảnh trong Matlab.

Cú pháp : A=imread(filename,fmt)

Hàm imwrite cho phép lưu một ảnh biểu diễn bằng một ma trận trong Matlab thành một file ảnh dưới một trong các ựịnh dạng ựã biết.

Cú pháp : imwrite(A,filename,fmt)

Hàm imfinfo dùng ựể xem các thông số của một file ảnh nào ựó.

Cú pháp : imfinfo(filename,fmt)

Các thông tin ựược cung cấp bởi hàm imfinfo là : filename, filemoddate,

filesize, format, formatversion, width, height, bitdepth, colortype.

4.4.2 Chuyn ựổi gia các kiu d liu, kiu nh:

a) Chuyển ựổi giữa các kiểu dữ liệu

Matlab cung cấp sẵn các hàm thực hiện chuyển kiểu cho các ma trận biểu diễn

ảnh, bao gồm : im2double, im2uint8 và im2uint16.

Tuy nhiên, khi thực hiện chuyển kiểu giữa các dữ liệu ảnh cần lưu ý:

ủ Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ liệu dùng it bit hơn thì một số thông tin chi tiết về bức ảnh ban ựầu sẽ bị mất.

Không phải lúc nào cũng có thể chuyển ựổi kiểu dữ liệu ựối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác ựịnh một ựịa chỉ trong bản ựồ màu chứ

không phải là giá trị màu, do ựó không thể lượng tử hóa ựược.

b) Chuyển ựổi giữa các kiểu ảnh

+ dither : Tạo một ảnh nhị phân từ một ảnh cường ựộựen trắng bằng cách trộn , tạo một

ảnh chỉ số từ một ảnh RGB bằng cách trộn (dither )

+ gray2ind : Tạo một ảnh chỉ số từ một ảnh cường ựộựen trắng .

Một phần của tài liệu Thiết kế phần cơ sở của robot tự hành (Trang 35)