Chương 2. CƠ SỞ LÝ THUYẾT
2.2 CƠ SỞ LÝ THUYẾT XỬ LÝ ẢNH
Trong thời gian gần đây, các tiến bộ vượt bậc trong phần cứng máy tính và thiết bị liên quan đã cải thiện đáng kể về tốc độ tính toán, sức mạnh xử lý và cả dung lượng lưu trữ. Đồng thời, giá thành của những công nghệ này cũng đã giảm đi rất nhiều, khiến cho máy tính và các thiết bị liên quan đến xử lý ảnh không còn là những thiết bị chỉ dành riêng cho các ứng dụng đặc biệt nữa. Với sự phổ biến của ảnh kỹ thuật số, việc sử dụng các thiết bị cá nhân hoặc chuyên dụng để chụp ảnh kỹ thuật số và xử lý chúng bằng máy tính đã trở nên rất phổ biến và dễ dàng.
Con người chủ yếu nhận thông tin qua các giác quan, trong đó thị giác đóng một vai trò quan trọng nhất. Gần đây, nhờ sự phát triển mạnh mẽ của phần cứng máy tính, công nghệ xử lý ảnh và đồ họa đã có những bước tiến lớn và được ứng dụng phổ biến len lỏi trong mọi mặt của cuộc sống hàng ngày. Xử lý ảnh và đồ họa là yếu tố quan trọng trong tương tác giữa con người và máy tính.
Quá trình xử lý ảnh có thể được hiểu là việc thao tác các ảnh đầu vào để tạo ra các kết quả như mong muốn. Kết quả của quá trình này có thể là một bức ảnh được cải thiện hoặc một kết luận cụ thể dựa trên nội dung ảnh.
Quá trình xử lý ảnh bao gồm nhiều bước cơ bản, dưới đây mô tả các bước cơ bản trong quy trình xử lý ảnh:
Hình 2.4 Quy trình xử lý ảnh cơ bản 2.2.2 Các vấn đề cơ bản trong xử lý ảnh
Ảnh và điểm ảnh: Ảnh là một tập hợp các điểm ảnh được biểu thị với mức xám phù hợp, dùng để tái hiện một cảnh thực tế hoặc một đối tượng. Mỗi điểm ảnh trong ảnh được xác định bởi một tọa độ (x, y). Điểm ảnh là đơn vị cơ bản nhất trong quá trình tạo thành một hình ảnh kỹ thuật số. Độ phân giải của bức ảnh phụ thuộc vào số lượng pixel có trong đó, có nhiều pixel sẽ cung cấp chi tiết hình ảnh cao hơn [5].
Phân loại ảnh: Mức xám của điểm ảnh là cường độ sáng được biểu thị bằng một giá trị tại từng điểm ảnh. Các mức xám thông thường bao gồm: 16, 32, 64, 128, 256. Mức phổ biến nhất là 256, sử dụng 1 byte để biểu diễn mức xám [5].
- Ảnh nhị phân: Là loại ảnh chỉ có hai mức trắng và đen, chỉ sử dụng 1 bit dữ liệu cho mỗi điểm ảnh.
- Ảnh đen trắng: Là loại ảnh chỉ sử dụng hai màu đen và trắng (không chứa màu khác), với mức xám có thể khác nhau ở từng điểm ảnh.
- Ảnh màu: Là loại ảnh kết hợp từ ba màu cơ bản để tạo ra một thế giới màu sắc phong phú. Thông thường, để mô tả mức màu, người ta sử dụng 3 byte, tạo ra khoảng 16,7 triệu mức màu khác nhau.
Phân đoạn ảnh: Phân đoạn ảnh là bước quan trọng trong xử lý ảnh, nhằm chia ảnh thành các vùng có cùng tính chất dựa trên biên hoặc các vùng kết nối. Các tiêu chuẩn để xác định các vùng kết nối có thể là cùng mức độ xám, cùng màu sắc hoặc cùng đặc tính nhất định. Quá trình này giúp tách các đối tượng quan trọng ra khỏi nền và giữ lại thông tin cần thiết cho ứng dụng. Phân đoạn ảnh giúp loại bỏ những phần không cần thiết và có thể áp dụng nhiều phương pháp khác nhau như sử dụng ngưỡng xám để phân chia ảnh thành các vùng đối tượng và nền [5].
Các phép toán hình thái Morphology: Morphology trong xử lý ảnh số là một công cụ quan trọng giúp trích xuất các thành phần từ ảnh nhị phân, biểu diễn và mô tả chúng dưới dạng các vùng hoặc các đường biên, xương và bao lồi. Các phép toán cơ bản của Morphology áp dụng cho ảnh nhị phân bao gồm: Dilation, Erosion, Opening, Closing... [5]
- Phép giãn (Dilation) là thao tác giãn nở hoặc phình to các đối tượng ảnh đơn sắc.
- Phép co (Erosion) là thao tác xói mòn hoặc co hẹp các đối tượng ảnh đơn sắc.
- Phép giãn là quá trình làm mở rộng hoặc phình to các đối tượng trong ảnh bằng cách thêm vào các điểm ảnh vào bên trong đối tượng. Điều này dẫn đến việc làm tăng kích thước của đối tượng và làm cho ranh giới của nó trở nên mượt mà hơn.
Ngược lại, phép co là quá trình làm giảm kích thước của các đối tượng bằng cách loại bỏ các điểm ảnh trên biên của chúng.
Hình 2.5 Phép biến đổi erode và dilate 2.2.3 Phương pháp nhận dạng màu sắc
Không gian màu RGB: là một không gian màu rất thông dụng trong đồ họa máy tính và các thiết bị kỹ thuật số khác. Khái niệm cơ bản của không gian màu này là sự pha trộn của ba màu cơ bản: đỏ (R - Red), xanh lá cây (G - Green), và xanh dương (B - Blue), để tạo ra tất cả các màu sắc khác.
Khi một hình ảnh kỹ thuật số được mã hóa với 24 bit, nghĩa là mỗi kênh R, G, và B đều có 8 bit, mỗi kênh có thể có giá trị từ 0 đến 255. Bằng cách kết hợp các giá trị khác nhau của ba kênh màu này, ta có thể tạo ra một dải rộng các màu sắc. Cụ thể, điều này cho phép tạo ra 256 x 256 x 256 = 16.777.216 màu khác nhau.
Ví dụ, màu đen được biểu diễn bởi các giá trị (0, 0, 0) của ba kênh màu, trong khi màu trắng có giá trị (255, 255, 255). Màu vàng được tạo ra khi R và G đều có giá trị 255, còn B bằng 0, tức là (255, 255, 0). Tương tự, màu tím đậm có thể được biểu diễn bởi các giá trị (64, 0, 128) cho các kênh R, G, và B tương ứng.
Nếu chúng ta sử dụng 16 bit để mã hóa cho mỗi kênh màu (tổng cộng 48 bit cho cả ba kênh), thì số lượng màu sắc có thể biểu diễn sẽ tăng lên một cách đáng kể, lên đến 3 x 2^16 = 196,608 giá trị khác nhau cho mỗi kênh, cho phép tạo ra một số lượng khổng lồ các màu sắc khác nhau [6].
Không gian màu HSV (Hue, Saturation, Value): là một không gian màu được sử dụng phổ biến trong chỉnh sửa và phân tích ảnh, cũng như trong lĩnh vực máy tính. Nó dựa trên ba thành phần để mô tả màu sắc: Hue (màu sắc), Saturation (độ bão hòa), và Value (giá trị cường độ sáng). Trong không gian màu HSV, Hue
được biểu diễn bằng giá trị từ 0 đến 360 độ, Saturation là mức độ của màu sắc thuần khiết trong đoạn từ 0 đến 1, và Value thể hiện độ sáng của màu từ 0 đến 1, với 0 là tối nhất và 1 là sáng nhất.
Hình 2.6 Không gian màu HSV
Mô hình này thường được mô tả như một hình nón hoặc hình trụ trong không gian màu. Nó cung cấp sự điều khiển trực tiếp đến sắc độ và ánh sáng của màu sắc, làm cho nó phù hợp cho các ứng dụng thiết kế đồ họa và xử lý ảnh. Mô hình HSV cũng được đánh giá cao trong các thuật toán xử lý ảnh do khả năng tiêu chuẩn hóa về màu sắc và tập trung vào hai yếu tố chính: màu sắc và cường độ. Với sự phân chia rõ rệt giữa ánh sáng và màu sắc, HSV là lựa chọn phù hợp cho việc phân tích và so sánh sự tương đồng màu sắc giữa các hình ảnh, đặc biệt là trong việc tìm kiếm hình ảnh dựa trên màu sắc [6].
Công thức chuyển đổi giữa RGB và HSV:
Với ảnh thu thập được từ Camera sẽ cho không gian màu của ảnh là RGB, vì không gian màu RGB không thích hợp cho nhận dạng màu sắc, không gian màu HSV thường được dùng để phân biệt màu sắc. Vì vậy ta cần chuyển đổi ảnh RGB (ảnh gốc) sang ảnh HSV [6].
Giả sử ban đầu chúng ta có một điểm màu với giá trị trong hệ RGB là
(R G B, , ), ta chuyển đổi sang không gian màu HSV theo cách sau:
Để tính toán, ta cần chuẩn hóa các giá trị này về khoảng 0,1 :
, ,
255 255 255
R G B
r= g = b=
Đặt M =Max r g b m( , , ), =Min r g b( , , ) và C =M −m. Hue được tính theo công thức:
0, if 0
60 mod 6 , if
60 2 , if
60 4 , if
C g b
M r C
H b r
M g C
r g
M b C
=
−
=
= − + =
− + =
(2.10)
Saturation được tính theo công thức:
0, if 0
, otherwise M
S C
M
=
=
(2.11)
Value được tính theo công thức:
V =M (2.12)
Ta cần chuyển kết quả của các giá trị , ,H S V để phù hợp với phạm vi giá trị của OpenCV:
Hue được chia thành 180 mức độ thay vì 360 : 2
H H
= (2.13)
Saturation và Value được chia thành 256 mức độ từ 0 đến 255 thay vì từ 0 đến 1 như trong các công thức ban đầu:
255, 255
S = S V = V (2.14)