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ụctrực quan, dễ hiểu, thể hiện qua các điểm sau: Từ Khóa: Python tăng cườn
Trang 1ĐỒ Á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
SKL004285
Tp Hồ Chí Minh, tháng 2/2016
Trang 2NGÀ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
Tp Hồ Chí Minh, 2/2016
Trang 3KHOA Đ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
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
- 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
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ìnhnào khác
Trang 4Bộ 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
Chuẩn bị kit Raspberry.
10/10-30/10
Tìm hiểu về kit Raspbery Pi.
GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
xii
Trang 6Trong 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 xingử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ũngnhư 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ềukiệ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ànthà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
i
Trang 7PHẦN A: GIỚI THIỆU
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
ii
Trang 83.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
iii
Trang 94.4.1 Các bước thực hiện phép co ảnh trên ảnh nhị phân
4.4.2 Các bước thực hiện phép giãn nở ảnh trên ảnh nhị phân
4.4.3 Các bước thực hiện phép mở ảnh và đóng ảnh
4.4.4 Lưu đồ giải thuật
4.4.5 Code lập trình trên kit Raspberry Pi
4.4.6 Kết quả thực hiệ n trên ảnh nhị phân
4.5 Bộ tách biên Canny
4.5.1 Các bước tìm biên dùng phương pháp Canny
4.5.2 Lưu đồ giải thuật
4.5.3 Code lập trình trên kit Raspberry Pi
4.5.4 Kết quả
4.6 Chuyển đồi Hough, phát hiện đường thẳng, đường tròn trong ảnh
4.6.1 Chuyển đổi Hough cho đường thẳng
4.6.2 Chuyển đổi Hough cho đường tròn
4.6.3 Lưu đồ giải thuật
4.6.4 Code lập trình trên kit Raspberry Pi
4.6.5 Kết quả
4.7 So khớp mẫu
4.7.1 Lưu đồ giải thuật
4.7.2 Code lập trình trên kit Raspberry Pi
4.7.3 Kết quả
4.8 Xử lý lược đồ
4.8.1 Vẽ Histogram của một ảnh
4.8.2 Cân bằng histogram
4.8.3 Lưu đồ giải thuật
4.8.4 Code lập trình trên kit Raspberry Pi
4.8.5 Kết quả
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
iv
Trang 10PHỤ LỤC x
v
Trang 11Hì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
vi
Trang 12Hì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
vii
Trang 13Hì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
viii
Trang 14GPIO: 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
ix
Trang 15Cù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àithậ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ớinhiề 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áttriể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 trungtâ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ọngtrong nhiều ứng dụng thực tế về khoa học kĩ thuật cũng như trong cuộc sống thườngngà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 đilạ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 kitRaspberry 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ênquan 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 kitRaspberry Pi từ xây dựng lưu đồ giải thuật đến lập trình trên Kit
x
Trang 16Hiệ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ậnthấ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 Pivà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ệutham 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.
1.2 MỤC TIÊU
Do hạn chế về thời gian do đó chúng tôi chỉ tập trung xử lý các bài toán xử lý
ảnh đơn giản và phố biến trên kit Raspberry Pi
Kết quả của đề tài chỉ giới hạn trong phạm vi là tài liệu hướng dẫn thực hành trênkit raspberry pi chứ chưa áp dụng thực tiễn vào đời sống
Trang 17CHƯƠ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ĐHLinux 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 Đượcphá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ácnhau
Raspberry Pi s ản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phốichí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áttriể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 khoahọ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 182.1.2 Các phiên bản hiện tại của kit raspberry pi
Version Loại thẻ CPU Tốc độ RAM GPIO
nhớ
A
1 jack audio, 1 jack video
BCM28365
1 jack audio,1 jack video
BCM28365
1 jack audio/video
Trang 202.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 212.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ậnLinux vì tính dễ sử dụng và trực quan
Soft-float "wheezy": 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 Linuxbạ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 đặctrư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
Trang 22Tiế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
Hình 2.4 Ghi phần mềm vào thẻ nhớ
Chỉ cần chọ n file ảnh hệ điều hành (gi ải nén t ừ file nén download ở trên.), chú
ý chọn đúng ổ USB, nhấn Write và chờ đợi
Sau khi ảnh hệ điều hành đã được ghi xuống thẻ nhớ, bạn c ắm thẻ nhớ vàoRaspberry Pi, kết nối bàn phím, màn hình và nối nguồn Như vậy là ta đã hoàn thànhcài hệ điều hành cho Pi
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 232.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 trongmộ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ángsủ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òncho 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ủachí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ủaPython
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ụctrự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
kí hiệ u ho ặc từ khóa Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọcmộ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áccâ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 chachứ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àmxâ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 24nhị 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, tacũ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 Pythontươ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ứcrồ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ềukhiể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àngbuộ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ếumộ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ụngmộ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áonế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ự độngxá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 25CHƯƠNG 3: TỔNG QUAN VỀ XỬ LÝ ẢNH
3.1 Giới thiệu
3.1.1 Hệ thống xử lý ảnh [1]
Trong những năm gần đây, mặc dù còn rất mới mẻ trong lĩnh vực khoa học vàcông nghệ nhưng xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanhchóng bởi các trung tâm nghiên c ứu, trường đại học… với rất nhiề u ứng dụng trêncác lĩnh vực khác nhau
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ượngbằ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, giaothông thông minh, kỹ thuật y sinh…Đặc biệt, trong các thiết bị kỹ thuật số có mànhì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ínhxá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 26Thô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ễnmộ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àythà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ấutrúc hạt trên một ảnh thông thường nhưng được sắp xếp
Trang 27theo từng hàng và cột và chứa các thông tin khác nhau.
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ứcxá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àitrong 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ứcxá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ângiả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ữ ảnhtạ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ângiả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;
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 28chú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ácnhau để sử dụng vào mục đích khác nhau Ba không gian màu cơ bản hay được nhắctớ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ềuthiế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 3mà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 293.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ụ choviệ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ếulấ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ẽ choxanh 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 ở đâykhô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ếtkiệ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ảikế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ỗimà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ốicù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 tadù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 nhaucủ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 trongviệ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 30Khô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ằmtrong 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ó:
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 31Hình 3.9 Mô tả phép biến đổi phóng to ảnh 2 lầnNếu ta định nghĩa ma trận= [ cos − sin ] 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 ảnhban đầ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ớncá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ựachọ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ó haigiá 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}
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 32Hì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ôngphẳ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 333.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 địnhnghĩ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ởimà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ãnphé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ầnnhau và làm mảnh, tìm xương đối tượng
Trang 343.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 đó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 353.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ềucao 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ế, tathườ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 độtngộ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ócTrong 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êntụ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.18trì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 36Hì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ốcHì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ìnhbiê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úngbằ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ịchchuyể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 373.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
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
Trang 38Trong đó, toán tử Laplace là:
∇ 2
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
Phương pháp Laplace 4 điểm thường được chuẩn hóa để tạo độ lợi trung bình
đơn vị của các điểm ảnh trọng số dương và âm trong ma trận 3x3 điểm ảnh liền kề
Đáp ứng xung chuẩn hóa độ lợi Laplace được định nghĩa
Ma trận này không thể phân tách được thành tổng của 2 đạo hàm bậc hai như
trong (3.9) Dạng Laplace 8 điểm phân tách được có thể biểu diễn theo dạng
H=⌊−1 2 −1⌋+⌊ 2
Trang 40Trong đó sai biệt về độ dốc là trung bình trên 3 hàng và 3 cột Dạng Laplace
8 điểm phân tách chuẩn hóa độ lợi được biểu diễn
ℎ( ) = − −2 2 (3.11) 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à:
Việc thực hiên LoG tạo hai hiệu ứng: làm phẳng ảnh và tính Laplace
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ềutrong 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ữnghình dáng đặc trưng trong ảnh bằng cách chuyển đổi không gian ảnh ban đầu sang mộtkhô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 taxét chuyển đổi Hough cho đường thẳng và đường tròn
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