1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động

52 3,4K 35

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 778,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đó, nhận dạng và phân loại hình ảnh là một trong những lĩnh vực được theo đuổi một cách tích cực nhất.. Ý tưởng cốtlõi của việc nhận dạng và phân loại hình ảnh là phân tích ảnh từ

Trang 1

M c l c ục lục ục lục

CHƯƠNG 1: MỞ ĐẦU 8

1.1 Bài toán , hướng giải quyết bài toán nhận dạng phân loại vật thể 8

1.2 Tóm tắt nội dung đồ án 9

CHƯƠNG 2: TỔNG QUAN VỀ XỬ LÝ ẢNH - NHẬN DẠNG VẬT THỂ 10

2.1 Xử lý ảnh (số) và các khái niệm liên quan: 10

2.1.1 Xử lý ảnh (số) 10

2.1.2 Các khái nịêm liên quan: 10

2.2 Nhận dạng và phân loại ảnh 14

CHƯƠNG 3: XỬ LÝ ẢNH VỚI MATLAB 16

3.1 Giới thiệu về MATLAB 16

3.1.1 Các đặc điểm cơ bản của MATLAB: 16

3.1.2 Phát triển giải thuật và ứng dụng 17

3.1.3 Ngôn ngữ lập trình MATLAB: 17

3.1.4 Phân tích và tiếp cận dữ liệu 19

3.1.5 Hình ảnh hóa dữ liệu 20

3.1.6 Xuất kết quả và triển khai ứng dụng 20

3.2 Xử lý ảnh bằng MATLAB 21

3.2.1 Ảnh trong MATLAB 21

Trang 2

3.2.2 Hộp công cụ xử lý ảnh (image processing toolbox): 22

3.2.3 Các hàm xử lý ảnh cơ bản trong Matlab 23

3.2.4 Hộp công cụ thu nhận ảnh (image acquisition toolbox): 33

3.2.5 Một số ví dụ về xử lý ảnh với Matlab: 34

CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH 36

4.1 Bài toán nhận dạng vật thể 36

4.2 Sơ đồ thuật toán xử lý ảnh 37

4.3 Các bước chi tiết để xử lý ảnh 38

CHƯƠNG 5: KẾT QUẢ THỰC HIỆN 42

5.1 Kết quả 42

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN 45

6.1 Đánh giá kết quả đạt được 45

6.2 Các ứng dụng có thể áp dụng: 46

TÀI LIỆU THAM KHẢO 47

PHỤ LỤC 48

Trang 3

DANH MỤC HÌNH VẼ

Hình 1 1 Các bước thực hiện hoàn chỉnh của một quá trình 6

Hình 1 2 Các bước phân tích và xử lý ảnh 6

Hình 2 1 Các bước trong phân tích ảnh 12

Hình 3 1 Các điểm tạo ra 18

Hình 3 2 Đồ thị hàm y = sin(x) 20

Hình 3 3 Ảnh trước và sau khi imresize 31

Hình 3 4 Ảnh trước và sau khi imrotate 33

Hình 3 5 Đai ốc 34

Hình 3 6Ảnh xám 35

Hình 4 1 Năm chi tiết cần nhận dạng 36

Hình 4 2 Sơ đồ bài toán sơ lược 37

Hình 4 3 Sơ đồ thuật toán 37

Hình 4 4 Chuyển ảnh về ảnh xám từ ảnh RGB 38

Hình 4 5 Ảnh trước và sau khi quay 39

Hình 4 6 Đồ thị đặc tính trích trọn của chi tiết 41

Hình 5 1 Đặc trưng trích chọn của 5 chi tiết 27

Trang 4

Hình 5 2 Đặc tính chi tiết số 1 28

Hình 5 3 Cờ lê 28

Hình 5 4 Đặc tính chi tiết số 2 29

Hình 5 5 Mỏ lết 29

Trang 5

Danh mục từ viết tắt

PEL: Picture Element

CGA: Color Graphic Adaptor

VGA: Video Graphic Array

RGB: Red Green Blue

Trang 6

LỜI CẢM ƠN

Trong quá trình làm đồ án vừa qua được sự giúp đỡ và chỉ bảo nhiệt tình của

TS Dương Huy Trung – Khoa cơ khí - Bộ môn Kỹ thuật máy ,đồ án của em đãđược hoàn thành Mặc dù cố gắng cùng với sự chỉ đạo tận tâm của thầy hướngdẫn nhưng do thời gian và khả năng còn hạn chế nên đồ án khó tránh khỏinhững thiếu sót

Để hoàn thành đồ án này ,em xin bày tỏ lòng biết ơn sâu sắc đến TS.DươngHuy Trung –người thầy đã giúp đỡ em tận tình trong suốt quá trình làm đồ án

Em cũng xin bày tỏ lòng biết ơn đến và các thầy giáo,cô giáo trong bộ môn,các thầy cô giáo trong trường Đại Học Giao Thông Vận Tải đã giúp đỡ, tạo điềukiện tốt nhất cho em học tập và thực hiện đồ án này Cuối cùng em xin chânthành cảm ơn đến tất cả bạn bè và gia đình đã động viên giúp đỡ em trong lúckhó khăn

Hà nội, ngày 2 tháng 5 năm 2014

Sinh viên Nguyễn Xuân Việt

Trang 7

LỜI GIỚI THIỆU

Trong những năm gần đây, xử lý hình ảnh (image processing) đã đạt đượcnhiều thành tựu và tiến bộ vượt bậc Trong đó, nhận dạng và phân loại hình ảnh

là một trong những lĩnh vực được theo đuổi một cách tích cực nhất Ý tưởng cốtlõi của việc nhận dạng và phân loại hình ảnh là phân tích ảnh từ các dữ liệu thuđược bởi các cảm biến hình ảnh như camera, Webcam… Nhờ các hệ thống xử lýảnh, con người đã giảm được khối lượng công việc cũng như tăng sự chính xáctrong việc đưa ra các quyết định liên quan đến xử lý hình ảnh trên nhiều lĩnhvực: quân sự và quốc phòng, các hệ thống kỹ nghệ hoá sinh, giải phẫu, các hệthống giao thông thông minh, robotics, các hệ thống an ninh, dây chuyền sảnxuất tự động…

Nhận dạng và phân tích ảnh là một lĩnh vực liên ngành Để thực hiện tốtcông việc nhận dạng và phân tích này, đòi hỏi người nghiên cứu phải am hiểunhiều lĩnh vực trong đó đặc biệt là các lĩnh vực liên quan tới cảm biến, các hệthống xử lý ảnh, các giải thuật xử lý hình ảnh/tín hiệu, phần cứng và phần mềm,các hệ thống tích hợp…

Mục đích của báo cáo này là trình bày một phương pháp nhận dạng và phânloại chi tiết máy Theo đó, em sẽ lần lượt trình bày về cơ sở lý thuyết của việc

xử lý ảnh, nhận dạng vật thể,chương trình MATLAB với các hộp công cụ vềkhảo sát và xử lý ảnh(image acquisition toolbox và image processing toolbox) Bởi thời gian hạn hẹp cũng và nhiều hạn chế về kiến thức trong lĩnh vực hếtsức mới mẻ này, em mong báo cáo này sẽ trình bày một sự hiểu biết tương đối

về xử lý ảnh nói chung và nhận dạng vật thể nói riêng Đồng thời, hy vọng rằngtrong một tương lai không xa sẽ có điều kiện ứng dụng những nghiên cứu đã đạtđược trong báo cáo này vào thực tế sản xuất

Trang 8

CHƯƠNG 1: MỞ ĐẦU

1.1 Bài toán , hướng giải quyết bài toán nhận dạng phân loại vật thể.

- Bài toán: Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiếtmáy trên một dây truyền sản xuất tự động

- Phương hướng giải quyết

Để giải quyết bài toán xử lý ảnh trong nhận dạng thì chúng ta có rất nhiềucông cụ hỗ trợ tốt cho việc xử lý ảnh như: Open CV Microsoft Visual Studiohay công cụ image processing toolbox của Matlab…

Với sự tiện dụng đơn giản trong quá trình lập trình, gần gũi với kỹ thuật thìcông cụ image processing toolbox của Matlab là tối ưu hơn cả và trong báo cáo

em sẽ trình bày ứng dụng xử lý ảnh trên image processing toolbox của Matlab

Hình 1 1 Các bước thực hiện hoàn chỉnh của một quá trình.

Trung tâm điềukhiển

Bộ phậncông

tác(robots)

Tiền xử

Phânđoạn ảnh

Biểu diễn

và mô tả

Nhậndạng vànội suy

Cơ sở tri thức

Trang 9

1.2 Tóm tắt nội dung đồ án

Lĩnh vực xử lý ảnh và thị giác máy đang ngày càng được nghiên cứu vàứng dụng trong nhiều lĩnh vực của cuộc sống và sản xuất nhờ vào sự phát triểnmạnh mẽ của các hệ thống máy tính Từ thực tế đó việc xây dựng các chươngtrình hoạt động cho các hệ thống phân loại sản phẩm là thiết yếu, đặc biệt là các

hệ thống phân loại sản phẩm theo hình dạng

Bài toán nhân dạng đối tượng là một bài toán đã và đang thu hút được sựquan tâm của nhiều nhà nghiên cứu và phát triển Nó mở ra nhiều ứng dụng hữuích của lĩnh vực thị giác máy tính như nhận dạng ảnh, theo dõi đối tượng, tìmkiếm, vv Nhận dạng đối tượng có rất nhiều cách tiếp cận để giải quyết, tuynhiên với mỗi loại đối tượng sẽ có một phương pháp cụ thể để thực hiện Đơngiản nhất là ta so sánh các điểm ảnh (pixel) với nhau giữa các đối tượng cầnnhận dạng Tuy nhiên việc so sánh này thường tốn nhiều thời gian và không đạtđược kết quả như mong muốn Một trong những phương pháp được sử dụng đạtđược hiệu quả tốt hơn đó là trích chọn các đặc trưng của ảnh Các đặc trưngđược trích chọn thường dựa vào các đặc trưng bất biến

Bố cục của đồ án được trình bày như sau : Trước hết đồ án trình bày về bàitoán đặt ra và phương hướng giải quyết ,sau đó trình bày các cơ sở lý thuyết của

xử lý ảnh và nhận dạng vật thể Tiếp đó em xin giới thiệu cơ sở lý thuyết về

matlab và công cụ xử lý ảnh trên matlab " image processing toolbox" Trên cơ

sở tìm hiểu công cụ image processing toolbox đồ án xây dựng thuật toán phânloại và nhận dạng sản phẩm chi tiết máy Kết quả của đồ án là cơ sở để pháttriển và xây dựng các phần mềm phân loại và nhận dạng vật thể cho hệ thốngphân loại sản phẩm

Trang 10

2.1.2 Các khái nịêm liên quan:

Điểm ảnh (Picture Element)

Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử

lý bằng máy tính (số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gầnđúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (khônggian) và độ sáng (mức xám) Khoảng cách giữa điểm ảnh đó được thiết lập saocho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm nhưvậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel Trong khuônkhổ ảnh hai chiều, mỗi Pixel ứng với cặp tọa độ (x,y)

Như vậy, đ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 đó đượcchọn thích hợp sao cho mắt người cảm nhận sự liên tục về kkhong gian và mức

Trang 11

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 đượcgọi là một phần tử ảnh.

Theo định nghĩa ở trên thi mỗi Pixel gồm một cặp toạ độ (x,y) và màu Độphân giải của ảnh chính là tích số của giá trị lớn nhất của x với giá trị lớn nhấtcủa y

Ví dụ: Màn hình máy tính có nhiều loại với độ phân giải khác nhau: màn hìnhCGA (Color Graphic Adaptor) có độ phân giải 320 x 200; màn hình VGA(Video Graphic Array) độ phân giải 1280 x 800;

Rõ ràng màn hình có độ phân giải càng cao thì ta có cảm giác nó càng ‘mịn’ hơn

so với loại có độ phân giải thấp hơn

Mức xám là kết quả sự mã hoá tương ứng một cường độ sáng của mỗi điểmảnh với một giá trị số – kết quả của quá trình lượng tử hoá

Các thang giá trị mức xám thông thường: 16,32,64,128,256 Trong đó mức

256 được dùng rất phổ biến do máy tính dùng 1 byte(8 bit) để biểu diễn mứcxám, mà mức xám lại dùng 1 byte để biểu diễn: 28=256 mức, tức là từ mức 0đến mức 255

Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác ) với mứcxám ở các điểm ảnh có thể khác nhau

Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức ding 1 bit mô tả 21

mức khác nhau hay mỗi điểm ảnh nhị phân chi có 1 trong 2 giá trị hoặc là 1hoặc là 2

Ảnh màu: với mỗi điểm ảnh thì người ta dung 3 byte để mô tả mức màu (dothế giới màu được tạo nên từ 3 màu cơ bản: đỏ(red), lục(blue) và lơ(green)) Do

đó có 28*3 =224=16,7 triệu màu

Trang 12

Biểu diễn ảnh

Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh làpixel Do đó ta có thể biểu diễn một ảnh bởi một hàm 2 biến chứac thông tin.Các mô hình biểu diễn ảnh cho ta một mô tả lô gic hay định lượng các tính chấtcủa hàm này Chất lượng ảnh hoặc tính hiệu quả của các kỹ thuật xử lý phụthuộc vào nhiều yếu tố như: độ phân giải, nhiễu,

Để xử lý được ảnh, thì ảnh đó phải được lấy mẫu (sample) rồi lượng tử hoá(quantization) Tức là đầu tiên chuyển từ ảnh tương tự sang ảnh số sau đó lưugiá trị của từng điểm ảnh với một số hữu hạn các mức xám

- Tăng cường ảnh (image enhancement):

Khi ảnh được chuyển từ dạng này sang dạng khác bởi các quá trình như:truyền ảnh, quét ảnh,… thì ảnh nhận được thường có chất lượng thấp hơn so vớiảnh ban đầu Để giúp người ta có thể quan sát bức ảnh một cách chính xác hơnthì đòi hỏi phải có biện pháp để nâng cao chất lượng ảnh Qúa trình này đượcgọi là tăng cường ảnh (image enhancement)

Tăng cường ảnh giúp loại bỏ các suy giảm (degradation) gây ra bởi hệ thống

xử lý hoặc kênh xử lý ảnh Ngày nay, nhu cầu phát triển các hệ thống tự độngcho việc xử lý hình ảnh ngày càng phát triển, kéo theo nó là sự cần thiết trongviệc loại bỏ sai số cũng như các yếu tố nhiễu trong qúa trình xử lý Do đó, tăngcường ảnh có thể được coi như một tập hợp các kỹ thuật để nâng cao chất lượnghình ảnh đồng thời tập hợp này cũng được ding để nâng cao độ chính xác trongquá trình tìm kiếm tự động và chuyển đổi dạng của bức ảnh

Các kỹ thuật tăng cường ảnh có thể kể đến: kỹ thuật tương phản (contrast),ánh xạ (mapping- gán mỗi mức xám từ ảnh gốc với một mức xám khác của ảnh

đã được biên dịch),… Nói chung, các kỹ thuật tăng cường ảnh này đều nhằmmục đích đạt được kết qủa tốt nhất Những kỹ thuật này thường dựa trên các sựkết hợp giữa các phương pháp biến đổi trên miền không gian và miền tần số

Trang 13

- Khôi phục ảnh (image restoration):

Khôi phục ảnh là quá trình loại bỏ các suy giảm (degradation) trong ảnh Cónhiều nguyên nhân dẫn đến sự suy giảm

Khi camera không tập trung tiêu cự một cách hợp lý có thể dẫn đến bức ảnh

bị ‘nhòe’

Khi chụp ảnh trong điều kiên thời tiết không thuận lợi: sương mù, qúa nắngnóng,… cũng có thể làm cho bức ảnh bị ‘nhòe’

Chụp ảnh các vật đang chuyển động cũng có thể gây ‘nhòe’ cho bức ảnh

Do có nhiều nguyên nhân gây nên suy giảm ảnh vì vậy, đối với mỗi loạinguyên nhân phải có các cách phục hồi khác nhau Khôi phục ảnh phần lớnđược thực hiện bằng cách tìm ra các giải thuật nhằm phục hồi lại các thông tin bịthất lạc trong quá trình xử lý ảnh

Chúng ta cũng cần phân biệt tăng cường ảnh với khôi phục ảnh: trong khităng cường ảnh nhằm tăng chất lượng của bức ảnh thì khôi phục ảnh nhằm đưalại hình ảnh gốc của bức ảnh đã bị suy giảm Các kỹ thuật tăng cường ảnh không

áp dụng được với khôi phục ảnh

* Biến đổi ảnh (image transformation)

Thuật ngữ biến đổi ảnh thường dùng để nói tới các kỹ thuật dùng để biến đổiảnh Ở đây ảnh có thể được coi như một chuỗi các tín hiệu một chiều được biểudiễn bởi các hàm cơ sở Có nhiều biến đổi được dùng như: biến đổi Fourier,cosin, sin, karhumen loeve,…

* Phân tích ảnh (image analysis)

Sau các bước tiền xử lý ảnh, ảnh đã được tăng cường hay được khôi phục đểlàm nổi các đặc trưng chủ yếu Lúc này nó bắt đầu được đưa vào quá trình phântích Quá trình phân tích ảnh gồm các công đoạn: trích chọn các đặc tính (featureextraction), phân đoạn ảnh (segmentation) thành các phần tử Tuỳ theo mục đíchcủa việc xử lý, các giai đoạn tiếp theo của quá trình phân tích ảnh có thể là nhậndạng ảnh (phân thành các lớp có miêu tả) hay là giải thích và miêu tả ảnh

Trang 14

Hình vẽ trang 115

Hình 2 1 Các bước trong phân tích ảnh

Phân tích ảnh thường dựa trên việc phân tích các đặc trưng của ảnh: mật độxám, phân bố xác suất, phân bố không gian, biên ảnh…

2.2 Nhận dạng và phân loại ảnh.

* Nhận dạng ảnh (recognition of image partterns):

Khi một bức ảnh đã được phân đoạn, nhiệm vụ tiếp theo là nhận dạng vật thểhoặc vùng đã được phân đoạn Mỗi một vật thể là một thành phần ở trong ảnh vàcác giá trị đo được là các đặc tính của thành phần đó Một tập các vật thể cùng

có các đặc tính giống nhau được gọi là một ‘lớp vật thể’(pattern class)

Theo đó có thể định nghĩa, nhận dạng là quá trình phân loại các đối tượngđược biểu diễn theo một mô hình nào đó và gán cho chúng vào một lớp (gán chođối tượng một tên gọi) dựa theo những quy luật và các mẫu chuẩn

Sự nhận dạng ảnh thường dựa trên nhiều tính chất của vật và với mỗi tínhchất đều có các kỹ thuật nhận dạng khác nhau Ví dụ: Mỗi chữ cái trong tiếnganh đều là một tập các đường thẳng đứng, ngang, chéo hoặc cong Trong khichữ ‘A’ được mô tả bởi 2 đường chéo và một đường nằm ngang thì chữ ‘B’được mô tả bởi một đường thẳng đứng với 2 đoạn cong Một số tính chất củacác vật thể 2 hoặc 3 chiều là diện tích, thể tích, chu vi, bề mặt,… có thể đo đượcthông qua việc tính toán số ‘pixel’ Tương tự như vậy, bang của một vật đượcđặc trưng bởi đường biên của nó Một số tham số để xác định bang của một vật

là các mô-ment bất biến (invariant moment), đường trung bình (medial axis) củavật thể …

Ảnh vào

Trích chọnđặc tính

Phânđoạn

Phân loại

Giải thích

Trang 15

Mầu của một vật cũng là đặc điểm hết sức quan trọng được dùng trong nhậndạng Kỹ thuật dùng để phát hiện các đặc tính của vật thể gọi là kỹ thuật tríchchọn đặc tính (feature extraction) Khi đó vật thể được miêu tả như một tập cácđặc tính Sự lựa chọn và tách lấy các tính chất thích hợp được coi như là vấn đề

cơ bản đầu tiên trong nhận dạng ảnh

* Phân loại thành phần ảnh (classification of image patterns)

Phân loại là một công đoạn quan trọng trong quá trình nhận dạng vật Đã cónhiều kỹ thuật phân loại được sử dụng trong việc nhận dạng thành phần Một số

kỹ thuật phân loại được biết như là những kỹ thuật lý thuyết chính xác Vớinhững kỹ thuật lý thuyết chính xác này, phân loại một thành phần chưa biếtđược quyết định dựa trên một số nguyên tắc hoặc đã xác định hoặc có ý nghĩathống kê hoặc thậm chí đôi khi còn chưa được xác định rõ

Trang 16

CHƯƠNG 3: XỬ LÝ ẢNH VỚI MATLAB

3.1 Giới thiệu về MATLAB

MATLAB là ngôn ngữ lập trình bậc cao dùng cho kỹ thuật Đồng thời nó

là môi trường tương tác có thể thực hiện nhiều nhiệm vụ: phát triển giải thuật,phân tích dữ liệu, tính toán các phép tính số học và hình ảnh hóa dữ liệu So vớicác ngôn ngữ lập trình truyền thống như C, C++ hay Fortran thì MATLAB cónhiều ưu điểm hơn do được tích hợp các hỗ trợ rất mạnh

MATLAB được sử dụng trong nhiều lĩnh vực ứng dụng bao gồm: sử lý tínhiệu và hình ảnh, truyền thông, thiết kế điều khiển, kiểm tra và đo lường, phântích và mô hình hóa các thông tin tài chính, tính toán trong hóa sinh… Ngoài ra,MATLAB còn được tích hợp các hộp công cụ (mỗi hộp gồm hệ thống các hàm

có những chức năng đặc biệt của MATLAB) nhằm giải quyết các lớp vấn đề cụthể trong các lĩnh vực ứng dụng khác nhau

MATLAB cung cấp nhiều đặc tính tiện lợi đối với việc xử lý và chia sẻcông việc Trong quá trình làm việc với MATLAB, các đoạn mã của nó có thểđược tích hợp với các ngôn ngữ và ứng dụng khác

3.1.1 Các đặc điểm cơ bản của MATLAB:

- Là ngôn ngữ bậc cao dùng cho các tính toán kỹ thuật.

- Là môi trường phát triển để quản lý dữ liệu.

- Gồm nhiều công cụ tương tác cho việc khai thác và xử lý dữ liệu, thiết kế

và giải quyết vấn đề

- Các hàm đồ thị đối với ảnh 2 hoặc 3 chiều cho phép hình ảnh hóa dữ liệu.

- Chứa các công cụ để xây dựng các giao diện đồ thị của người sử dụng.

Trang 17

- Gồm nhiều hàm chức năng dựa trên các giải thuật cơ sở nhằm tích hợp

MATAB với các ứng dụng và ngôn ngữ lập trình khác như: C,C++,Fortran, Java, Microsoft excel…

3.1.2 Phát triển giải thuật và ứng dụng

MATLAB là một ngôn ngữ bậc cao được tích hợp các công cụ phát triểngiúp người sử dụng phát triển và phân tích các giải thuật và ứng dụng một cáchnhanh chóng

3.1.3 Ngôn ngữ lập trình MATLAB:

Ngôn ngữ lập trình MATLAB hỗ trợ các phép toán đối với ma trận và vec-tơ

cơ sở cho các vấn đề kỹ thuật và khoa học

Việc lập trình và phát triển giải thuật trong MATLAB có tốc độ nhanh hơn sovới các ngôn ngữ lập trình truyền thống do MATLAB bỏ qua các công việc điềukhiển bậc thấp như khai báo biến, khai báo mẫu dữ liệu và xác định vùng nhớ.Trong nhiều trường hợp, MATLAB còn bỏ qua cả sự cần thiếp của các vòng lặp

‘for’ Kết quả là, một dòng lệnh được viết trong MATLAB có thể tương đươngvới nhiều dòng lệnh trong C hay C++

Là một công cụ lập trình mạnh, MATLAB vẫn hỗ trợ những đặc tính của mộtngôn ngữ lập trình truyền thống như: toán tử số học, cấu trúc vòng, các cấu trúc

và dạng dữ liệu cùng đặc tính gỡ rối

Ví dụ: Chương trình biểu diễn thuật toán điều chế tín hiệu truyền thông tạo ra

1024 điểm, thực hiện điều chế, thêm nhiễu phức Gauss và vẽ lại kết quả

% tạo một vector N bit

N = 1024;

bits = rand(N,1)>0.5;

% chuyen sang ky tu

Tx=1-2*bits;

Trang 18

%them vao nhieu Gauss trang

Trang 19

3.1.4 Phân tích và tiếp cận dữ liệu

Trong quá trình phân tích dữ liệu, MATLAB hỗ trợ hầu hết các công đoạnnhư: thu nhận dữ liệu từ thiết bị ngoại vi, các phân tích số học, tiền xử lý, hìnhảnh hóa…

- Tương quan, phân tích Fourier và lọc.

- Phát hiện các điểm đỉnh, đáy và điểm không.

- Thống kê cơ bản và chuẩn hóa các đường cong.

- Phân tích ma trận.

Tiếp cận dữ liệu

Việc tiếp cận dữ liệu từ các thư mục, ứng dụng, cơ sở dữ liệu và thiết bịngoại vi bởi MATLAB là hết sức dễ dàng MATLAB hỗ trợ nhiều loại địnhdạng file: ASCII, nhị phân, các file hình ảnh và âm thanh hay thậm chí các fileđịnh dạng HDF

Trong MATLAB có nhiều hộp công cụ (toolbox) hỗ trợ cho việc tiếp cận

dữ liệu như: hộp công cụ cơ sở dữ liệu (Database Toolbox), hộp công cụ thunhận dữ liệu (Data Acquisition Toolbox) hay hộp công cụ điều khiển thiết bị(Instrument Control Toolbox)

Trang 20

3.1.5 Hình ảnh hóa dữ liệu

Tất cả các đặc tính về hình ảnh cần thiết cho hình ảnh hóa các dữ liệu khoahọc kỹ thuật đều được tích hợp trong MATLAB Những đặc tính này bao gồm:các hàm vẽ ảnh 2 và 3 chiều, các hàm vẽ thể tích 3 chiều, các công cụ tương táctạo ảnh, khả năng xuất kết quả dưới các dạng file ảnh thông thường

VD: vẽ hàm y= sin(x) với -pi < x < pi

3.1.6 Xuất kết quả và triển khai ứng dụng

MATLAB đưa ra nhiều đặc tính giúp báo cáo và chia sẻ công việc Cácđoạn code viết trên MATLAB có thể được tích hợp với các ngôn ngữ và ứng

Trang 21

dụng khác Đồng thời cũng có thể triển khai các thuật toán cũng như ứng dụngcủa nó như một chương trình hoặc các khối phần mềm riêng biệt.

Xuất kết quả:

Sau khi hoàn thành công việc, người sử dụng cần xuất kết quả ra thường làdưới dạng hình ảnh hoặc báo cáo MATLAB có hỗ trợ file hình ảnh với nhiềuđịnh dạng khác do đó việc xuất kết quả dưới dạng đồ thị hay file ảnh là hết sức

dễ dàng Ngoài ra, nếu muốn thì cũng có thể chuyển code từ MATLAB ra cácdạng khác: HTML, Word, Latex…

Kết hợp mã MATLAB với các loại ngôn ngữ và ứng dụng khác:

MATLAB cung cấp sẵn các hàm cho việc kết hợp mã của các ngôn ngữ lậptrình khác như C, C++, Fortran hay Java với mã chương trình của nó Sử dụngthư viện công cụ(engine library) của MATLAB, người sử dụng có thể gọi cácđoạn mã từ C, C++ hay Fortran

Triển khai ứng dụng:

Các sản phẩm sau khi xử lý bằng MATLAB thường là các đoạn mã Cácđoạn mã này có thể được cung cấp cho những người khác hoặc ứng dụng vàocác sản phẩm phần cứng hoặc phần mềm cụ thể

3.2 Xử lý ảnh bằng MATLAB

3.2.1 Ảnh trong MATLAB

Trong MATLAB, dữ liệu chủ yếu được lưu trữ theo cấu trúc mảng (tập cóthứ tự gồm các phần tử số thực hoặc phức) Ảnh trong Matlab cũng được lưu trữbởi các mảng phần tử với các giá trị lưu trữ có thể là mầu, cường độ… của ảnh.Hầu hết các ảnh được MATLAB lưu trữ dưới dạng các mảng 2 chiều (vídụ: ma trận) Trong các mảng 2 chiều này, mỗi phần tử tương ứng với một pixel

và thường được biểu diễn bởi một điểm trên màn hình máy tính(ví dụ: Một bứcảnh có 500 hàng và 700 cột gồm nhiều điểm mầu khác nhau được lưu trữ bởimột ma trận có kích thước 500x700) Một số bức ảnh, như ảnh mầu đòi hỏi phải

Trang 22

được lưu trữ bởi mảng ba chiều Trong đó, mặt phẳng thứ nhất trong mảng bachiều này biểu diễn cho cường độ đỏ (red) của phần tử, mặt phẳng thứ hai biểudiễn cho cường độ màu xanh là cây (green) và mặt phẳng còn lại biểu diễn chocường độ màu xanh da trời (blue) của phần tử Với việc lưu trữ các ảnh dướidạng mảng, việc xử lý ảnh với dữ liệu được lưu bởi dạng ma trận nào đều đượcthực hiện rất thuận tiện

3.2.2 Hộp công cụ xử lý ảnh (image processing toolbox):

Matlab có thể xử lý cũng như lưu trữ các bức ảnh dưới nhiều định dạngkhác nhau: BMP, HDF, JPEG, TIFF… Dù vậy tất cả các định dạng này đềuđược quy chuẩn về 4 dạng cơ bản: nhị phân (Binary), được gán chỉ số (Indexed),mức xám (Grayscale), RGB (RGB hay truecolor) Các định dạng ảnh này sẽ quiđịnh cách mà Matlab biên dịch các phần tử của ma trận dữ liệu (VD: các giá trịcường độ phần tử)

* Ảnh dạng mức xám (gray scale image):

Ảnh loại này được biểu diễn bởi một ma trận mà mọi phần tử của nó đềubiểu diễn một giá trị sáng/tối của điểm ảnh ở vị trí tương ứng Có 2 cách để biểudiễn giá trị thể hiện mức độ ‘xám’ của một pixel: dạng double và dạng uint8.Dạng double gán cho mỗi pixel một giá trị động thuộc khoảng (0,1): giá trị 0ứng với màu đen còn 1 ứng với màu trắng Dạng uint8 gán cho mỗi pixel mộtgiá trị từ 0 đến 255 thể hiện độ sáng (brightness): giá trị 0 tương ứng với màuđen còn 255 ứng với màu trắng Mỗi bức ảnh lưu trữ dưới dạng uint8 chỉ chiếm1/8 không gian nhớ so với lưu trữ dưới dạng double Mặc dù vậy, đôi khi thuậttoán hoặc các ứng dụng chỉ có thể giải quyết với dạng double

Trang 23

với bức ảnh và chứa giá trị thứ nhất của mỗi pixel Ma trận còn lại được gọi là

ma trận màu (color map) và có kích cỡ có thể khác so với kích cỡ của bức ảnh.Các chỉ số ở ma trận thức nhất cho ta biết số nào sẽ được biểu diễn bởi ma trậnmàu

* Ảnh dạng RGB:

Các ảnh RGB được Matlab lưu trữ bởi 3 ma trận chứa các kích cỡ ứng vớiđịnh dạng của bức ảnh Mỗi ma trận tương ứng với một trong các mầu: đẻ(Red), xanh lá cây (Green), xanh da trời (Blue) Đồng thời giá trị mỗi phần tửcủa ma trận sẽ thể hiện cường độ từng loại mầu tại mỗi pixel

3.2.3 Các hàm xử lý ảnh cơ bản trong Matlab

3.2.3.1 Đọc và ghi dữ liệu ảnh

Đọc một ảnh đồ hoạ

- Hàm imread đọc một ảnh từ bất kì định dạng nào được trợ giúp trong bất

kì chiều sâu bit nào được trợ giúp Hầu hết các file ảnh sử dụng 8 bit để chứagiá trị của pixel Khi chúng được đọc vào bộ nhớ, Matlab chứa chúng dướidạng uint8 Với các file trợ giúp 16 bít dữ liệu, PNG và TIFF, Matlab chứachúng dưới dạng uint16 Chú ý: Với ảnh chỉ số, imread luôn luôn đọc bản

đồ màu vào trong một chuỗi thuộc lớp double, thậm chí mảng ảnh tự nóthuộc lớp uint8 hay uint16

- Chẳng hạn, đoạn mã sau sẽ đọc một ảnh RGB vào không gian làm việc của

Matlab lưu trong biến RGB

RGB=imread(‘football.jpg’);

Trong ví dụ này, imread sẽ nhận ra định dạng file để sử dụng từ tên file Ta cũng

có thể chỉ ra định dạng file như một tham số trong hàm imread Matlab trợ giúprất nhiều định dạng đồ hoạ thông dụng chẳng hạn: BMP, GIF, JPEG, PNG,TIFF … Để biết thêm các kiểu gọi hàm và tham số truyền vào, xem trợ giúponline của Matlab

Trang 24

Đọc nhiều ảnh từ một file đồ hoạ

- Matlab trợ giúp một số định dạng file đồ hoạ chẳng hạn như: HDF và TIFF,chúng chứa nhiều ảnh Theo mặc định, imread chỉ trợ giúp ảnh đầu tiên trongfile Để nhập thêm các ảnh từ file, sử dụng cú pháp được trợ giúp bởi định dạngfile Chẳng hạn khi được sử dụng với TIFF, ta có thể sử dụng một giá trị chỉ sốvới imread để chỉ ra ảnh mà ta muốn nhập vào

- Khi file chứa nhiều ảnh theo một số kiểu nhất định chẳng hạn theo thứ tựthời gian, ta có thể lưu ảnh trong Matlab dưới dạng mảng 4 chiều Tất cả các ảnhphải có cùng kích thước

- Để biết thêm các cấu trúc khác của hàm xem phần trợ giúp trực tuyến củaMatlab

Đọc và ghi ảnh nhị phân theo định dạng 1 bit

- Trong một số định dạng file, một ảnh nhị phân có thể được lưu trong mộtđịnh dạng 1 bit Nếu định dạng file trợ giúp nó, Matlab ghi ảnh nhị phân nhưảnh 1 bit theo mặc định Khi ta đọc một ảnh nhị phân với định dạng 1 bit,Matlab đại diện nó trong không gian làm việc như một mảng lôgic Chú ý: Khi ghi file nhị phân, Matlab thiết lập trường ColorType thành

‘grayscale’

Trang 25

Xem lớp lưu trữ của file

- Hàm imwrite sử dụng luật sau đây để quyết định lớp lưu trữ được sử dụngtrong ảnh kết quả:

+ logical: Nếu định dạng ảnh ra (Output Image) được chỉ rõ là trợ giúp ảnh 1 bit,hàm imwrite tạo một file ảnh 1 bit Nếu định dạng ảnh ra được chỉ rõ là khôngtrợ giúp ảnh 1 bit (như JPEG), hàm imwrite chuyển ảnh tới một ảnh thuộc lớpuint8

+ uint8: Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bit, hàm imwrite tạomột ảnh 8 bit

+ uint16: Nếu định dạng ảnh ra được chỉ rõ trợ giúp ảnh 16 bit (PNG hoặcTIFF), hàm imwrite tạo một ảnh 16 bit Nếu định dạng ảnh ra không trợ giúpảnh 16 bit, hàm chuyển đổi dữ liệu ảnh tới lớp uint8 và tạo một ảnh 8 bit

+ double: Matlab chuyển dữ liệu ảnh tới dạng uint8 và tạo một ảnh 8 bit bởi vìhầu hết các file ảnh sử dụng định dạng 8 bit

Truy vấn một file đồ hoạ:

Hàm imfinfo cho phép ta có thể nhận được thông tin về một file ảnh được trợgiúp bởi toolbox Cú pháp: imfinfo (filename,fmt) Các thông tin được cung cấpbởi hàm imfinfo là: filename, filemodedate, filesize, format, formatversion,width, height, bitdepth, colortype … Thông tin mà ta nhận được phụ thuộc vàokiểu của file nhưng nó luôn bao gồm những thông tin sau:

- Tên của file ảnh.

- Định dạng file ảnh.

- Số version của định dạng file.

- Ngày sửa đổi file gần nhất.

- Kích thước file tính theo byte.

- Chiều rộng ảnh tính theo pixel.

Trang 26

- Chiều cao ảnh tính theo pixel.

- Số lượng bít trên một pixel.

Dùng hàm imshow

Ngày đăng: 16/01/2015, 09:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lương Mạnh Bá - Nguyễn Thanh Thủy: Nhập Môn Xử Lý Ảnh, Đại học bách khoa hà nội – 2008 Khác
[2] Nguyễn Quang Hoan: Xử Lý Ảnh, Học viện công nghệ bưu chính viễn thông – 2006 Khác
[4] Đặng Minh Chức - Đặng Trường Giang, Nhận dạng và xử lý ảnh vật thể ứng dụng trong điều khiển, Đại học nông lâm thành phố Hồ Chí Minh – 2011 Khác
[5] Bùi Minh Thành, Tài liệu hướng dẫn học matlab dành cho môn xử lý ảnh Khác
[6] JAE S.LIM, Nguyễn Văn Ngọ dịch, Giáo trình xử lý ảnh, Đại học quốc gia hà nội – 2001 Khác
[7] JAE S.LIM, Two - Dimensional Signal and image processing Khác
[8]C.Gonzales ,E.Woods , L.Eddins, Digital Image Using Matlab Processing [9] Công cụ Matlab/Help/Demo/Image processing toolbox.[10] Wed Codientu.org Khác

HÌNH ẢNH LIÊN QUAN

Hình 1. 1 Các bước  thực hiện hoàn chỉnh của một quá trình. - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 1. 1 Các bước thực hiện hoàn chỉnh của một quá trình (Trang 7)
Hình vẽ trang 115 - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình v ẽ trang 115 (Trang 13)
Hình 3. 1 Các điểm tạo ra - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 3. 1 Các điểm tạo ra (Trang 17)
Hình 3. 2 Đồ thị hàm y = sin(x) - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 3. 2 Đồ thị hàm y = sin(x) (Trang 19)
Hình 3. 3 Ảnh trước và sau khi imresize - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 3. 3 Ảnh trước và sau khi imresize (Trang 30)
Hình 3. 4 Ảnh trước và sau khi imrotate 3.2.3.7   Xén ảnh (image cropping) - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 3. 4 Ảnh trước và sau khi imrotate 3.2.3.7 Xén ảnh (image cropping) (Trang 32)
Hình 3. 5 Đai ốc - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 3. 5 Đai ốc (Trang 33)
Hình 4. 1 Năm chi tiết cần nhận dạng. - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 4. 1 Năm chi tiết cần nhận dạng (Trang 35)
Hình 4. 3 Sơ đồ thuật toán - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 4. 3 Sơ đồ thuật toán (Trang 36)
Hình 4. 2 Sơ đồ bài toán sơ lược. - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 4. 2 Sơ đồ bài toán sơ lược (Trang 36)
Hình 4. 4 Chuyển ảnh về ảnh xám từ ảnh RGB - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 4. 4 Chuyển ảnh về ảnh xám từ ảnh RGB (Trang 37)
Hình 4. 5 Ảnh trước và sau khi quay  - Thay đổi kích thước ảnh theo một tỷ lệ cố định (scale). - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 4. 5 Ảnh trước và sau khi quay - Thay đổi kích thước ảnh theo một tỷ lệ cố định (scale) (Trang 38)
Hình 4. 6 Đồ thị đặc tính trích trọn của chi tiết. - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 4. 6 Đồ thị đặc tính trích trọn của chi tiết (Trang 40)
Hình 5. 1 Đặc trưng trích chọn của 5 chi tiết - Đồ án tốt nghiệp cơ điện tử Ứng dụng xử lý ảnh trong nhận dạng và phân loại các chi tiết máy trên một dây truyền sản xuất tự động
Hình 5. 1 Đặc trưng trích chọn của 5 chi tiết (Trang 41)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w