1. Trang chủ
  2. » Công Nghệ Thông Tin

Ứng dụng xử lý ảnh trong điều khiển robot tự động

64 649 0

Đ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 64
Dung lượng 1,2 MB

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

Nội dung

1.2 Các vấn đề cơ bản trong xử lý ảnh 1.2.1 Một số khái niệm Pixel Picture Element: Phần tử ảnh Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độ sáng..  Mức xám Gr

Trang 1

MỤC LỤC

MỤC LỤC 1

LỜI CẢM ƠN 5

LỜI CAM ĐOAN 6

LỜI NÓI ĐẦU 7

DANH MỤC HÌNH ẢNH 8

CHƯƠNG 1 9

TỔNG QUAN VỀ XỬ LÝ ẢNH 9

1.1 Tổng quan về xử lý ảnh 9

1.2 Các vấn đề cơ bản trong xử lý ảnh 10

1.2.1 Một số khái niệm 10

1.2.2 Thu nhận ảnh 10

1 2.3 Biểu diễn ảnh 11

1.2.4 Các lĩnh vực xử lý ảnh 12

1.2.4.1 Nâng cao chất lượng ảnh 12

1.2.4.2 Khôi phục ảnh 12

1.2.4.3 Phân tích ảnh 13

1.2.4.4 Nén ảnh 13

1.2.4.5 Tổng hợp ảnh 13

1.2.5 Một số hệ thống xử lý ảnh cơ bản 13

1.3 Một số phương pháp xử lý ảnh 14

1 3.1 Kỹ thuật tăng giảm độ sáng 14

1.3.2 Tăng giảm độ tương phản 16

Trang 2

1.3.3 Tách ngưỡng 18

1.3.4 Phép giãn ảnh đa cấp xám 18

1.3.4.1 Định nghĩa 18

1.3.4.2 Thuật toán 18

1.3.5 Các tác động ảnh xám cục bộ 20

1.3.5.1 Tác động nhân chập ảnh 20

1.3.5.2 Các phương pháp lọc-làm nhẵn 21

1.3.5.3 Bộ lọc phi tuyến 22

1.3.5.4 Lọc phi tuyến 23

1.3.6 Phép co ảnh đa cấp xám 24

1.3.6.1 Định nghĩa 24

1.3.6.2 Thuật toán 24

1.3.7 Các phép biến đổi hình học 24

1.3.7.1 Phép dịch ảnh 24

1.3.7.2 Phép phóng to hoặc thu nhỏ ảnh 25

1.3.7.3 Phép quay ảnh 25

1.3.7.4 Kết hợp các phép biến đổi hợp nhất 26

CHƯƠNG 2 TỔNG QUAN VỀ C SHARP 28

2.1 Tổng quan về ngôn ngữ C sharp (C #) 28

2.1.1 Giới thiệu chung về ngôn ngữ C sharp (C#) 28

2.1.2 Nền tảng ngôn ngữ C# 29

2.1.2.1 Kiểu dữ liệu 29

2.1.2.2 Biến, hằng và toán tử 31

2.1.2.3 Câu lệnh 32

Trang 3

2.1.3.1 Lớp 36

2.1.3.2 Thuộc tính truy cập 37

2.1.3.3 Tham số của phương thức 38

2 1.3.4 Đối tượng 38

2.1.3.5 Khởi tạo biến thành viên 38

2.1.4 Kế thừa và đa hình 39

2.1.4.1 Kế thừa 39

2.1.4.2 Đa hình 39

2.1.4.3 Lớp trừu tượng 39

2.1.5 Nạp chồng toán tử 40

2.1.6 Các lớp cơ sở NET 41

2.1.6.1 Lớp đối tượng trong NET Framework 41

2.1.6.2 Lớp Timer 42

2.1.6.3 Lớp về thư mục & hệ thống 42

2.1.6.4 Lớp Math 43

2.1.6.5 Lớp thao tác tập tin 44

2.1.6.6 Làm việc với tập tin dữ liệu 44

2.1.7 Ứng dụng Window với Window Form 45

2.1.8Truy cập dữ liệu với ADO.NET 45

CHƯƠNG 3 ỨNG DỤNG XỬ LÝ ẢNH TRONG ĐIỀU KHIỂN 47

ROBOT TỰ ĐỘNG 47

3.1 Hoạt động của robot 48

3.1.1 Nhiệm vụ 48

3.1.2 Hướng của giá đỡ hàng so với xe nâng tự động 49

3.1.3 Khoảng cách từ xe tự động đến giá đỡ hàng 50

Trang 4

3.1.4 Xác định khoảng cách 50

3.1.5 Kích thước ảnh thực của đối tượng 52

3.2 Ứng dụng xử lý ảnh để tính khoảng cách 54

3.2.1 Mô tả bài toán 54

3.2.2 Quá trình thu ảnh và các yêu cầu của hệ thống 55

3.2.2.1 Đọc ảnh 55

3.2.2.2 Lọc nhiễu 55

3.2.2.3 Phân ngưỡng 56

3.3 Tính toán khoảng cách dựa trên ảnh thu được 59

3.4 Xây dựng chương trình 60

3.4.1Môi trường ứng dụng 60

3.4.2 Chương trình 61

3.4.2.1 Kết quả thực nghiệm 61

KẾT LUẬN 64

1 Đánh giá kết quả 64

2 Hướng phát triển 64

TÀI LIỆU THAM KHẢO 65

Trang 5

LỜI CẢM ƠN

Lời đầu tiên cho em gửi lời cảm ơn chân thành nhất tới tất cả các thầy, côgiáo Trường Đại học Công nghệ Thông tin & Truyền thông - Đại học TháiNguyên nói chung và các thầy cô giáo trong Bộ môn Các Hệ thống Thông tin nóiriêng Các thày, cô đ-ã tận tình giảng dạy, trang bị cho em vốn kiến thức cũngnhư những kinh nghiệm quý báu để em có thể đạt được kết quả tốt nhất tronghọc tập cũng như trong công việc của em sau này Đặc biệt em xin chân thànhcảm ơn thầy giáo Tiến sỹ Phạm Đức Long đã trực tiếp hướng dẫn giúp đỡ emtrong thời gian làm đồ án vừa qua Trong thời gian hướng dẫn tuy thầy rất bậnnhưng thầy vẫn dành thời gian chỉ bảo truyền đạt cho em những kinh nghiêm vànhững định hướng cho đồ án của em đảm bảo kết quả, và hoàn thành đúng thờigian theo quy định Cuối cùng em xin cảm ơn sự giúp đỡ, động viên của giađình, bạn bè dành cho em trong suốt thời gian qua

Thái nguyên, tháng 06 năm 2012

Sinh viên

Nguyễn Thị Thu Hoàn

Trang 6

LỜI CAM ĐOAN

Đồ án tốt nghiệp là sản phẩm tổng hợp toàn bộ các kiến thức mà sinh viên

đã học được trong suốt thời gian học tập tại trường đại học Ý thức được điều đó,với tinh thần nghiêm túc, tự giác cùng sự lao động miệt mài của bản thân và sựhướng dẫn tận tình của thầy giáo Tiến sỹ Phạm Đức Long em đã hoàn thành đồ

án tốt nghiệp của mình

Em xin cam đoan: nội dung đồ án của em không sao chép nội dung cơ bản từ các

đồ án khác và sản phẩm của đồ án là của chính bản thân em nghiên cứu xây dựnglên Mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng bảovệ

Sinh viên Nguyễn Thị Thu Hoàn

Trang 7

LỜI NÓI ĐẦU

Ngày nay công nghệ thông tin ngày càng không thể thiếu với đời sống củacon người với tốc độ phát triển vũ bão của công nghệ thông tin làm cho việc luânchuyển thông tin trở nên cực kỳ nhanh chóng và vai trò của thông tin ngày càngtrở nên quan trọng Cùng với sự phát triển chung của thế giới và khu vực trongnhững năm gần đây ngành tin học Việt Nam cũng có những bước phát triển vượtbậc

Trong thời đại mới việc đẩy mạnh ứng dụng công nghệ thông tin vào thựctiễn là một mục tiêu được Nhà nước quan tâm và phát triển Việc nắm bắt, khaithác, xử lý thông tin càng nhanh, càng linh hoạt, càng chính xác bao nhiêu thì kếtquả thành công càng cao

Với mong muốn tìm hiểu,tiếp cận với công nghệ thông tin trong thời đại mới

để có thêm kiến thức cho con đường lập nghiệp trong tương lai, em đã chọn đề

tài: Ứng dụng xử lý ảnh trong điều khiển robot tự động.

Mục tiêu của đề tài cần giải quyết vấn đề sau:

Xây dựng chương trình cho camera đặt trên một robot tự động xác định hướng vàkhoảng cách tới một đối tượng để cung cấp thông tin cho máy tính điều khiểnrobot

Trên cơ sở đó, nội dung của đề tài gồm 3 chương sau:

Chương 1 : Tổng quan về xử lý ảnh

Chương 2 : Tổng quan về C sharp

Chương 3: Ứng dụng xử lý ảnh để điều khiển robot tự động

Mặc dù đã cố gắng nhưng chắc chắn đồ án của em không tránh khỏi nhữngthiếu sót và hạn chế Em rất mong nhận được sự đóng góp ý kiến của cácthầy(cô) giáo để đề tài của em hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1: Các bước cơ bản của hệ thống xử lý ảnh 9

Hình 2: Biểu diễn của một mức xám của ảnh số 11

Hình 3: Hệ tọa độ màu RGB 12

Hình 4: Ảnh gốc (a); ảnh đã giảm độ sáng (b); ảnh đã được tăng cường độ sáng (c) 16

Hình 5: (a) Ảnh gốc; (b) Ảnh đã giảm độ tương phản; (c) Ảnh đã tăng độ tương phản 17

Hình 6: (a):ảnh xám (b):ảnh đen trắng 18

Hình 7: Kiến trúc ADO.NET 46

Hình 8: Xe nâng hàng có người lái 48

Hình 9:Giá đỡ hàng tiêu chuẩn và các kích thước (dài x rộng x cao) mm Từ trên xuống dưới, từ trái qua phải: 2a): châu Âu (1200 x 800 x 144) 2b): Mỹ 2c): Hàn Quốc (1100 x 1100 x 150) 2d): Trung Quốc (1100 x 1100 x 150) 49

Hình 10: Các hệ tọa độ 50

Hình 11: Mô hình xác định khoảng cách sử dụng camera với hai mặt phẳng ảnh và mặt phẳng đối tượng song song với nhau 51

Hình 12: Mô hình camera pinhole khi mặt phẳng ảnh không song song mặt phẳng đối tượng 52

Hình 13:Ảnh gốc và ảnh sau khi thực hiện phân ngưỡng 58

Hình 14: Mô hình chương trình xử lý 58

Hình 15: Giao diện chương trình 61

Hình 16: Giao diện thực hiện chính 62

Trang 9

CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÝ ẢNH

1.1 Tổng quan về xử lý ảnh

Xử lý ảnh là một lĩnh vực đang được quan tâm, xử lý ảnh có quan hệ mậtthiết với nhận thức về ảnh của con người Tổng quát với hệ thống xử lý ảnh nhưsau:

Hình 1: Các bước cơ bản của hệ thống xử lý ảnh

Theo sơ đồ trên, ảnh cần được xử lý sẽ thu qua hệ thống thu nhận ảnh Hệ thốngthu ảnh này bao gồm các thiết bị chụp ảnh như camera, máy quét, máy scanner,máy chụp hình, TiVi camera…

Ảnh sau khi thu nhận qua hệ thống thu nhận ảnh sẽ tiền xử lý, trích chọn đặctrưng, hậu xử lý,sau đó ảnh đượclưu thành file để đưa vào máy tính xử lý, lưu

Trang 10

trữ, hoạc được đem ra đối sánh để đưa ra kết luận Một số hệ thống có thể baogồm các chức năng lấy mẫu và số hóa ảnh.

Có nhiều loại file ảnh khác nhau: file bitmap, file jpeg, file gif, Ảnh gốc saukhi đã số hóa được đưa vào máy tính để xử lý Và tùy theo từng ứng dụng cụ thể

mà chọn ra các cách xử lý thích hợp

1.2 Các vấn đề cơ bản trong xử lý ảnh

1.2.1 Một số khái niệm

Pixel (Picture Element): Phần tử ảnh

Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độ sáng

Để có thể xử lý ảnh bằng máy tính cần thiết phải tiến hành số hóa ảnh Trong quátrình số hóa người ta biến đổi tín hiệu liên tục sang tín hiệu rời rạc thông qua quátrình lấy mẫu (rời rạc hóa về không gian) và lượng tử hóa thành phần giá trị (rờirạc hóa biên độ giá trị), về nguyên tắc bằng mắt thường không phâ biệt được haimức kề nhau Do vậy người ta sử dụng khái niệm Pixel- phần tử ảnh Mỗi pixelgồm một cặp tọa độ x,y và màu Cặp tọa độ x,y tạo nên độ phân giải (resolution)

 Ảnh: Là một tập hợp các điểm ảnh Khi được số hóa, nó thường được biểu diễnbởi mảng hai chiều l (n,p): n là số dòng, p là số cột ta nói ảnh gồm n*p pixel Ta

ký hiệu l (x,y) để chỉ một điểm ảnh

 Mức xám (Gray level): Là kết quả của sự mã hóa tương ứng một cường độ sángcủa mỗi điểm ảnh với một giá trị số - kết quả của quá trình lượng tử hóa

Lược đồ mức xám (Histogram): Là mộ hàm cung cấp tần suất xuất hiện của mỗimức xám Lược đồ mức xám được biểu diễn bởi hệ tọa độ vuông góc x,y Trong

hệ tọa độ này, trục hoành biểu diễn số mức xám từ 0 đến N, N là số mức xám (Sốđiểm ảnh có cùng mức xám)

1.2.2 Thu nhận ảnh

Muốn xử lý ảnh trên máy tính ta cần phải số hóa ảnh, tức là đưa ảnh từthực tế vào máy tính Ta dùng các thiết bị thu nhận như: Camera cộng với bộ

Trang 11

1 2.3 Biểu diễn ảnh

Ảnh có thể biểu diễn dưới dạng tương tự hoặc tín hiệu số Trong biểu diễn sốcủa các ảnh đa mức xám, một ảnh được biểu diễn dưới dạng một ma trận haichiều Mỗi phần tử của ma trận biểu diễn cho mức xám, hay cường độ sáng của

ảnh tại vị trí đó Mỗi phần tử trong ma trận được gọi là phần tử ảnh, thông

thường ký hiệu là PEL (Picture Element) hoặc là điểm ảnh (Pixel)

 Với ảnh đen trắng: Nếu dùng 8 bit (1 byte) để biểu diễn mức xám thì số các mứcxám có thể biểu diễn được là 28 hay 256 Mỗi mức xám được biểu diễn dưới dạng

là một số nguyên nằm trong khoảng từ 0 đến 255, với mức xám 0 biểu diễn chomức cường độ sáng nhất và 255 biểu diễn cho mức cường độ đen nhất

 Với ảnh màu: Cách biểu diễn cũng tương tự như đối với ảnh đen tráng, chỉ khác

là các số tại mỗi phần tử của ma trận biểu diễn cho ba màu riêng rẽ gồm : Đỏ(red), lục (green), lam (blue) Để biểu diễn cho một điểm ảnh màu cần 24bit, 24bit này được chia thành ba khoảng 8bit Mỗi khoảng này biểu diễn cho cường độsáng của một trong các màu chính Để hiểu được việc số hóa ảnh ta xem hình4.Trong đó độ sáng trung bình của mỗi hình chữ nhật bằng giá trị một điểm ảnh

Hình 2: Biểu diễn của một mức xám của ảnh số

Sau quá trình số hóa ta sẽ thu được một ma trận tương ứng với ảnh cầnxét, mỗi phần tử của ma trận tương úng với một điểm ảnh Các điểm này thườngđược đặc trưng bởi tọa độ màu RGB tương ứng với nó trong hệ tọa độ màu cơbản sau:

Trang 12

Hình 3: Hệ tọa độ màu RGB

Về mặt toán học ta có thể xem ảnh như là một hàm hai biền(x,y), với x,y

là các biến tọa độ Giá trị số tại điểm (x,y) tương ứng với giá trị xám hoặc độsáng của ảnh

1.2.4 Các lĩnh vực xử lý ảnh

1.2.4.1 Nâng cao chất lượng ảnh

Nâng cao chất lượng ảnh là quá trình xử lý ảnh để nâng cao chất lượng củaảnh Nó làm nổi bật một số đặc tính nào đó của ảnh nhằm phục vụ cho hiển thịhoặc các quá trình phân tích tiếp theo Tùy theo các ứng dụng khác nhau màchúng ta có các kỹ thuật nâng cao chất lượng ảnh khác nhau Nâng cao chấtlượng ảnh có quan hệ gần gũi với khôi phục ảnh Khi một ảnh bị nhiễu, thì khôiphục ảnh gốc thường đưa đến nâng cao chất lượng ảnh Có một số khác biệt giữakhôi phục và nâng cao chất lượng ảnh Trong khôi phục ảnh, một ảnh gốc bịnhiễu, và mục tiêu là làm cho ảnh sau khi xử lý càng giống ảnh gốc càng tốt Cònnâng cao chất lượng ảnh thì mục tiêu là làm cho ảnh sau khi xử lý được tốt hơnkhi chưa xử lý Như vậy một ảnh không bị nhiễu thì không thể được xử lý bằngcác kỹ thuật khôi phục ảnh nhưng ảnh đó có thể được xử lý bằng các kỹ thuậtnâng cao chất lượng ảnh Nhưng một ảnh bị nhiễu thì nó có thể được xử lý vừabằng các kỹ thuật khôi phục ảnh và nâng cao chất lượng ảnh

1.2.4.2 Khôi phục ảnh

Bất kỳ ảnh nào được thu bằng các thiệt bị điện, hay quang điện, hayquang học thường bị nhiễu bởi các môi trường cảm biến của các thiệt bị đó Các

Trang 13

ngẫu nhiên do chuyển động giữa camera và các đối tượng được chụp, nhiễu dokhí quyển.

Khôi phục ảnh dùng các bộ lọc để lọc các ảnh bị nhiễu để giảm tối thiểu

sự ảnh hưởng của các loại nhiễu này cho ra ảnh kết quả càng gần giống với ảnhgốc càng tốt Hiệu quả của các bộ lọc khôi phục ảnh phụ thuộc vào sự nhận biết

về quá trình nhiễu cùng với quá trình thu nhận ảnh Khôi phục ảnh thường được

xử lý trên miền tần số là chủ yếu Bao gồm các kỹ thuật lọc ngược, lọc bìnhthường tối thiểu

1.2.4.3 Phân tích ảnh

Là quá trình suy luận, tính toán dựa vào các đặc tính thể hiện trên hìnhảnh để từ đó rút ra được các thông tin định lượng về ảnh Phân tích ảnh có thểtách biên các vật thể trên ảnh, đo lường, phân loại, mô tả, so sánh chúng Mặtkhác, từ việc phân tích ảnh cũng có thể suy ra các số liệu thống kê về hình ảnh

Phân đoạn ảnh(Segmentation) là một hướng riêng của phân tích ảnh Phânđoạn ảnh bao gồm các kỹ thuật phân tách các đối tượng của ảnh thành những đốitượng có những nét đặc trưng của nó oặc tách biệt hoàn toàn giữa đối tượng vànền Mục đích là để cho dễ quan sát và xử lý

1.2.5 Một số hệ thống xử lý ảnh cơ bản

Một hệ thống xử lý ảnh cơ bản có thể bao gồm: Máy tính cá nhân kèmtheo vi mạch chuyển đổi đồ họa VGA hoặc SVGA, đĩa chứa các ảnh mà bạndùng để kiểm tra các thuật toán và một màn hình có hỗ trợ VGA hoặc SVGA

Trang 14

1.3 Một số phương pháp xử lý ảnh

1 3.1 Kỹ thuật tăng giảm độ sáng

Tăng cường độ sáng (Brightness) của một ảnh có thể được hiểu như sựphát sáng toàn bộ ảnh Hay nói một cách cụ thể đó là sự phát sáng toàn bộ củamọi Pixel trong ảnh đó

Đây là một kỹ thuật khá đơn giản: để tăng thêm độ sáng, tất cả các Pixel củaảnh cần được cộng thêm giá trị điều chỉnh vào mọi kênh màu RGB Tuy kỹ thuậtnày đơn giản nhưng nó đem lại hiệu quả khá cao và rất hay được sử dụng tronglĩnh vực xử lý ảnh Nó giúp ích rất nhiều trong các ngành như y học, địa lý, quânsự, trong việc phân tích và nhận dạng

Ở đây điều chỉnh Brightness không chỉ được sử dụng để làm sáng lên nhữngảnh tối mà còn được sử dụng để làm tối đi các ảnh sáng Một ảnh sáng hoàn toànđơn giản là tất cả các Pixel đều màu trắng trong khi một ảnh tối tất cả các Pixelđều màu tối Sự khác nhau duy nhất trong làm tối một ảnh là trừ đi giá trị điềuchỉnh vào mỗi kênh màu R - G - B của ảnh

Đối với mỗi kênh màu, chúng chỉ nhận các giá trị [0 255] Chính vì thế khităng cường hay giảm độ sáng của một ảnh ta phải chú ý đến ngưỡng của cáckênh Điều đó có nghĩa là với mỗi kênh màu của một Pixel nếu nhỏ hơn 0 thì taphải gán bằng 0 và nếu lớn hơn 255 thì ta phải gán bằng 255

Biểu thức cho kỹ thuật Brightness có dạng:

g(x,y) = f(x,y) + b Trong đó b là hằng số cộng thêm vào giá trị màu f(x,y) Độ sáng của ảnh tăng nếu b > 0, và giảm bớt nếu b < 0.

Thuật toán chung được miêu tả bằng :

If (Brightness = True) Then // Tăng độ sáng

NewValue = OldValue + Adjustment;

Trang 15

Else NewValue = OldValue - Adjustment; // Giảm độ sáng

If (NewValue < ValueMin) Then NewValue = ValueMin;

If (NewValue > ValueMax) Then NewValue = ValueMax;

Để cho thuật giả này nhanh hơn, chúng ta phân ra hai mức làm sáng(Lightening) và làm tối (Darkening) Việc phân ra làm hai mức là có hai lý do.Thứ nhất là khi làm sáng ảnh thì không phải kiểm tra nếu giá trị màu dưới 0 vàkhi làm tối ảnh cũng không phải kiểm tra nếu giá trị màu trên 255 Lý do thứ haiquan trọng hơn Đó là một Byte chỉ giữ những giá trị giữa 0 và 255 Mà phạm viđiều chỉnh màu lại nằm trong [-255 255] Điều đó có nghĩa là nếu chúng takhông phân ra làm hai mức thì giá trị điều chỉnh màu phải là Int và khi đó việc

xử lý tốn thêm thời gian sau mỗi vòng lặp

Thuật toán trên có thể được cải tiến như sau:

If (Brightness = True) Then

NewValue = OldValue + Adjustment;

If (NewValue > 255) Then NewValue = 255;

Else // Brightness=False

NewValue = OldValue - Adjustment;

If (NewValue < 0) Then NewValue = 0;

Với biến điều chỉnh màu Adjustment được khai báo kiểu Byte

Trang 16

đã tối đen trong ảnh gốc cũng không được làm tối hơn.

1.3.2 Tăng giảm độ tương phản

Độ tương phản (Contrast) thể hiện sự thay đổi cường độ sáng của đốitượng so với nền, hay nói cách khác, độ tương phản là độ nổi của điểm ảnh hayvùng ảnh so với nền

Ảnh số là tập hợp các điểm, mà mỗi điểm có giá trị độ sáng khác nhau Ở đây,

độ sáng để mắt người dễ cảm nhận ảnh song không phải là quyết định Thực tếchỉ ra rằng hai đối tượng có cùng độ sáng nhưng đặt trên hai nền khác nhau sẽcho cảm nhận khác nhau Vì vậy ta có thể thay đổi độ tương phản của ảnh saocho phù hợp

Việc làm tăng độ tương phản rất hữu ích khi tiến hành xử lý trước theophương pháp phân ngưỡng Bằng việc làm tăng độ tương phản, sự khác nhau củagiá trị nền và đối tượng, độ dốc của cạnh đối tượng được tăng lên Do đó sau khilàm tăng độ tương phản ta có thể tìm các giá trị màu thích hợp với một vùng sánghơn

Trong một ảnh có độ tương phản cao, có thể xác định được các viền rõ ràng vàchi tiết khác nhau của ảnh đó được nổi bật Còn trong một ảnh có độ tương phảnthấp, tất cả các màu đều gần như nhau gây khó khăn cho việc xác định các chitiết của ảnh

Trang 17

Hình sau mô tả việc tăng và giảm độ tương phản đối với ảnh gốc

(a) (b) (c)

Hình 5: (a) Ảnh gốc; (b) Ảnh đã giảm độ tương phản; (c) Ảnh đã tăng độ tương

Thuật toán được miêu tả như sau :

NewValue=OldValue/255; // Biến đổi đến một phần trăm

NewValue=NewValue - 0.5;

NewValue=NewValue*ContrastValue; //ContrastValue thuộc [-1,1]NewValue=NewValue + 0.5;

NewValue=NewValue*255;

If (NewValue > 255) Then NewValue = 255;

If (NewValue < 0) Then NewValue = 0;

Biểu thức Brightness và Contrast có thể được kết hợp lại để có được biểuthức sau:

Từ biểu thức (*) có thể điều chỉnh cả giá trị Brightness và Contrast

Trang 18

1.3.3 Tách ngưỡng

Ta chọn hai mức Thấp - Min, Cao - Max và giá trị ngưỡng λ, khi đó giá trịcác pixel được định nghĩa lại như sau:

+ Inew(x, y) = Max nếu I(x, y) >= λ

+ Inew(x, y) = Min nếu I(x, y) < λ

Ví dụ ảnh phân ngưỡng theo 2 mức giá trị màu 0 và 255:

+ I(x, y) = 0 với x= -(H-1) -1 hoặc M M+H-2; y = -(K-1) -1 hoặc N N+K-2

+ R(x, y) = Max {I(x-i, y-j)+T(i,j)} với i = 0 H-1; j = 0 K-1; x=0 M+H-1;y=0 N+K-1

1.3.4.2 Thuật toán

Trang 19

B2: Quay mẫu T đi 180o được T’

B3: Dịch chuyển mẫu T’ trên ảnh I theo trật tự từ trên xuống dưới, từ trái sang

phải sao cho pham vi mẫu của T’ nằm trong ảnh I Ở mỗi lần dịch chuyển, pixelảnh kết quả tương ứng có mức xám bằng giá trị lớn nhất của tổng các cặp pixelcủa mẫu T’ và ảnh I tương ứng Kết quả thu được có thể giảm đi cùng một giá trịxám thích hợp

Trang 20

: C là ma trận mặt nạ để thực hiện phép nhân chập C thường cókích thước (2k+1)x(2k+1).

Trang 21

+ Kế tiếp các ảnh một cách tuần hoàn và tạo ra một tín hiệu tuầnhoàn.

+ Giảm các tín hiệu nhiễu

1.3.5.2 Các phương pháp lọc-làm nhẵn

Trong nhiều lĩnh vực kỹ thuật, nhiễu đóng vai trò chủ yếu gây nên nhữngkhó khăn khi ta cần phân tích một tín hiệu nào đó, cũng không loại trừ tín hiệuảnh Giữa một ảnh thực và ảnh số hoá thu nhận được khác nhau khá nhiều vì cónhiều quá trình can thiệp vào Nguyên nhân là do nhiễu điện tử của máy thu haychất lượng kém của bộ số hoá Ta xem xét biến nhiễu thể hiện trên ảnh thế nào.Giả sử ảnh là một miền có mức xám đồng nhất, như vậy các phần tử của ma trậnbiểu diễn ảnh sau quá trình số hoá phải có cùng giá trị Nhưng thực tế quan sát tathấy: gần giá trị trung bình của mức xám có những phần tử trội lên khá nhiều Đóchính là hiện tượng nhiễu Như vậy nhiễu trong ảnh số được xem như sự dịchchuyển nhanh của tín hiệu thu nhận (tín hiệu ảnh I[m,n]) trên một khoảng cáchngắn) Xem xét một cách tương đương trong không gian tần số, nhiễu ứng vớicác thành phần tần số cao trong ảnh Do vậy, người ta nghĩ đến việc biến đổi cótính đến ảnh hưởng của các phần tử lân cận bằng cách lấy “tổ hợp” các điểm lâncận này (trong không gian thực) hay lọc các thành phần tần số cao (trong không

gian tần số) Đây chính là kỹ thuật lọc (filtering) Cơ sở lý thuyết của kỹ thuật lọc

số là dựa trên tính dư thừa thông tin không gian: các pixel lân cận có thể có cùnghoặc gần cùng một số đặc tính Hơn nữa, nhiễu có thể coi như sự đột biến củamột điểm ảnh so với các điểm lân cận

Trong kỹ thuật này, người ta sử dụng một mặt nạ và di chuyển khắp ảnhgốc Tuỳ theo cách tổ hợp điểm đang xét với các điểm lân cận mà ta có kỹ thuậtlọc tuyến tính hay phi tuyến Điểm ảnh chịu tác động của biến đổi là điểm ở tâmmặt nạ

1.3.5.3 Bộ lọc phi tuyến

Trong kỹ thuật lọc tuyến tính, ảnh thu được sẽ là tổng trọng số hay làtrung bình trọng số các điểm lân cận với nhân cuộn hay mặt nạ Vì có nhiều loại

Trang 22

nhiễu can thiệp vào quá trình xử lý ảnh nên cần có nhiều bộ lọc thích hợp Đểlàm trơn nhiễu ta sử dụng các mặt nạ thông thấp VD:

C vùng lâncận 9 điểmcân bằng

D Bộ lọcGauss cho 9điểm

Lọc tuyến tính ngoài làm trơn nhiễu còn có thể trích chọn biên (nổi biên) Dễdàng nhận thấy rằng biên là điểm có độ biến thiên nhanh về giá trị mức xám.Theo quan điểm về tần số tín hiệu, các điểm biên ứng với các thành phần tần sốcao Do vậy, ta có thể dùng bộ lọc thông cao để cải thiện: lọc các thành phần tần

số thấp và chỉ giữ lại thành phần tần số cao Vì thế, lọc thông cao thường đượcdùng làm trơn biên trước khi tiến hành các thao tác với biên ảnh Dưới đây là một

số mặt nạ dùng trong lọc thông cao:

Trang 23

giá trị mức xám (các giá trị điểm ảnh vẫn giữ được giá trị của nó một cách gầnđúng không thay đổi quá nhiều với giá trị thực).

1.3.5.4 Lọc phi tuyến

Khác với lọc tuyến tính, kỹ thuật lọc phi tuyến coi một điểm ảnh kếtquả không phải là tổ hợp tuyến tính của các điểm lân cận Người ta thường sửdụng 3 bộ lọc đó là: trung vị, giả trung vị và lọc ngoài

a) Lọc trung vị

Điểm ảnh đầu vào sẽ được thay thế bằng trung vị các điểm ảnh Kỹ thuật nàyđòi hỏi giá trị các điểm ảnh phải được sắp theo thứ tự tăng hay giảm dần Kíchthước của sổ cũng được chọn (2k+1)x(2k+1) Lọc trung vị có tác dụng sau: + Hữu ích cho việc loại bỏ các điểm ảnh hay các hàng mà vẫn bảo toàn độphân giải

+ Hiệu quả giảm các điểm nhiễu trong cửa sổ lớn hơn hoặc bằng một nửa sốđiểm trong cửa sổ

Trang 24

1.3.6 Phép co ảnh đa cấp xám

1.3.6.1 Định nghĩa

Với ảnh đa cấp xám IMxN, THxK là mẫu Gọi R là ảnh kết quả của của phép

co ảnh I bởi mẫu T Khi đó R có kích thước (M+1-H, N+1-K) và được xác địnhnhư sau:

+ R(x, y) = Min {I(x+i, y+j)-T(i,j)} với i = 0 H-1; j = 0 K-1; x=0 M+1-H;y=0 N+1-K

1.3.6.2 Thuật toán

B1: Dịch chuyển mẫu T trên ảnh I theo trật tự từ trên xuống dưới và từ trái

sang phải sao cho mẫu T nằm trong ảnh I Ở mỗi lần dịch chuyển, pixel ảnh kếtquả tương ứng có mức xám bằng giá trị nhỏ nhất của hiệu cặp giá trị pixel ảnh I

Là sự tịnh tiến gốc tọa độ, trong đó các trục của tọa độ sau phép biến đổi

sẽ di chuyển theo cùng hướng, việc phân chia thang trên tọa độ là không đổi Gốctọa độ cũ (-tx, -ty) thì tọa độ (x’, y’) được tính như sau:

x’ = x +tx

y’ = y +ty

Phép biến đổi có thể được mô tả dưới định thức sau:

Trang 25

T =

1.3.7.2 Phép phóng to hoặc thu nhỏ ảnh

Còn được gọi là sự chia lại thang tọa độ Khi chia thang tọa độ gốc vàhướng được giữ nguyên, chia thang tiến hành với hệ số chia thang Sx, Sy và cáctọa độ mới được tính toán theo công thức:

Ngay từ khi xuất hiện, hiệu ứng quay ảnh đã gây ấn tượng lớn và thu hút

sự quan tâm của những người yêu thích xử lý ảnh Thực ra đây là phương phápchuyển đổi các Pixel trong ảnh Do không làm thay đổi giá trị màu trong ảnh nên

có thể thực hiện phương pháp này trên ảnh màu cũng như trên ảnh xám Một ảnhđược xem như là một mảng hai chiều, chuyển đổi lại vị trí các Pixel là sắp xếp lạimảng này Khi quay thì sự chia thang giữ nguyên chỉ có hướng trục thay đổi Còntrục mới xuất hiện bằng cách quay trục cũ đi một góc θ ngược chiều kim đồng

hồ, khi đó tọa độ mới được theo theo công thức

Trang 26

T1 = ¿ T2 = ¿

Trang 27

Tkh = (Sx 1∗Sx 20 Sy 1∗Sy 2 00 0

Vậy kết hợp hai phép tỉ lệ là một phép tỉ lệ Dễ dàng mở rộng cho kết quả:kết hợp của nhiều phép tỉ lệ cũng là một phép tỉ lệ

 Kết hợp các phép quay quanh gốc tọa độ:

T1 = (−cosθ 1 sinθ 1 cosθ 1 0 sin θ1 0

Trang 28

CHƯƠNG 2 TỔNG QUAN VỀ C SHARP

2.1 Tổng quan về ngôn ngữ C sharp (C #)

2.1.1 Giới thiệu chung về ngôn ngữ C sharp (C#)

Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữliệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thinhững khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợ cho cấu trúc,thành phần component, lập trình hướng đối tượng Những tính chất đó hiện diệntrong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C# hội đủ những điều kiệnnhư vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất làC++ và Java

C# là một trình biên dịch hướng NET, tất cả các mã của C# luôn luôn chạytrên trên môi trường .NET Framework C# được thiết kế dùng riêng choMicrosoft’s NET Framework (một nền khá mạnh cho sự phát triển, triển khai,thực hiện và phân phối các ứng dụng) Nó có thể sinh ra mã đích trong môitrường NET Nó cũng là một ngôn ngữ hoàn toàn hướng đối tượng được thiết kếdựa trên kinh nghiệm của các ngôn ngữ khác

Trọng tâm của ngôn ngữ hướng đối tượng là lớp Lớp định nghĩa kiểu dữ liệumới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết C# có những từkhóa dành cho việc khai báo lớp, phương thức, thuộc tính mới C# hỗ trợ đầy đủkhái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình

C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết với một

lớp cho những dịch vụ mà giao diện quy định Trong ngôn ngữ C#, một lớp chỉ

có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa như trongngôn ngữ C++, tuy nhiên một lớp có thể thực thi nhiều giao diện Khi một lớpthực thi một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giaodiện

Trang 29

Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm

về ngữ nghĩa của nó thay đổi khác với C++ Trong C#, một cấu trúc được giớihạn, là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điềuhành và bộ nhớ so với một lớp Một cấu trúc thì không thể kế thừa từ một lớp hayđược kế thừa nhưng một cấu trúc có thể thực thi một giao diện

Ngôn ngữ C# cung cấp những đặc tính hướng thành phần oriented), như là những thuộc tính, những sự kiện Lập trình hướng thành phầnđược hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho một lớp.Metadata mô tả cho một lớp, bao gồm những phương thức và những thuộc tínhcủa nó, cũng như những sự bảo mật cần thiết và những thuộc tính khác Mãnguồn chứa đựng những logic cần thiết để thực hiện những chức năng của nó

(component-Do vậy, một lớp được biên dịch như là một khối self-contained, nên môi trườnghosting biết được cách đọc metadata của một lớp và mã nguồn cần thiết màkhông cần những thông tin khác để sử dụng nó

C# là ngôn ngữ này cũng hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụng kiểucon trỏ của C++ và từ khóa cho dấu ngoặc [] trong toán tử Các mã nguồn này làkhông an toàn (unsafe) Và bộ giải phóng bộ nhớ tự động của CLR sẽ không thựchiện việc giải phóng những đối tượng được tham chiếu bằng sử dụng con trỏ chođến khi chúng được giải phóng

2.1.2 Nền tảng ngôn ngữ C#

2.1.2.1 Kiểu dữ liệu

Điều cốt lõi của lập trình hướng đối tượng là tạo ra các kiểu mới Kiểu làmột thứ được xem như trừu tượng Nó có thể là một bảng dữ liệu, một tiểu trình,hay một nút lệnh trong một cửa sổ Tóm lại kiểu được định nghĩa như một dạngvừa có thuộc tính chung (properties) và các hành vi ứng xử (behavior) của nó

C# là ngôn ngữ lập trình mạnh về kiểu dữ liệu, một ngôn ngữ mạnh vềkiểu dữ liệu là phải khai báo kiểu của mỗi đối tượng khi tạo (kiểu số nguyên, sốthực, kiểu chuỗi, kiểu điều khiển ) và trình biên dịch sẽ giúp cho người lập trìnhkhông bị lỗi khi chỉ cho phép một loại kiểu dữ liệu có thể được gán cho các kiểu

dữ liệu khác Kiểu dữ liệu của một đối tượng là một tín hiệu để trình biên dịch

Trang 30

nhận biết kích thước của một đối tượng (kiểu int có kích thước là 4 byte) và khảnăng của nó (như một đối tượng button có thể vẽ, phản ứng khi nhấn, ).

Tương tự như C++ hay Java, C# chia thành hai tập hợp kiểu dữ liệu chính:Kiểu xây dựng sẵn (built- in) mà ngôn ngữ cung cấp cho người lập trình và kiểuđược người dùng định nghĩa (user-defined) do người lập trình tạo ra

C# phân tập hợp kiểu dữ liệu này thành hai loại: Kiểu dữ liệu giá trị(value) và kiểu dữ liệu tham chiếu (reference) Việc phân chi này do sự khácnhau khi lưu kiểu dữ liệu giá trị và kiểu dữ liệu tham chiếu trong bộ nhớ Đối vớimột kiểu dữ liệu giá trị thì sẽ được lưu giữ kích thước thật trong bộ nhớ đã cấpphát là stack Trong khi đó thì địa chỉ của kiểu dữ liệu tham chiếu thì được lưutrong stack nhưng đối tượng thật sự thì lưu trong bộ nhớ heap

Tất cả các kiểu dữ liệu xây dựng sẵn là kiểu dữ liệu giá trị ngoại trừ các đốitượng và chuỗi Và tất cả các kiểu do người dùng định nghĩa ngoại trừ kiểu cấutrúc đều là kiểu dữ liệu tham chiếu

Ngôn ngữ C# đưa ra các kiểu dữ liệu xây dựng sẵn rất hữu dụng, phù hợpvới một ngôn ngữ lập trình hiện đại, mỗi kiểu dữ liệu được ánh xạ đến một kiểu

dữ liệu được hỗ trợ bởi hệ thống xác nhận ngôn ngữ chung (Common LanguageSpecification: CLS) trong MS.NET

Trang 31

Kiểu C# Số

byte Kiểu .NET Mô tả

Bool 1 Boolean Giá trị logic true/ false

Sbyte 1 Sbyte Số nguyên có dấu ( từ -128 đến 127)

Short 2 Int16 Số nguyên có dấu giá trị từ -32768 đến

32767

Ushort 2 Uint16 Số nguyên không dấu 0 – 65.535

2.147.483.647Uint 4 Uint32 Số nguyên không dấu 0 – 4.294.967.295

Float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ

3,4E-38 đến 3,4E+3,4E-38, với 7 chữ số có nghĩaDouble 8 Double Kiểu dấu chấm động có độ chính xác gấp

đôi, giá trị xấp xỉ từ 1,7E-308 đến 1,7E+308,với 15,16 chữ số có nghĩa

decimal 8 Decime Có độ chính xác đến 28 con số và giá trị thập

phân, được dùng trong tính toán tài chính,kiểu này đòi hỏi phải có hậu tố “m” hay “M”theo sau giá trị

Long 8 Int64 Kiểu số nguyên có dấu có giá trị trong

khoảng : -9.223.370.036.854.775.808 đến9.223.372.036.854.775.807

Ulong 8 Uint64 Số nguyên không dấu từ 0 đến 0xffffffffffffffff

Bảng 3:Kiểu dữ liệu xây dựng sẵn

2.1.2.2 Biến, hằng và toán tử

a Biến: Là một vùng lưu trữ ứng với một kiểu dữ liệu

Biến có thể được gán giá trị và cũng có thể thay đổi giá trị trong khi thựchiện các lệnh của chương trình

Khai báo: <kiểu_dữ_liệu> <tên_biến> [=<giá trị>];

b Hằng: Hằng cũng là một biến nhưng giá tri của hằng không thay đổitrong khi thực hiện các lệnh của chương trình Hằng được phân thành 3loại:

- Giá trị hằng(literal)

- Biểu tượng hằng(symbolic constants)

- Kiểu liệt kê(enumerations)

Trang 32

Hoặc: <enum> <tên_kiểu_liệt_kê>

- Toán tử tăng / giảm: +=,-=,*=,/=,%=

- Toán tử tăng giảm 1 đơn vị:

- Toán tử quan hệ: ==, !=, >, >=, <, <=

- Toán tử logic: !, &&, ||

- Toán tử 3 ngôi: (điều kiện)?(biểu_thức_1): (biểu_thức_2);

lệnh lặp hay vòng lặp Bao gồm các lệnh lặp for, while, do, in,và each.

a Câu lệnh phân nhánh không điều kiện

Phân nhánh không có điều kiện có thể tạo ra bằng hai cách: gọi một hàm

và dùng từ khoá Để thực hiện phân nhánh ta gọi một trong các từ khóa sau:

goto, break, continue, return,statementthrow

b Câu lệnh phân nhánh có điều kiện

Phân nhánh có điều kiện được tạo bởi các lệnh điều kiện Các từ khóa của các

lệnh này như : if, else, switch Sự phân nhánh chỉ được thực hiện khi biểu thức

điều kiện phân nhánh được xác định là đúng

Ngày đăng: 19/04/2017, 22:34

HÌNH ẢNH LIÊN QUAN

Hình 1: Các bước cơ bản của hệ thống xử lý ảnh - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 1 Các bước cơ bản của hệ thống xử lý ảnh (Trang 9)
Hình 2: Biểu diễn của một mức xám của ảnh số - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 2 Biểu diễn của một mức xám của ảnh số (Trang 11)
Hình 4: Ảnh gốc (a); ảnh đã giảm độ sáng (b); ảnh đã được tăng cường độ sáng - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 4 Ảnh gốc (a); ảnh đã giảm độ sáng (b); ảnh đã được tăng cường độ sáng (Trang 16)
Hình sau mô tả việc tăng và giảm độ tương phản đối với ảnh gốc. - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình sau mô tả việc tăng và giảm độ tương phản đối với ảnh gốc (Trang 17)
Hình 6: (a):ảnh xám. (b):ảnh đen trắng - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 6 (a):ảnh xám. (b):ảnh đen trắng (Trang 18)
Bảng 3:Kiểu dữ liệu xây dựng sẵn - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Bảng 3 Kiểu dữ liệu xây dựng sẵn (Trang 31)
Bảng 5: Các thuộc tính truy cập của một lớp - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Bảng 5 Các thuộc tính truy cập của một lớp (Trang 37)
Bảng 8 : Phương thức của lớp Math - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Bảng 8 Phương thức của lớp Math (Trang 43)
Hình 9:Giá đỡ hàng tiêu chuẩn và các kích thước (dài x rộng x cao) mm. Từ trên xuống dưới, từ trái qua phải: 2a): châu Âu (1200 x 800 x 144) 2b): Mỹ 2c): Hàn - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 9 Giá đỡ hàng tiêu chuẩn và các kích thước (dài x rộng x cao) mm. Từ trên xuống dưới, từ trái qua phải: 2a): châu Âu (1200 x 800 x 144) 2b): Mỹ 2c): Hàn (Trang 48)
Hình 10: Các hệ tọa độ - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 10 Các hệ tọa độ (Trang 49)
Hình 11: Mô hình xác định khoảng cách sử dụng camera với hai mặt phẳng ảnh - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 11 Mô hình xác định khoảng cách sử dụng camera với hai mặt phẳng ảnh (Trang 50)
Hình 13:Ảnh gốc và ảnh sau khi thực hiện phân ngưỡng - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 13 Ảnh gốc và ảnh sau khi thực hiện phân ngưỡng (Trang 57)
Hình 14: Mô hình chương trình xử lý - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 14 Mô hình chương trình xử lý (Trang 57)
Hình 15: Giao diện chương trình - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 15 Giao diện chương trình (Trang 60)
Hình 16: Giao diện thực hiện chính - Ứng dụng xử lý ảnh trong điều khiển robot tự động
Hình 16 Giao diện thực hiện chính (Trang 61)

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