1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng kit raspberry PI vào xử lý ảnh

79 20 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 79
Dung lượng 4,59 MB

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

Nội dung

Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng nhằm nâng cao chất lượng bằng các phương pháp phân tích được nghiên cứu trong giai đoạn thiết bị phần cứng bị hạn chế, chẳng hạn như nân

Trang 1

KHOA ĐIỆN - ĐIỆN TỬ

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ

ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH

GVHD: ThS NGUYỄN DUY THẢ O SVTH: LÊ ĐỨC THUẬN

MSSV: 10101134 SVTH: VÕ VĂN HOÀNG MSSV: 10101045

Tp Hồ Chí Minh, tháng 2/2016

S K L 0 0 4 2 8 5

Trang 2

NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ

SVTH: LÊ ĐỨC THUẬN MSSV: 10101134

SVTH: VÕ VĂN HOÀNG MSSV: 10101045

GVHD: ThS NGUYỄN DUY THẢO

Trang 3

xi

KHOA ĐIỆN-ĐIỆN TỬ

Tp HCM, ngày 15 tháng 1 năm 2016

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: Võ Văn Hoàng MSSV: 10101045

Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 01

1 Thông tin đề tài

Tên của đề tài: ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH

Mục đích của đề tài:

Đồ án tốt nghiệp được thực hiện tại: Bộ môn Điện Tử Công Nghiệp, Khoa Điện - Điện

Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh

Thời gian thực hiện: Từ ngày 10/10/2015 đến 15/01 /2016

2 Các nhiệm vụ cụ thể của đề tài

- Tìm hiểu tổng quan về kit raspberry pi

- Tìm hiểu tổng quan về xử lý ảnh

- Xử lý ảnh trên kit Raspberry Pi

- Kết quả thực hiện

3 Lời cam đoan của sinh viên

Chúng tôi – Lê Đức Thuận và Võ Văn Hoàng cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của thạc sỹ Nguyễn Duy Thảo

Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công trình

Trang 4

xii

Bộ Môn Điện Tử Công Nghiệp

Tp Hồ Chí Minh, ngày 15 tháng 01 năm 201 6

LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên 1: Lê Đức Thuận

Lớp: 101011A MSSV: 10101134

Họ tên sinh viên 2: Võ Văn Hoàng

Lớp: 101011A MSSV: 10101045

Tên đề tài: ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH

GVHD

10/10-30/10

Chuẩn bị kit Raspberry

Tìm hiểu về kit Raspbery Pi

30/10 – 10/11 Tìm hiểu về ngôn ngữ lập trình Python

10/11 – 5/12 Tìm hiểu về lý thuyết xử lý ảnh

5/12 – 25/12 Xử lý ảnh trên kit Raspberry Pi

25/12 – 15/01 Hoàn Thiện Đồ Án

GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)

Trang 5

i

Trong thời gian làm đồ án tốt nghiệp, chúng tôi đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè Chúng tôi xin gửi lời cảm ơn chân thành đến Thạc sỹ Nguyễn Duy Thảo, giảng viên Bộ môn Điện

Tử Công Nghiệp trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh người đã tận tình hướng dẫn, chỉ bảo chúng tôi trong suốt quá trình làm khoá luận

Chúng tôi cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh nói chung, các thầy cô trong Bộ môn Điện Tử Công Nghiệp nói riêng đã dạy dỗ cho chúng tôi kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp chúng tôi có được cơ sở lý thuyết vững vàng và tạo điều kiện cho chúng tôi trong quá trình học tập

Cuối cùng, chúng tôi xin chân thành cảm ơn gia đình và bạn bè, đã luôn t ạo điều kiện, quan tâm, giúp đỡ, động viên chúng tôi trong suốt quá trình học tập và hoàn thành khoá luận tốt nghiệp

Tp.HCM, ngày 15 tháng 01 năm 2016

Sinh Viên Thực Hiện

Lê Đức Thuận Võ Văn Hoàng

Trang 6

ii

Danh mục hình vi

Các từ viết tắt ix

PHẦN B: NỘI DUNG

CHƯƠNG 1:GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI 1

1.1 Giới thiệu 1

1.2 Mục tiêu 1

CHƯƠNG 2 KIT RASPBERRY PI 2

2.1 Kit Raspberry Pi .2

2.1.1 Giới thiệu tổng quan 2

2.1.2 Các phiên bản hiện tại của kit Raspberry Pi 3

2.1.3 Các kết nối với Raspberry Pi 2 4

2.1.4 Hệ điều hành – phần mềm .5

2.1.5 Cài đặt phần mềm cho kit Raspberry Pi 5

2.2 Ngôn ngữ lập trình Python 7

2.2.1 Giới thiệu Python 7

2.2.2 Đặc điểm của ngôn ngữ Python 7

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

3.1 Giới thiệu 9

3.1.1 Hệ thống xử lý ảnh 9

3.1.2 Các thành phần trong một hệ thố ng xử lý ảnh 10

3.2 Các khái niệm cơ bản 10

3.2.1 Ảnh và điểm ảnh 10

3.2.2 Phân loại ảnh 11

3.2.3 Độ phân giải 11

3.2.4 Điểm ảnh lân c ận 11

3.3 Không gian màu 12

3.3.1 Không gian màu RGB 12

3.3.2 Không gian màu CMYK 13

Trang 7

iii

3.4.1 Biến đổi Affine 14

3.5 Xử lý hình thái học trên ảnh 15

3.5.1 Phần tử cấu trúc 15

3.5.2 Phép toán co (Erosion) 17

3.5.3 Phép toán giãn nở (Dialtion) 18

3.5.4 Phép toán mở (opening) và đóng (closing) 18

3.6 Tách biên ảnh 19

3.6.1 Tách biên theo đạo hàm bậc 1 21

3.6.2 Phát hiện biên theo đạo hàm bậc 2 21

3.6.3 Bộ tách biên Canny 23

3.7 Chuyển đổi Hough cho đường thẳng, đường tròn 23

3.7.1 Chuyển đồi Hough cho đường thẳng 23

3.7.2 Chuyển đồi hough cho đường tròn 24

3.8 Xử lý điểm 24

3.8.1 Xử lý lược đồ (Histogram) 25

3.8.2 Cân bằng Histogram 25

CHƯƠNG 4 ỨNG DỤNG KIT RASPBERRY PI VÀO XỬ LÝ ẢNH 29

4.1 Chuyển đổi giữa các không gian màu 29

4.1.1 Chuyển đổi RGB sang CMYK và ngược lại 29

4.1.2 Chuyển đổi RGB sang HSV và ngược lại 29

4.1.3 Lưu đồ giải thuật 30

4.1.4 Code lập trình trên kit Raspberry Pi 32

4.1.5 Kết quả 33

4.2 Phóng to, thu nhỏ và xoay ảnh 34

4.2.1 Lưu đồ giải thuật 34

4.2.2 Code lập trình trên kit Raspberry Pi 35

4.2.3 Kết quả 35

4.3 Pha trộn hình ảnh 35

4.3.1 Lưu đồ giải thuật 36

4.3.2 Code lập trình trên kit Raspberry Pi 37

Trang 8

iv

4.4.1 Các bước thực hiện phép co ảnh trên ảnh nhị phân 38

4.4.2 Các bước thực hiện phép giãn nở ảnh trên ảnh nhị phân 38

4.4.3 Các bước thực hiện phép mở ảnh và đóng ảnh 38

4.4.4 Lưu đồ giải thuật 39

4.4.5 Code lập trình trên kit Raspberry Pi 41

4.4.6 Kết quả thực hiện trên ảnh nhị phân 42

4.5 Bộ tách biên Canny 43

4.5.1 Các bước tìm biên dùng phương pháp Canny 43

4.5.2 Lưu đồ giải thuật 46

4.5.3 Code lập trình trên kit Raspberry Pi 47

4.5.4 Kết quả 47

4.6 Chuyển đồi Hough, phát hiện đường thẳng, đường tròn trong ảnh 48

4.6.1 Chuyển đổi Hough cho đường thẳng 48

4.6.2 Chuyển đổi Hough cho đường tròn 48

4.6.3 Lưu đồ giải thuật 49

4.6.4 Code lập trình trên kit Raspberry Pi 50

4.6.5 Kết quả 52

4.7 So khớp mẫu 53

4.7.1 Lưu đồ giải thuật 55

4.7.2 Code lập trình trên kit Raspberry Pi 56

4.7.3 Kết quả 57

4.8 Xử lý lược đồ 58

4.8.1 Vẽ Histogram của một ảnh 58

4.8.2 Cân bằng histogram 58

4.8.3 Lưu đồ giải thuật 59

4.8.4 Code lập trình trên kit Raspberry Pi 61

4.8.5 Kết quả 62

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63

5.1 Kết luận 63

5.2 Hướng phát triển 63

Trang 9

v

PHỤ LỤC x

Trang 10

vi

Hình 2.1 Kit Raspberry Pi 2

Hình 2.2 Sơ đồ GPIO 4

Hình 2.3 Các cổng giao tiếp ngoại vi 4

Hình 2.4 Ghi phần mềm vào thẻ nhớ 6

Hình 3.1 Các lĩnh vực nghiên cứu chính trong xử lý ảnh số 9

Hình 3.2 Các thành phần cơ bản trong hệ thống xử lý ảnh đa dụng 10

Hình 3.3 Ảnh với các độ phân giải khác nhau 11

Hình 3.4 Các dạng lân cận cơ bản 12

Hình 3.5 Mô hình hệ màu RGB 12

Hình 3.6 Mô hình hệ màu CMYK 13

Hình 3.7 Không gian màu HSV 14

Hình 3.8 Hình tròn biểu diễn màu sắc (Hue) 14

Hình 3.9 Mô tả phép biến đổi phóng to ảnh 2 lần 15

Hình 3.10 Mô tả phép quay ảnh với góc 𝜃 15

Hình 3.11 Một số hình dáng của phần tử cấu trúc phẳng 16

Hình 3.12 Một mặt nạ xác định hàng xóm của phần tử cấu trúc không phẳng 16

Hình 3.13 Ma trận giá trị thực tương ứng với hàng xóm trong phần tử cấu trúc không phẳng 16

Hình 3.14 Một số cấu trúc phần tử ảnh 17

Hình 3.15 Ví dụ về phép co ảnh 17

Hình 3.16 Ví dụ về phép giãn ảnh 18

Hình 3.17 Các mô hình biên 19

Hình 3.18 Biên được xét theo hai chiều 20

Hình 3.19 Mô hình biên bước và biên dốc 20

Hình 3.20 Thực hiện chuyển vị phẳng với cửa sổ trung bình 2x2 20

Hình 3.21 Gradient theo hàng và cột của ảnh 21

Hình 3.22 biểu diễn đường thẳng trong tọa độ cực 24

Hình 3.23 Histogram của một ảnh được cho là thiếu sáng 25

Hình 3.24 Hàm biến đổi tăng đơn điệu với hiện tượng nhiều giá trị mức xám 26

Hình 3.25 Hàm PDF và kết quả khi chuyển đổi trong biểu thức (3.22) 27

Trang 11

vii

Hình 4.3 Lưu đồ chuyển đổi HSV sang RGB 32

Hình 4.4 Ảnh RGB 33

Hình 4.5 Ảnh CMYK 33

Hình 4.6 Ảnh HSV 33

Hình 4.7 Lưu đồ phóng to, thu nhỏ và xoay ảnh 34

Hình 4.8 Ảnh gốc 35

Hình 4.9 Ảnh sau khi xoay 45o và thu nhỏ 20% 35

Hình 4.10 Lưu đồ hòa trộn hình ảnh 36

Hình 4.11 Ảnh thứ nhất 37

Hình 4.12 Ảnh thứ hai 37

Hình 4.13 Kết quả 37

Hình 4.14 lưu đồ giải thuật phép co ảnh 39

Hình 4.15 lưu đồ giải thuật phép giãn ảnh 40

Hình 4.16 lưu đồ giải thuật phép mở ảnh 41

Hình 4.17 lưu đồ giải thuật phép đóng ảnh 41

Hình 4.18 Ảnh trước khi co 42

Hình 4.19 Ảnh sau khi co 42

Hình 4.20 Ảnh trước khi giãn nở 42

Hình 4.21 Ảnh sau khi giãn nở 42

Hình 4.22 Ảnh trước khi mở 43

Hình 4.23 Ảnh sau khi mở 43

Hình 4.24 Ảnh trước khi đóng 43

Hình 4.25 Ảnh sau khi đóng 43

Hình 4.26 Lưu đồ giải thuật phương pháp tách biên Canny 46

Hình 4.27 Kết quả tách biên Canny 47

Hình 4.28 giao điểm của các đường cong khác nhau thuộc về một đường thẳng 48

Hình 4.29 Lưu đồ giải thuật chuyển đổi Hough tìm đường thẳng trong ảnh 49

Hình 4.30 Lưu đồ giải thuật chuyển đổi Hough tìm đường tròn trong ảnh 50

Hình 4.31 Ảnh ban đầu 52

Hình 4.32 Kết quả sau khi tìm đường thẳng 52

Trang 12

viii

Hình 4.35 Sử dụng mẫu để nhận dạng các đối tượng 53

Hình 4.36 So sánh hình với mẫu 53

Hình 4.37 Lưu đồ giải thuật so khớp mẫu 55

Hình 4.38 Hình ảnh ban đầu 57

Hình 4.39 Ảnh mẫu 57

Hình 4.40 Kết quả sau khi tìm kiếm 57

Hình 4.41 lưu đồ giải thuật vẽ histogram 59

Hình 4.42 Lưu đồ giải thuật cân bằng histogram 60

Hình 4.43 Ảnh ban đầu 62

Hình 4.45 Ảnh sau khi cân bằng histogram 62

Hình 4.46 Biểu đồ histogram của ảnh xám 62

Hình 4.47 Biểu đồ histogram sau khi cân bằng 62

Trang 13

ix

GPIO: là viết tắt của General Purpose Input Output GPIO chính là cửa ngõ để giao

tiếp giữa kit raspberry pi với các thiết bị ngoại vi

SoC: là viết tắt của từ Socket Nhân xử lý của kit raspberry pi

CPU: là viết tắt của chữ Central Processing Unit Là bộ xử lí trung tâm của kit

GPU: là viết tắt của Graphics Processing Unit là một bộ vi xử lý chuyên dụng nhận

nhiệm vụ tăng tốc, xử lý đồ họa cho bộ vi xử lý trung tâm CPU

HĐH : Hệ điều hành

OEM: viết tắt của Original Equipment Manufacturer Nhà sản xuất phụ tùng gốc Rpi: Raspberry pi

Trang 14

x

Cùng với sự phát triển ngày càng mạnh mẽ của khoa học kĩ thuật trong một vài thập kỷ gần đây, xử lý ảnh tuy là một ngành khoa học còn tương đối mới mẻ so với nhiều ngành khoa học khác nhưng hiện nay nó đang là một trong những lĩnh vực phát triển rất nhanh và thu hút sự quan tâm đặc biệt từ các nhà khoa học, thúc đ ẩy các trung tâm nghiên cứu, ứng dụng về lĩnh vực hấp dẫn này Xử lý ảnh đóng vai trò quan trọng trong nhiều ứng dụng thực tế về khoa học kĩ thuật cũng như trong cuộc sống thường ngày như: sản xuất và kiểm tra chất lượng, sự di chuyển của Robot, các phương tiện đi lại tự trị, công cụ hướng dẫn cho người mù, an ninh và giám sát, nhận dạng đối tượng, nhận dạng mặt, các ứng dụng trong y học, sản xuất, hiệu chỉnh video,…

Kit raspberry pi hiện đang là loại Kit có độ ứng dụng cao trong khoa học kỹ thuật

vì sự nhỏ gọn và mạnh mẽ của nó

Nhận thấy điều này, nhóm chúng em quyết định chọn đề tài “Ứng Dụng Kit

Raspberry Pi Vào Xử Lý Ảnh ” nhằm đưa ra một số giải pháp xử lý ảnh để áp dụng

vào đời sống

Đề tài bao gồm những phần như sau :

Chương 1: Dẫn nhập vào đề tài, đặt vấn đề, lý do tới đối tượng nghiên cứu Chương 2: Giới thiệu tổng quan về kit raspberry pi, cấu hình cơ bản của kit Raspberry Pi và môi trường làm việc trên Python

Chương 3: Giới thiệu về xử lý ảnh, những kiến thức về ảnh và những toán tử liên quan cho xử lý ảnh được trình bày trong phần này

Chương 4: Cuối cùng chúng ta sẽ giải một số bài toán xử lý ảnh trên kit Raspberry Pi từ xây dựng lưu đồ giải thuật đến lập trình trên Kit

Trang 15

CHƯƠNG 1: GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI 1

Hiện nay môn Xử Lý Ảnh đang được giảng dạy trong rất nhiều trường đại học, tuy nhiên mức độ thực hành trên một Board mạch nào đó vẫn còn rất hạn chế Nhận thấy điều này nhóm chúng tôi quyết định thực hiện đề tài “ Ứng dụng kit Raspberry Pi vào xử lý ảnh ” nhằm làm phong phú hơn cho môn Xử Lý Ảnh cũng như làm tài liệu tham khảo cho các bạn sinh viên khóa sau và các bạn đam mê môn Xử Lý Ảnh có thể tham khảo

Trang 16

CHƯƠNG 2: KIT RASPBERRY PI 2

CHƯƠNG 2: KIT RASPBERRY PI

2.1 Kit Raspberry Pi [6]

2.1.1 Giới thiệu tổng quan

Raspberry Pi là cái máy tính giá 35USD kích cỡ như thẻ ATM và chạy HĐH Linux Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em Được phát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau

Raspberry Pi s ản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phối chính bởi Element14, RS Components và Egoman

Raspberry Pi ban đầu là một thẻ card được cắm trên bo mạch máy tính được phát triển bởi các nhà phát triển ở Anh Sau đó Raspberry Pi đã được phát triển thành một

bo mạch đơn có chức năng như một máy tính mini dùng để giảng dạy trong môn khoa học máy tính ở các trường trung học

Raspberry Pi được phát triển đầu tiên vào năm 2012

Hình 2.1 Kit Raspberry Pi

Trang 17

CHƯƠNG 2: KIT RASPBERRY PI 3

2.1.2 Các phiên bản hiện tại của kit raspberry pi

ARM1176JZF-S SoC: Bộ xử lý BCM28365

700 MHz 512MB

26 chân,2 USB,1 HDMI

1 LAN Camera/ display socket

1 jack audio,1 jack video

Model

B+

Micro SD-Card

ARM1176JZF-S SoC: Bộ xử lý BCM28365

700 MHz 512MB

40 chân, 4 USB,1 HDMI

1 LAN,1 micro USB Camera/ display socket

1 jack audio/video

Model

Pi 2

Micro SD-Card

ARM Cortex A7(32 bit) SoC: Bộ xử lý BCM2836

900 Mhz 1GB

40 chân,4 USB,1 HDMI

1 LAN,1 micro USB Camera/display socket

1 jack audio/ video

Model

Pi Zero

Micro SD-Card

Nhân ARM11 SoC:Broadcom BCM2835

1GHz 512MB 40 chân,1 HDMI

2 microUSB

Trang 18

CHƯƠNG 2: KIT RASPBERRY PI 4

2.1.3 Các kết nối với Raspberry Pi 2

Hình 2.2 Sơ đồ GPIO

Hình 2.3 Các cổng giao tiếp ngoại vi

Trang 19

CHƯƠNG 2: KIT RASPBERRY PI 5

2.1.4 Hệ điều hành – phần mềm [5]

Có 5 phiên bản hệ điều hành được cung cấp chính thức cho Raspberry Pi:

Raspian "wheezy" (khuyên dùng) : Đây là distro dựa trên Debian wheezy, sử

dụng hard-float ABI (tính toán dấu chấm động bằng phần cứng) cho thời gian chạy các ứng dụng nhanh hơn Có sẵn giao diện đồ họa Phù hợp với người mới bắt đầu tiếp cận Linux vì tính dễ sử dụng và trực quan

Soft-float "w heezy": Vẫn được xây dựng dựa trên Debian wheezy nhưng việc

xử lý dấu chấm động được thực hiện bằng phần mềm Việc này giúp bạn có thể sử dụng máy ảo Java (Oracle JVM) trên Raspberry

Arch Linux: Phiên bản giành cho ARM Đảm bảo thời gian khởi động trong

vòng 10 giây Chỉ khởi động và load các gói cần thiết Để sử dụng được Arch Linux bạn cần có kiến thức cơ bản về Linux

Pidora: Là phiên bản của Fedora được tối ưu cho RPi, có sẵn giao diện đồ họa

Giành cho những ai đã quen xài Fedora

RISC OS: Là hệ điều hành do nhóm phát triển ARM thiết kế riêng Đây không

phải là một phiên bản Linux, do vậy bạn cần làm quen với cấu trúc và câu lệnh đặc trưng cho hệ điều hành này

Ngoài ra còn nhiều hệ điều hành khác bạn có thể cài đặt: Raspbmc, Android

2.1.5 Cài đặt phần mềm cho kit Raspberry Pi [5]

Chuẩn bị:

 Board mạch Raspberry Pi với bộ nguồn khoảng 700mA trở lên

 Hệ điều hành: Bạn có thể download bất kỳ hệ điều hành nào từ trang chủ Raspberry Pi Ở đây tôi sẽ sử dụng Raspbian Weezy

 Thẻ nhớ: Theo khuyến cáo là 4GB

 Màn hình hỗ trợ HDMI hoặc RCA

 Bàn phím USB

 Phần mềm Win32DiskImager (chạy trên windows)

Trang 20

CHƯƠNG 2: KIT RASPBERRY PI 6

Tiến hành:

Đầu tiên bạn nối thẻ nhớ với máy tính sau đó dùng phần mềm Win32DiskImager

để ghi ảnh hệ điều hành xuống

Sau khi đã kết nối màn hình và bàn phím, cấp nguồn và hệ thống sẽ tự động boot,

để đăng nhập, bạn dùng username và password mặc định là: pi/raspberry Hệ thống

đã được cài sẵn giao diện XDE, bạn có thể bật giao diện này bằng lệnh startx

Trang 21

CHƯƠNG 2: KIT RASPBERRY PI 7

2.2 Ngôn ngữ lập trình Python

2.2.1 Giới thiệu Python

Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm

1990 Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy

nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý Theo đánh giá của Eric S Raymond, Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của chính Guido van Rossum trong một bài phỏng vấn ông

Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theo thời gian,

nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn

là tác giả chủ yếu của Python Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python

2.2.2 Đặc điểm của ngôn ngữ Python

Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:

Từ Khóa: Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và

cấu trúc cú pháp so với các ngôn ngữ khác Python là một ngôn ngữ phân biệt kiểu chữ HOA, chữ thường Như C/C++, các từ khóa của Python đều ở dạng chữ thường

Khối lệnh: Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp

kí hiệu ho ặc từ khóa Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh.Trái lại Python có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào

Khả năng mở rộng: Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu Các hàm này sẽ trở thành hàm xây dựng sẵn (built-in) của Python Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng

Trang 22

CHƯƠNG 2: KIT RASPBERRY PI 8

nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung c ấp) Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng

nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó

Trình thông dịch: Python là một ngôn ngữ lập trình dạng thông dịch, do đó có

ưu điểm tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liên kết Trình thông dịch có thể được sử dụng để chạy file script, ho ặc cũng có thể được sử dụng theo cách tương tác Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ Enter , và kết quả thực thi sẽ được hiển thị ngay lập tức

Lệnh và c ấu trúc điều khiển: Mỗi câu lệnh trong Python nằm trên một dòng mã

nguồn Ta không cần phải kết thúc câu lệnh bằng bất kì kí tự gì Các cấu trúc điều khiển chúng bao gồm: if,esif,else,while,for…

Python cũng có từ khóa class dùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm

Hệ thống kiểu dữ liệu: Python sử dụng hệ thống kiểu duck typing, còn gọi

là latent typing (tự động xác định kiểu) Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời điểm thực thi Khi thực thi, nếu một thao tác trên một đối tượng bị thất bại, thì có nghĩa là đối tượng đó không sử dụng

một kiểu thích hợp

Python cũng là một ngôn ngữ định kiểu mạnh Nó cấm mọi thao tác không hợp

lệ, ví dụ cộng một con số vào chuỗi kí tự

Sử dụng Python, ta không cần phải khai báo biến Biến được xem là đã khai báo nếu nó được gán một giá trị lần đ ầu tiên Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến

Python có một số kiểu dữ liệu thông dụng sau: int,long,float,list,str,dict,set…

Module: Python cho phép chia chương trình thành các module để có thể sử

dụng lại trong các chương trình khác Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (socket),

Đa năng: Python là một ngôn ngữ lập trình đơn giản nhưng rất hiệu quả Python

là một ngôn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu của lập trình viên

Trang 23

Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng nhằm nâng cao chất lượng bằng các phương pháp phân tích được nghiên cứu trong giai đoạn thiết bị phần cứng

bị hạn chế, chẳng hạn như nâng cao độ sáng hay độ phân giải của hình ảnh…Về sau, nhờ sự xuất hiện và phát triển mạnh của máy tính đã tạo điều kiện hơn nữa cho quá trình thực hiện các thuật toán xử lý ảnh Ứng dụng của xử lý ảnh ngày càng được mở rộng sang các lĩnh vực khác, chẳng hạn như viễn thông, điều khiển tự động, giao thông thông minh, kỹ thuật y sinh…Đặc biệt, trong các thiết bị kỹ thuật số có màn hình hiển thị luôn ưu tiên một phần tài nguyên dành cho việc xử lý hình ảnh: máy tính xách tay, camera kỹ thuật số, điện thoại thông minh, tivi thông minh…

Hình 3.1 Các lĩnh vực nghiên cứu chính trong xử lý ảnh số

Trang 24

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 10

Thông thường, xử lý ảnh số bao gồm nhiều vấn đề khác nhau, tuy nhiên, có thể chia thành 4 lĩnh vực chính như hình 3.1: tạo lập ảnh, biểu diễn, phân tích và quản lý Bên cạnh đó, các thuật toán tăng cường ảnh có thể được xem xét như là một bước tiền hay hậu xử lý trong tất cả các lĩnh vực trên

3.1.2 Các thành phần trong một hệ thống xử lý ảnh [1]

Thông thường, một hệ thống xử lý ảnh có thể được xem như một hệ thống đa năng gồm các thành phần cơ bản như: cảm biến hình ảnh, phần cứng xử lý ảnh chuyên dụng, máy tính, phần mềm xử lý, bộ nhớ, màn hình hiển thị, in ấn và mạng như hình 3.2

Hình 3.2 Các thành phần cơ bản trong hệ thống xử lý ảnh đa dụng

3.2 Các khái niệm cơ bản

3.2.1 Ảnh và điểm ảnh [1]

Ảnh số là một tập hợp của nhiều điểm ảnh, hay còn gọi là pixel Mỗi điểm ảnh biểu diễn một màu sắc nhất định (hay độ sáng với ảnh đen trắng) tại một điểm duy nhất, có thể xem một điểm ảnh giống như một chấm nhỏ trong một tấm ảnh màu Bằng phương pháp đo lường và thống kê một lượng lớn các điểm ảnh, chúng ta hoàn toàn có thể tái cấu trúc các điểm ảnh này thành một ảnh mới gần giống với ảnh gốc Có thể nói pixel gần giống như các phần tử có cấu trúc hạt trên một ảnh thông thường nhưng được sắp xếp

Trang 25

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 11

theo từng hàng và cột và chứa các thông tin khác nhau

3.2.2 Phân loại ảnh [1]

Có 2 dạng quan trọng trong ảnh số được dùng với nhiều mục đích khác nhau là ảnh màu và ảnh đen trắng (hay còn gọi là ảnh xám) Trong đó, ảnh màu được cấu trúc

từ các pixel màu trong khi ảnh đen trắng được xây dựng từ các pixel có giá trị mức xám khác nhau

Ảnh xám: với một ảnh đen trắng được xây dựng từ nhiều pixel mà tại đó biểu

diễn một giá trị nhất định tương ứng với một mức xám Những mức xám này trải dài trong một khoảng từ đen sang trắng với bước nhảy rất mịn, thông thường là 256 mức xám khác nhau theo tiêu chuẩn

Ảnh màu: một ảnh màu thường được tạo thành từ nhiều pixel mà trong đó mỗi

pixel được biểu diễn bởi ba giá trị tương ứng với các mức trong các kênh màu đỏ (Red), xanh lá (Green) và xanh dương (Blue) tại một vị trí cụ thể

3.2.3 Độ phân giải

Với cùng một ảnh, càng nhiều điểm được lấy mẫu thì ảnh chụp càng chi tiết Mật

độ điểm ảnh trong một ảnh được xem như độ phân giải của chính nó Ảnh có độ phân giải càng cao thì ảnh càng chứa nhiều thông tin Nói một cách chính xác, khi giữ ảnh tại cùng một kích thước vật lý thì ảnh trở nên sắc nét hơn và chi tiết hơn nếu độ phân giải cao hơn như hình 3.3

Hình 3.3 Ảnh với các độ phân giải khác nhau:(a) 256x256;

(b) 128x128;(c) 64x64; (d) 32x32

3.2.4 Điểm ảnh lân cận [1]

Với một điểm ảnh p luôn có 4 điểm ảnh xung quanh theo phương ngang và dọc (hình 3.4(a)), tập các điểm ảnh này được gọi là lân cận 4 của p Ngoài ra, có một

dạng lân cận nữa là theo đường chéo (hình 3.4(b)) Kết hợp hai dạng lân cận này thì

Trang 26

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 12

chúng ta có dạng lân cận 8 điểm ảnh (hình 3.4(c))

Hình 3.4 Các dạng lân cận cơ bản: (a) lân cận 4 điểm ngang dọc;

(b) lân cận 4 điểm chéo; (c) lân cận 8 điểm bao quanh

3.3 Không gian màu [2]

Không gian màu là một mô hình toán học dùng để mô tả các màu sắc trong thực

tế được biểu diễn dưới dạng số học Trên thực tế có rất nhiều không gian màu khác nhau để sử dụng vào mục đích khác nhau Ba không gian màu cơ bản hay được nhắc tới và ứng dụng nhiều, đó là hệ không gian màu RGB, HSV và CMYK

3.3.1 Không gian màu RGB

RGB là không gian màu rất phổ biến được dùng trong đồ họa máy tính và nhiều thiết bị kĩ thuật số khác Ý tưởng chính c ủa không gian màu này là sự kết hợp của 3 màu sắc cơ bản : màu đỏ, xanh lục và xanh lơ để mô tả tất cả các màu sắc khác

Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương ứng (0, 0, 0) màu trắng có giá trị (255,255, 255), màu vàng có giá trị (255, 255, 0), màu tím đậm có giá trị (64, 0, 128) Nếu ta dùng 16 bit để mã hóa một kênh màu (48 bit cho toàn bộ 3 kênh màu) thì dãi màu sẽ rãi rộng lên tới 3 × 216 = ⋯ Một con số rất lớn

Hình 3.5 Mô hình hệ màu RGB

Trang 27

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 13

3.3.2 Không gian màu CMYK

CMYK là không gian màu được sử dụng phổ biến trong ngành công nghiệp in

ấn Ý tưởng cơ bản của hệ không gian này là dùng 4 màu sắc cơ bản để phục vụ cho việc pha trộn mực in Trên thực tế, người ta dùng 3 màu là C=Cyan: xanh lơ, M=Magenta: hồng xẫm, và Y=Yellow: vàng để biểu diễn các màu sắc khác nhau Nếu lấy màu hồng xẫm cộng với vàng sẽ ra màu đỏ, màu xẫm kết hợp với xanh lơ sẽ cho xanh lam Sự kết hợp của 3 màu trên sẽ cho ra màu đen, tuy nhiên màu đen ở đây không phải là đen tuyệt đối và thường có độ tương phản lớn nên trong ngành in, để tiết kiệm mực in người ta thêm vào màu đen để in những chi tiết có màu đen thay vì phải kết hợp 3 màu sắc trên Và như vậy ta có hệ màu CMYK

Nguyên lý làm việc của hệ màu này như sau: Trên một nền giấy trắng, khi mỗi màu này được in lên sẽ loại bỏ dần đi thành phần màu trắng 3 màu C, M, Y khác nhau

in theo những tỉ lệ khác nhau sẽ loại bỏ đi thành phần đó một cách khác nhau và cuối cùng cho ta màu sắc cần in Khi c ần in màu đen, thay vì phải in c ả 3 màu người ta dùng màu đen để in lên Nguyên lý này khác với nguyên lý làm việc của hệ RGB ở chỗ hệ RGB là sự kết hợp của các thành phần màu, còn hệ CMYK là sự loại bỏ lẫn nhau của các thành phần màu

Hình 3.6 Mô hình hệ màu CMYK

3.3.3 Không gian màu HSV

HSV và cũng gần tương tự như HSL là không gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích ảnh và một phần của lĩnh vực thị giác trên máy tính Hệ không gian này dựa vào 3 thông số sau để mô tả màu sắc:

H = Hue: màu sắc , S = Saturation: độ đậm đặc, sự bão hòa, V = Value: giá trị cường độ sáng

Trang 28

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 14

Không gian này thường được biễu diễn dưới dạng hình trụ hoặc hình nón Theo

đó, đi theo vòng tròn từ 0-360 độ là trường biểu diễn màu sắc (Hue) Trường này bắt đầu từ màu đỏ đầu tiên (red primary) tới màu xanh lục đầu tiên (green primary) nằm trong khoảng 0 - 120 độ, từ 120 - 240 độ là màu xanh lục tới xanh lơ (green primary – blue primary) Từ 240 - 360 độ là từ màu đen tới lại màu đỏ

Hình 3.7 Không gian màu HSV Hình 3.8 Hình tròn biểu diễn màu sắc (Hue)

3.4 Phóng to, thu nhỏ và xoay ảnh

Ảnh số thực chất là một ma trận các điểm ảnh, do đó để có thể phóng to, thu nhỏ hay xoay một tấm ảnh ta có thể sử dụng các thuật toán tương ứng trên ma trận

Ta sẽ sử dụng biển đổi affine để quay và thay đổi tỉ lệ to, nhỏ của một ma trận

3.4.1 Biến đổi Affine [2]

Giả sử ta có vector 𝑝 = [𝑥, 𝑦]𝑇 và ma trận M 2x2 Phép biến đổi affine trong không gian hai chiều có thể được định nghĩa 𝑝′ = Mp

Trong đó 𝑝′ = [𝑥′, 𝑦′]𝑇 Viết một cách tường minh ta có:

[𝑥′

𝑦′] = [𝛼𝛾 𝛽𝛿] [𝑥𝑦] (3.1) Hay 𝑥′ = 𝛼𝑥 + 𝛿𝑦, 𝑦′= 𝛾𝑥 + 𝛽𝑦

Xét ma trận = [𝛼 𝛿

𝛾 𝛽] Nếu 𝛿 = 𝛾 = 0, khi đó 𝑥′ = 𝛼𝑥 và 𝑦′= 𝛽𝑦, phép biến đổi này làm thay đổi tỉ lệ của ma trận nếu là trong ảnh nó sẽ phóng to hoặc thu nhỏ ảnh Hình sau mô tả phép biến đổi với tỉ lệ 𝛼 = 𝛽 = 2

Trang 29

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 15

Hình 3.9 Mô tả phép biến đổi phóng to ảnh 2 lần

Nếu ta định nghĩa ma tr ận 𝑀 = [cos 𝜃 − sin 𝜃

sin 𝜃 cos 𝜃 ] thì phép biến sẽ quay

𝑝 thành 𝑝′ với góc quay là 𝜃

Hình 3.10 Mô tả phép quay ảnh với góc 𝜃

3.5 Xử lý hình thái học trên ảnh [2]

Biến đổi hình thái là một số hoạt động đơn giản dựa trên hình dạng hình ảnh Nó thường được thực hiện trên ảnh nhị phân Nó cần 2 yếu tố đầu vào, một là hình ảnh ban đầu, hai là yếu tố cấu trúc hay hạt nhân sẽ quyết định bản chất biến đổi Phần lớn các phép toán hình thái học được định nghĩa từ hai phép toán cơ bản là Erosion (phép

co ảnh) và Dilation (phép giãn ảnh) Yếu tố quan trọng trong các phép toán này là lựa chọn một phần tử cấu trúc có hình dáng phù hợp

3.5.1 Phần tử cấu trúc

Đối với ảnh nhị phân, phần tử cấu trúc là một ảnh có kích thước nhỏ gồm có hai giá trị 0 và 1, các giá trị bằng 0 được bỏ qua trong quá trình tính toán, gọi H(i, j) là phần tử cấu trúc của ảnh nhị phân và được thể hiện như sau:

H(i, j) ∈ {0,1} (3.2) Một số hình dáng của phần tử cấu trúc thường được sử dụng trên ảnh nhị phân: dạng đường theo chiều ngang và dọc, hình vuông, hình ellipse…

Trang 30

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 16

Hình 3.11 Một số hình dáng của phần tử cấu trúc phẳng Đối với ảnh xám, phần tử cấu trúc là không phẳng, tức là các phần tử cấu trúc sử dụng các giá trị 0 và 1 để xác định phạm vi của phần tử cấu trúc trong mặt phẳng x và mặt phẳng y và thêm giá trị độ cao để xác định chiều thứ ba.Cấu trúc phần tử không phẳng gồm có hai phần :

Phần thứ nhất: Một mảng hai chiều gồm có các giá trị 0 và 1, trong đó giá trị

bằng 1 xác định hàng xóm của phần tử cấu trúc

Hình 3.12 Một mặt nạ xác định hàng xóm của phần tử cấu trúc không phẳng

Phần thứ hai: Một mảng hai chiều có kích thước bằng với kích thước của mảng

hai chiều ở phần thứ nhất nhưng chứa các giá trị thực của phần tử cấu trúc

Hình 3.13 Ma trận giá trị thực tương ứng với hàng xóm

trong phần tử cấu trúc không phẳng

Trang 31

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 17

3.5.2 Phép toán co (Erosion)

Phép toán co trong ảnh được định nghĩa 𝐴 ⊖ 𝐵 = {𝑧 | (𝐵)𝑧 ⊆ 𝐴} Trong đó A

là đối tượng trong ảnh, B là cấu trúc phần tử ảnh

Cấu trúc phần tử ảnh (image structuring element) là một hình khối được định nghĩa sẵn nhằm tương tác với ảnh xem nó có thỏa mãn một số tính chất nào đó không, một số cấu trúc phần tử hay gặp là cấu trúc theo khối hình vuông và hình chữ thập

Hình 3.14 Một số cấu trúc phần tử ảnh

Ta sẽ xét một ví dụ với phép co trong ảnh Đối tượng trong ảnh được biễu diễn bởi màu xám, cấu trúc phần tử ảnh là khối có viền màu đỏ, x là điểm sau phép thõa mãn phép co ảnh, 0 là điểm không thõa mãn

Hình 3.15 Ví dụ về phép co ảnh

Ta thấy rằng sau phép toán này đối tượng trong ảnh bị co lại, chính vì vậy mà nó được ứng dụng trong việc giảm kích thước của đối tượng, tách rời các đối tượng gần nhau và làm mảnh, tìm xương đối tượng

Trang 32

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 18

3.5.3 Phép toán giãn nở (Dialtion)

Phép toán giãn nở được định nghĩa 𝐴 ⊕ 𝐵 = ∪ 𝐵𝑥 với 𝑥 ⊂ 𝐴 trong đó A là đối tượng trong ảnh, B là một cấu trúc phần tử ảnh.Phép toán này có tác dụng làm cho đối tượng ban đầu trong ảnh tăng lên về kích thước (giãn nở ra)

Ta hãy xét một ảnh với đối tượng trong ảnh được biểu diễn bằng màu nền nâu, sau đó dùng cấu trúc phần tử hình vuông (màu đỏ) để làm giản nở ảnh, kết quả là ảnh được giản nở ra và phần giản nở ra ta đánh dấu là dấu x

Hình 3.16 Ví dụ về phép giãn ảnh Ứng dụng của phép giãn ảnh là làm cho đối tượng trong ảnh tăng lên về kích thước, các lỗ nhỏ trong ảnh được lấp đầy, nối liền đường biên ảnh đối với những đoạn rời nhỏ…

3.5.4 Phép toán mở (opening) và đóng (closing)

Phép toán mở (opening) và đóng (closing) là s ự kết hợp của phép co (erosion) và giãn (dialation) Chúng được định nghĩa như sau:

 Phép toán mở : 𝐴 𝚘 𝐵 = (𝐴 ⊖ 𝐵) ⊕ 𝐵 (3.3)

Phép toán đóng: 𝐴 ● 𝐵 = (𝐴 ⊕ 𝐵) ⊖ 𝐵 (3.4) Phép toán mở được ứng dụng trong việc loại bỏ các phần lồi lõm và làm cho đường bao đối tượng trong ảnh trở lên mượt mà hơn

Phép toán đóng được ứng dụng trong việc làm trơn đường bao đối tượng, lấp đầy các khoảng trống trên biên và loại bỏ những hố nhỏ (một số pixel đứng thành cụm độc lập)

Trang 33

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 19

3.6 Tách biên ảnh [1]

Hình 3.17 (a) được vẽ trong miền liên tục là mô hình biên dốc một chiều, trong

đó dốc tăng biên độ từ thấp đến cao hoặc ngược lại Biên được đặc trưng bởi độ cao, dốc, và gốc tọa độ theo chiều ngang ở điểm giữa của dốc Một biên tồn tại khi chiều cao biên lớn hơn một giá trị đã định nghĩa Một bộ tách biên lý tưởng cho biết vị trí biên là một pixel đơn tại điểm giữa của dốc Nếu độ dốc trong hình 3.17(a) là 90o thì kết quả được gọi là biên bước, như trong hình 3.17(b) Trong các ảnh thực tế, ta thường không nhận được biên bước, tức là quá trình thay đổi độ chói không xảy ra đột ngột Hình 3.17(c) biểu diễn một biên đường và khi độ rộng của đường bằng không, ta

có biên nóc như hình 3.17(d)

Hình 3.17 Các mô hình biên: a) biên dốc; b) biên

bước; c) biên đường; d) biên nóc Trong miền hai chiều liên tục, mô hình biên và đường giả sử rằng tính không liên tục của biên độ duy trì trong một kho ảng lân cận nhỏ so với biên và đường Hình 3.18 trình bày một biên hai chiều Khi xem xét thông số của biên hai chiều cần tham chiếu đến trục tọa độ

Trang 34

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 20

Hình 3.18 Biên được xét theo hai chiều

Hình 3.19 Mô hình biên bước và biên dốc Hình 3.19 cho thấy mô hình biên bước và dốc trong trường hợp rời rạc Mô hình biên dốc trong trường hợp này chứa một pixel đơn chuyển vị mà biên độ của chúng bằng trung bình của các pixel liền kề

Mô hình chuyển vị phẳng có được bằng cách thực hiện cửa sổ trung bình dịch chuyển 2x2 trên mô hình biên đường

Hình 3.20 Thực hiện chuyển vị phẳng với cửa sổ trung bình 2x2

Trang 35

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 21

3.6.1 Tách biên theo đạo hàm bậc 1

Có 2 phương pháp cơ bản để tách biên theo đạo hàm bậc 1 Phương pháp thứ nhất là tạo gradient của hai hướng trực giao trong ảnh Phương pháp thứ hai là dùng một tập đạo hàm có hướng

Gradient biên của một ảnh G(j,k) được biểu diễn theo gradient hàng GR ( j, k) và cột GC ( j, k) như trong hình 3.21 Biên độ gradient trong không gian được cho bởi:

3.6.2 Phát hiện biên theo đạo hàm bậc 2

Phương pháp phát hiện biên sử dụng đạo hàm bậc 2 được triển khai dựa trên một

số dạng vi phân bậc 2 để làm nổi biên Một biên được đánh dấu khi có một sự thay đổi không gian theo đạo hàm bậc 2 Hai dạng của phương pháp đạo hàm bậc 2 đã được nghiên cứu là: Laplace và đạo hàm bậc 2 trực tiếp

Phương pháp Laplace:

Biến đổi Laplace của một ảnh F(x, y) trong miền liên tục được định nghĩa:

G(x, y)  2{F (x, y)} (3.7)

Trang 36

G(x, y) bằng không khi F(x, y) là hằng số hoặc có biên độ thay đổi tuyến tính

Trong miền rời rạc, dạng xấp xỉ đơn giản nhất của biến đổi Laplace liên tục là tính sự sai biệt của độ dốc trên mỗi trục

G( j, k)  [F ( j, k)  F ( j, k 1)] [F ( j, k 1)  F ( j, k)]

[F ( j, k)  F ( j 1, k)] [F ( j 1, k)  F ( j, k)] (3.9) Dạng Laplace 4 điểm này có thể đƣợc biểu diễn theo phép chập

Trang 37

Trong đó r2 = x2 + y2 và 𝜎 là độ lệch chuẩn Đây là một hàm làm phẳng và nếu

áp dụng trên ảnh nó sẽ làm mờ ảnh Mức độ mờ được quyết định bởi độ lệch chuẩn Laplace của hàm này là:

∇2ℎ(𝑟) = − [𝑟

2 −𝜎2

𝑟2 2𝜎2 (3.12) Việc thực hiên LoG tạo hai hiệu ứng: làm phẳng ảnh và tính Laplace

3.6.3 Bộ tách biên Canny

Phương pháp phát hiện biên Canny là một phương pháp rất tốt và thường được sử dụng Để thực hiện tách biên Canny, ta thực hiện 4 bước

 Ảnh được làm phẳng dùng bộ lọc Gauss

 Gradient cục bộ của biên độ và hướng được tính

Loại bỏ các giá trị không phải là cực đại

Chọn ra biên của đối tượng trong ảnh

3.7 Chuyển đổi Hough cho đường thẳng, đường tròn [2]

Chuyển đổi Hough (Hough transformation) là một phương pháp được dùng nhiều trong phân tích và xử lý ảnh, mục đích chính của phương pháp này là tìm ra những hình dáng đặc trưng trong ảnh bằng cách chuyển đổi không gian ảnh ban đầu sang một không gian của các tham số nhằm đơn giản hóa quá trình tính toán, trong phần này ta xét chuyển đổi Hough cho đường thẳng và đường tròn

3.7.1 Chuyển đồi Hough cho đường thẳng

Ta đã biết rằng, một đường thẳng trong không gian hai chiều có thể được biểu diễn dưới dạng 𝑦 = 𝑘𝑥 + 𝑚 và cặp hệ số góc 𝑘, giá trị m có thể được chọn làm đặc

trưng cho một đường thẳng Tuy nhiên, cách biểu diễn theo cặp (k, m) khó thỏa mãn

Trang 38

𝑟0 = 𝑥0cos(𝜃) + 𝑦0sin (𝜃) ( 3.14) Phương trình này biểu diễn một đường cong, như vậy trong một tấm ảnh có n điểm (n pixel) ta sẽ có n các đường cong

Hình 3.22 biểu diễn đường thẳng trong tọa độ cực

3.7.2 Chuyển đồi hough cho đường tròn

Chuyển đổi Hough cho đường tròn cũng tương tự như với đường thẳng, phương trình đường tròn được xác định bởi:

{𝑥 = 𝑢 + 𝑅𝑐𝑜𝑠(𝜃)

𝑦 = 𝑣 + 𝑅𝑠𝑖𝑛(𝜃) (3.15)

Trong đó, (u, v) là tâm đường tròn, R là bán kính đường tròn, 𝜃 là góc có giá trị

từ 0 tới 360 độ Một đường tròn sẽ hoàn toàn được xác định nếu ta biết được bộ ba

thông số (u, v, R) Từ phương trình trên ta có thể chuyển đổi tương đương:

{𝑢 = 𝑥 − 𝑅𝑐𝑜𝑠(𝜃)

𝑣 = 𝑦 − 𝑅𝑠𝑖𝑛(𝜃) (3.16)

Ta xét với trường hợp đã biết trước giá trị của R Khi đó, với mỗi điểm ảnh (x ,y)

ta sẽ xác định được một giá trị (u, v)

3.8 Xử lý điểm [1]

Xử lý điểm ảnh là biến đổi giá trị một điểm ảnh dựa vào giá trị của chính nó mà không hề dựa vào các điểm ảnh khác Sự lựa chọn chính xác phép biến đổi nào phụ thuộc vào mục đích của vấn đề xử lý điểm Xử lý điểm thường thực hiện trên một ảnh

để cải thiện chất lượng của nó bằng việc đảm bảo dãy mức xám (gray-level) của nó

Trang 39

CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH 25

3.8.1 Xử lý lược đồ (Histogram)

Histogram c ủa 1 ảnh xám có L mức xám khác nhau, là một hàm rời rạc, có biểu thức:

ℎ(𝑟𝑘) = 𝑛𝑘 (3.17)

Trong đó rk là giá trị mức xám thứ k trong đoạn [0, L-1] và n k là số pixels có giá trị mức xám là rk Ví dụ với đoạn [0, 255], r0 = 0, r 1 = 1 …

Histogram thường được chuẩn hóa Với n là tổng số pixels trong ảnh, histogram

chuẩn hóa được tính bằng công thức:

có thể đoán được một ảnh sáng tối như thế nào

Nếu một ảnh có histogram lệch về phía phải biểu đồ, ta nói ảnh đó thừa sáng Nếu lệch về phía trái thì ảnh đó thiếu sáng Hình 3.23 mô tả histogram của một ảnh xám, ảnh này có histogram lệch về phía trái của biểu đồ và do đó ảnh này là khá tối Đối với ảnh màu, ta có thể tính toán histogram cho từng kênh màu một

Hình 3.23 Histogram của một ảnh được cho là thiếu sáng

3.8.2 Cân bằng Histogram

Như đã biết hàm biến đổi mức xám có dạng tổng quát s = T (r) với 0 ≤ r ≤ L - 1

sẽ luôn tạo ra giá trị mức xám ở ngõ ra là s ứng với mỗi giá trị mức xám ngõ vào là r Chúng ta giả định rằng hàm T (r) luôn tăng đơn điệu trong khoảng 0 ≤ r ≤ L – 1 và

Ngày đăng: 27/11/2021, 23:46

w