Tải bản đầy đủ (.docx) (33 trang)

MÔ PHỎNG NHẬN DIỆN màu sắc dùng visual studio 2013 (có code)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.49 MB, 33 trang )

MÔ PHỎNG NHẬN DIỆN MẦU SẮC

1


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ............................................................................................IV
DANH MỤC CÁC TỪ VIẾT TẮT.....................................................................................V
DANH MỤC CÁC BẢNG BIỂU.......................................................................................VI
LỜI MỞ ĐẦU.....................................................................................................................VII
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI...........................................................................1
1.1

GIỚI THIỆU..................................................................................................................1

1.2

YÊU CẦU.....................................................................................................................1

CHƯƠNG 2. GIỚI THIỆU VỀ THƯ VIỆN OPENCV...................................................2
2.1

GIỚI THIỆU..................................................................................................................2

2.2

SƠ LƯỢC VỀ CẤU TRÚC CỦA THƯ VIỆN OPENCV.......................................................3

2.3

CÀI ĐẶT OPENCV CHO VISUAL STUDIO 2013...........................................................4



CHƯƠNG 3. GIỚI THIỆU VỀ XỬ LÝ ẢNH...................................................................7
3.1

ẢNH SỐ.......................................................................................................................7

3.1.1

Điểm ảnh (Picture Element)...............................................................................7

3.1.2

Độ phân giải của ảnh..........................................................................................7

3.1.3

Mức xám của ảnh................................................................................................7

3.2

PHÂN LOẠI ẢNH..........................................................................................................8

3.2.1

Ảnh đen trắng......................................................................................................8

3.2.2

Ảnh nhị phân.......................................................................................................8


3.2.3

Ảnh màu..............................................................................................................8

3.3

CÁC GIAI ĐOẠN XỬ LÝ ẢNH......................................................................................11

3.3.1

Phần thu nhận ảnh (Image Acquisition)...........................................................12

3.3.2

Tiền xử lý (Image Processing)..........................................................................12

3.3.3

Phân đoạn (Segmentation) hay phân vùng ảnh................................................12

3.3.4

Biểu diễn ảnh (Image Representation)..............................................................12

3.3.5

Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)................12

2



3.3.6

Cơ sở tri thức (Knowledge Base)......................................................................13

3.3.7

Mô tả.................................................................................................................13

CHƯƠNG 4. CHƯƠNG TRÌNH MÔ PHỎNG NHẬN DIỆN MÀU SẮC.................14
4.1

CHƯƠNG TRÌNH GIẢI THUẬT.....................................................................................14

4.2

CÁC PHÉP TOÁN HÌNH THÁI HỌC..............................................................................15

4.3

KẾT QUẢ MÔ PHỎNG.................................................................................................16

CHƯƠNG 5. NHẬN XÉT..................................................................................................18
5.1

ƯU ĐIỂM...................................................................................................................18

5.2

NHƯỢC ĐIỂM............................................................................................................18


5.3

HƯỚNG PHÁT TRIỂN.................................................................................................18

TÀI LIỆU THAM KHẢO..................................................................................................19
PHỤ LỤC

20

3


DANH MỤC CÁC HÌNH VẼ
HÌNH 2-1: LỊCH SỬ PHÁT TRIỂN CỦA OPENCV [1].................................................2
HÌNH 2-2: CẤU TRÚC CỦA OPENCV [2].......................................................................3
HÌNH 2-3: CỬA SỔ THÔNG TIN VỀ HỆ THỐNG CỦA WINDOWS........................4
HÌNH 2-4: CỬA SỔ THUỘC TÍNH CỦA HỆ THỐNG..................................................5
HÌNH 3-1: KHÔNG GIAN MÀU RGB [3]........................................................................9
HÌNH 3-2: KHÔNG GIAN MÀU HSV [4]......................................................................10
HÌNH 3-3: HÌNH ẢNH KHI CHUYỂN ĐỔI CÁC KHÔNG GIAN MÀU [5]...........11
HÌNH 3-4: CÁC BƯỚC CƠ BẢN TRONG XỬ LÝ ẢNH [6].......................................11
HÌNH 3-5: SƠ ĐỒ PHÂN TÍCH VÀ XỬ LÝ ẢNH [7]..................................................13
HÌNH 4-1: CHƯƠNG TRÌNH GIẢI THUẬT.................................................................14
HÌNH 4-2: TẠO CÁC THANH TRƯỢT TRÊN CỬA SỔ TRACBARS.....................16
HÌNH 4-3: HÌNH ẢNH VẬT THỂ SAU KHI CO GIÃN..............................................16
HÌNH 4-4: HÌNH ẢNH CHUYỂN SANG KHÔNG GIAN MÀU HSV......................17
HÌNH 4-5: KẾT QUẢ XÁC ĐỊNH MÀU CỦA VẬT THỂ............................................17

4



DANH MỤC CÁC TỪ VIẾT TẮT

OpenCV

Open Source Computer Vision

R

Red

G

Green

B

Blue

H

Hue

S

Saturation

V


Value

IEEE

Institute of Electrical and Electronics Engineers

PEL

Picture Element

5


DANH MỤC CÁC BẢNG BIỂU
No table of contents entries found.

6


LỜI MỞ ĐẦU
Trong những năm gần đây, có thể nói xử lý ảnh số và thị giác máy tính ngày
càng phát triển. Việc kết hợp giữa xử lý ảnh với các kỹ thuật khác như công nghệ
thông tin, truyền thông, điện tử, điều khiển tự động, cơ khí…đãtạo ra nhiều sản
phẩm ứng dụng trong đời sống hàng ngày cũng như trong khoa học, an ninh, y học,
quân sự.

7


Trang 1/26


CHƯƠNG 1.

TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu
Trong sản xuất công nghiệp cũng như nông nghiệp, việc kiểm tra ngoại quan
(Visual Check) đối với sản phẩm là vô cùng cần thiết. Công việc này giúp cho sản
phẩm trước khi tung ra thị trường có chất lượng đồng đều, loại bỏ những sản phẩm
không phù hợp trong quá trình sản xuất và phân loại các sản phẩm thành từng nhóm
khác nhau. Ví dụ: phân loại rau quả thành quả chín quả xanh, phân loại gạch thành
loại 1, 2, 3. Hiện nay việc kiểm tra này chủ yếu do con người đảm nhiệm vì vậy để
tránh sai sót do yếu tố con người và để đạt được năng suất cao, việc tự động hóa
khâu kiểm tra ngoại quan là vô cùng cần thiết. Xuất phát từ nhu câu thực tiễn ứng
dụng công nghệ xử lý ảnh để thay thế cho khâu kiểm tra ngoại quan do con người
thực hiện. Có nhiều phương pháp kiểm tra nhưng trong đề tài này sẽ giới thiệu
phương pháp theo hướng nhận diện màu sắc của đối tượng, sử dụng phần mềm
Visual Studio 2013 kết hợp với thư viện OpenCV.
1.2 Yêu cầu
Để thực hiện được đề tài cần:
-

Tìm hiểu các vấn đề về ảnh số, xử lý ảnh số.

-

Tìm hiểu thư viện xử lý ảnh OpenCV trên nền C++.

-


Tìm hiểu về giải thuật nhận diện màu sắc.

-

Viết phần mềm mô phỏng nhận diện màu sắc của vật thể từ camera trên
nền C++.

Mô Phỏng Nhận Diện Mầu Sắc


Trang 2/26

CHƯƠNG 2.

GIỚI THIỆU VỀ THƯ VIỆN OPENCV

1.3 Giới thiệu
OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở về thị giác
máy tính với hơn 500 hàm và hơn 2500 các thuật toán đã đư ợc tối ưu về xử lý ảnh,
và các vấn đề liên quan tới thị giác máy. OpenCV được thiết kế một cách tối ưu, sử
dụng tối đa sức mạnh của các dòng chip đa lõi… để thực hiện các phép tính toán
trong thời gian thực, nghĩa là tốc độ đáp ứng có thể đủ nhanh cho các ứng dụng
thông thường. OpenCV có thể hoạt động trên nhiều nền tảng khác nhau như
Window, Linux, Mac, iOS.

Hình 2-1: Lịch sử phát triển của OpenCV [1]

OpenCV bắt đầu từ những năm 1999, đến năm 2000 được giới thiệu trong một hội
nghị của IEEE về các vấn đề trong thị giác máy và nhận dạng, nhưng năm 2006
bản OpenCV version 1.0 mới chính thức được công bố và bản OpenCV version 1.1

vào năm 2008 được ra đời. Tháng 10 năm 2009, bản OpenCV version 2.0 ra đời.
Thư viện OpenCV ban đầu được sự hỗ trợ từ Intel, sau đó được hỗ trợ bở Willow
Garage, một phòng thí nghiệm chuyên nghiên cứu về công nghệ Robot. Cho đến
nay, OpenCV vẫn là thư viện mở, được phát triển bởi nguồn quỹ không lợi nhuận và
được sự hưởng ứng rất lớn của cộng đồng.

Mô Phỏng Nhận Diện Mầu Sắc


Trang 3/26

1.4 Sơ lược về cấu trúc của thư viện OpenCV
Cấu trúc của OpenCV được chia làm 5 phần chính:

Hình 2-2: Cấu trúc của OpenCV [2]

CXCORE chứa các định nghĩa kiểu dữ liệu cơ sở, đại số tuyến tính, phương pháp
thống kê, chức năng duy trì, điều khiển chuỗi và một số các chức năng đồ họa được
dùng để vẽ trên ảnh.
CV chứa các thuật toán về xử lý ảnh, định kích cỡ camera và các chức năng hình
họa máy tính.
CVAUX chứa các mã cũ và thử nghiệm. Ngoài ra còn có các giao diện đơn cho sự
nhận diện ảnh.
HIGHGUI chứa các giao diện vào ra cơ bản, chứa các khả năng cửa sổ mở rộng và
vào ra video.
CVCAM chứa các giao diện cho video truy cập trên nền Windows 32 bits.
Các chức năng của OpenCV tập trung vào thu thập ảnh, xử lí ảnh và các thuật toán
phân tích dữ liệu ảnh, bao gồm:
-


Truy xuất ảnh và phim: Đọc ảnh số từ camera, từ file, ghi ảnh và phim.

-

Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: Ma trận, vector, chuỗi.

-

Xử lí ảnh căn bản: Các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh đổi màu,
phóng to thu nhỏ và hiệu chỉnh histograms.

Mô Phỏng Nhận Diện Mầu Sắc


Trang 4/26

-

Xử lí cấu trúc: Tìm viền, nhận chuyển động, thay đổi trong không gian 3D,
đối chiếu bản mẫu, xấp xỉ các đơn vị hình học cơ sở, mặt phẳng, đa giác,
ellipse, đường thẳng...

-

Phân tích dữ liệu ảnh: Nhận dạng thực thể, theo dõi các chi tiết và phân tích
chuyển động.

-

Tạo giao diện đơn giản: Hiển thị ảnh, thao tác bàn phím, chuột, thanh trượt

để chỉnh thông số.

-

Chức năng vẽ, chú thích lên ảnh.

1.5 Cài đặt OpenCV cho Visual Studio 2013
Để cài đặt OpenCV3.0 cho visual studio 2013 ta cần làm các bước sau:
Bước 1: Cài đặt biến môi trường của Windows.
-

Nhấp trỏ phải vào “Mycomputer” chọn “ Properties”. Với windows 7 của sổ
hiện ra như sau:

Hình 2-3: Cửa sổ thông tin về hệ thống của Windows

-

Nhấp chọn “Advanced system settings”. Cửa sổ cài đặt hiện ra, ta chọn thẻ
“Advanced”.

Mô Phỏng Nhận Diện Mầu Sắc


Trang 5/26

Hình 2-4: Cửa sổ thuộc tính của hệ thống

-


Nhấp chọn nút “Environment Variables…”. Sau đó nhấp chọn nút New trong
User variables và đặt như sau:
variable name: OPENCV_DIR
value: C:\OpenCV\build\x86\vc12

-

Chọn Path trong System variables, nhấp chọn nút Edit thêm vào
%OPENCV_DIR%\bin vào variable value.

Bước 2: Thêm thư viện OpenCV vào visual sutido 2013
-

Trong

mục

additional

include

directories

thêm

vào

$

(OPENCV_DIR)\..\..\include.

-

Chọn Linker >> General, trong mục additional libbrary directories thêm
vào $(OPENCV_DIR)\Lib.

Mô Phỏng Nhận Diện Mầu Sắc


Trang 6/26

-

Chọn Linker >> Input, trong mục Edit Additional Dependencies thêm vào
OpenCV_ts300d.lib; OpenCV_world300d.lib.

Mô Phỏng Nhận Diện Mầu Sắc


Trang 7/26

CHƯƠNG 3.

GIỚI THIỆU VỀ XỬ LÝ ẢNH

1.6 Ảnh số
Ảnh số là tập hợp hữu hạn các điểm ảnh có mức xám phù hợp dùng để mô tả ảnh
gần với ảnh thật. Số điểm ảnh sẽ xác định được độ phân giải của ảnh. Ảnh có độ
phân giải cao thì ảnh trở nên thực và sắc nét hơn.
1.1.1 Điểm ảnh (Picture Element)
Hình ảnh là ảnh liên tục về không gian và độ sáng. Để xử lý bằng máy tính, ảnh cần

phải được số hoá. Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một
tập hợp điểm phù hợp với ảnh thật về không gian và mức xám. Khoảng cách giữa
các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới
giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi
tắt là Pixel. Trong ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y) có độ xám hay
màu nhất định.
1.1.2 Độ phân giải của ảnh
Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh trên một ảnh số được hiển
thị, khoảng cách giữa các điểm ảnh là một khoảng thích hợp mà mắt người vẫn thấy
được sự liên tục của ảnh. Khoảng cách đó tạo nên độ phân giải, nó phân bố theo
trục x và y trong không gian hai chiều.
1.1.3 Mức xám của ảnh
Mức xám của điểm ảnh là cường độ sáng của điểm ảnh được gán bằng giá trị số tại
điểm đó.
Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256. Mức 256 là mức phổ
dụng.
1.7 Phân loại ảnh
1.1.4 Ảnh đen trắng
Ảnh đen trắng chỉ bao gồm 2 màu: màu đen và màu trắng. Người ta phân mức đen
trắng đó thành L mức, B bit:
L=2B
Mô Phỏng Nhận Diện Mầu Sắc


Trang 8/26

Nếu dùng 8 bit (1 byte) để biểu diễn mức xám, số các mức xám có thể biểu diễn
được là 256. Mỗi mức xám là một số nguyên nằm trong khoảng từ 0 đến 255, trong
đó mức 0 là mức cường độ đen nhất và 255 là mức cường độ sáng nhất.
1.1.5 Ảnh nhị phân

Ảnh chỉ có 2 mức đen trắng phân biệt, mỗi điểm ảnh được biểu diễn chỉ là mức 0
hoặc mức 1. Ảnh nhị phân khá đơn giản, các phần tử ảnh có thể coi như các phần tử
logic. Ứng dụng chính của nó được dùng theo tính logic để phân biệt đối tượng ảnh
với nền hay để phân biệt điểm biên với điểm khác.
1.1.6 Ảnh màu
Ảnh màu theo lý thuyết của Thomas là ảnh tổ hợp từ 3 màu cơ bản: đỏ (R), lục (G),
lam (B) và thường thu nhận trên các dải băng tần khác nhau. Để biểu diễn cho một
điểm ảnh màu cần 24 bit, 24 bit này được chia thành ba khoảng 8 bit. Mỗi màu cũng
phân thành L cấp màu khác nhau. 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.
Không gian màu
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. Có ba không gian màu cơ bản là: RGB, HSV và
CMYK. Trong đề tài này ta chỉ xét tới không gian màu RGB và HSV.
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.không gian màu này là sự kết hợp giữa ba màu cơ bản màu
đỏ (R), lục (G) và lam (B) để mô tả tất cả các màu sắc khác.
Nếu như một ảnh số được mã hóa bằng 24bit, nghĩa là 8 bit cho kênh R, 8 bit cho
kênh G, 8 bit cho kênh B, thì mỗi kênh này màu này sẽ nhận giá trị từ 0 - 255. Với
mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác
nhau, như vậy ta sẽ có tổng cộng 255 x 255 x 255 = 1.66 triệu màu sắ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).

Mô Phỏng Nhận Diện Mầu Sắc


Trang 9/26


Hình 3-1: không gian màu RGB [3]

Không gian màu HSV
HSV 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 máy tính. Hệ không gian này dựa vào 3 thông số:
-

H (Hue): Màu sắc.
S (Saturation): độ đậm đặc, sự bảo hòa.
V (value): giá trị cường độ sáng.

Không gian màu này thường được biểu diễn dưới dạng hình trụ hoặc hình nón.
Vòng tròn từ 0 -360 độ là trường biểu diễn màu sắc (Hue), bắt đầu từ màu đỏ (red
primary) tới màu xanh lục (green primary) nằm trong khoảng 0-120 độ, từ 120 - 240
độ là màu xanh lục tới lam (green primary - blue primary). Từ 240 - 360 là từ màu
đen tới lại màu đỏ.

Hình 3-2: Không gian màu HSV [4]

Chuyển đổi RGB sang HSV và ngược lại
Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G, B). ta chuyển sang
không gian HSV như sau:
Đặt M = Max(R, G, B), m = Min(R, G, B) và C = M - m.
Nếu M = R, H' = (G - B)/C mod 6.
Nếu M = G, H' = (B - R)/C + 2.

Mô Phỏng Nhận Diện Mầu Sắc



Trang 10/26

Nếu M = B, H' = (R - G)/C + 4, H = H' x 60.
Trong trường hợp C = 0, H=00, V=M, S = C/V.
Trong trường hợp V hoặc C bằng 0, S = 0. Để chuyển từ HSV sang RGB ta làm như
sau:
Giả sử ta có không gian màu HSV với H = [0, 360], S = [0, 1], V = [0, 1]. Khi đó, ta
tính
C = V*S. H' = H/60
X = C(1 - |H' mod2 -1|)
Ta biểu diễn hệ (R1, G1, B1) như sau:
Đặt m = V - C và ta có kết quả cuối cùng: (R, G, B) = (R1 + m, G1 + m, G1 +m).
Trong OpenCV, các không gian màu được được chuyển đổi qua lại nhờ hàm
cvtColor (convert color), nguyên mẫu hàm này như sau:
cv::cvtColor(cv::InputArray src, cv::OutputArray dst, int code)
Trong đó, src, dst là ảnh gốc và ảnh thu được sau khi chuyển đổi không gian màu,
code là mã chuyển đổi không gian màu. Trong đề tài này ta sẽ chuyển không gian
màu RGB sang không gian màu HSV.

Hình 3-3: Hình ảnh khi chuyển đổi các không gian màu [5]

1.8 Các giai đoạn xử lý ảnh
Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh. Xử lý
ảnh gồm bốn lĩnh vực chính là xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén
ảnh và truy vấn ảnh. Ngày nay xử lý ảnh đã được áp dụng rất rộng rãi trong đời

Mô Phỏng Nhận Diện Mầu Sắc


Trang 11/26


sống như: photoshop, nén ảnh, nén video, nhận dạng biển số xe, nhận dạng khuôn
mặt, nhận dạng chữ viết, xử lý ảnh thiên văn, ảnh y tế,....

Hình 3-4: Các bước cơ bản trong xử lý ảnh [6]

1.1.7 Phần thu nhận ảnh (Image Acquisition)
Ảnh được nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera là
ảnh tương tự, cũng có loại camera đã số hoá là loại photodiot tạo cường độ sáng tại
mỗi điểm ảnh. Chất lượng một ảnh nhận được phụ thuộc vào thiết bị thu và môi
trường.
1.1.8 Tiền xử lý (Image Processing)
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý
để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ
tương phản để làm ảnh rõ nét hơn.
1.1.9 Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn
phân tích, nhận dạng ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công
đoạn này.
1.1.10 Biểu diễn ảnh (Image Representation)
Ảnh sau khi phân vùng chứa các điểm ảnh và mã liên kết với các vùng lận cận. Cần
phải biến đổi các số liệu này thành dạng thích hợp cho các bước sử lý tiếp theo.
1.1.11 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

Mô Phỏng Nhận Diện Mầu Sắc


Trang 12/26

Nhận dạng ảnh là quá trình so sánh ảnh với mẫu chuẩn đã được lưu từ trước. Nội

suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Có hai loại nhận dạng ảnh cơ
bản:
-

Nhận dạng theo tham số.

-

Nhận dạng theo cấu trúc.

1.1.12 Cơ sở tri thức (Knowledge Base)
Trong nhiều khâu xử lý và phân tích ảnh ngoài nhiều khâu hiện nay đã xử lý theo
các phương pháp trí tuệ con người. Đó là kết quả của việc áp dụng cơ cơ sở tri
thức.
1.1.13 Mô tả
Ảnh sau khi số hoá sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo để
phân tích. Ảnh được lưu trữ được mô tả lại theo các đặc trưng như: biên ảnh
(Boundary), vùng ảnh (Region). Một số phương pháp biểu diễn thường dùng:
-

Biểu diễn bằng mã chạy (Run-Length Code).

-

Biểu diễn bằng mã xích (Chaine -Code).

-

Biểu diễn bằng mã tứ phân (Quad-Tree Code).


Hình 3-5: Sơ đồ phân tích và xử lý ảnh [7]

Trong thực tế, các quá trình sử dụng ảnh số không nhất thiết phải qua hết các khâu
đó tùy theo đặc điểm ứng dụng. Ở hình trên ảnh sau khi được số hóa được nén, lưu
lai để truyền cho các hệ thống khác sử dụng hoặc để xử lý tiếp theo. Mặt khác, ảnh

Mô Phỏng Nhận Diện Mầu Sắc


Trang 13/26

sau khi số hóa có thể bỏ qua công đoạn nâng cao chất lượng chuyển tới khâu phân
đoạn hoặc bỏ tiếp khâu phân đoạn chuyển trực tiếp tới khâu trích chọn đặc trưng.

CHƯƠNG 4.

CHƯƠNG TRÌNH MÔ PHỎNG NHẬN DIỆN MÀU SẮC

1.9 Chương trình giải thuật

Hình 4-1: Chương trình giải thuật

Dựa vào chương trình giải thuật có thể hiểu chương trình mô phỏng nhận diện màu
sắc hoạt động như sau:

Mô Phỏng Nhận Diện Mầu Sắc


Trang 14/26


-

Bắt đầu chương trình camera hoạt động.

-

Các khung ảnh theo dõi sẽ được bật lên.

-

Sau đó khung ảnh không gian màu RGB được chuyển thành không
gian màu HSV.

-

Chương trình bắt đầu tìm kiếm vật thể.

-

Nếu vật thể được tìm thấy thì sẽ được gán giá trị màu HSV nhỏ nhất
và HSV lớn nhất, giá trị này được vẽ lên vật thể cùng màu với màu
của vật thể. Đồng thời vật thể sẽ được gán tên màu.

-

Nếu như có quá nhiều vật thể, vì số vật thể tối đa là 50 nếu vượt quá
múc này thì sẽ không xac định được vật thể, khung hình sẽ được gán
chữ TOO MUCH NOISE!

1.10 Các phép toán hình thái học

Các phép toán hình thái học là những phép toán liên quan tới cấu trúc hình học của
các đối tượng trong ảnh. Các phép toán hình thái học tiêu biểu bao gồm phép giãn
nở (dialation) phép co (erosion), phép mở (opening) và phép đóng (closing). Trong
đề tài này ta chỉ xét phép giãn nở và phép co.
Trong OpenCV, các phép toán hình thái học trong ảnh được cài đặt trong hàm
cv::morphologyEx, riêng phép giãn nở và phép co có thể gọi trực tiếp từ hàm
cv::dilate và cv::erode:
morphologyEx(const Mat& src, Mat& dst, int op, const Mat& element, Point
anchor, int iterations, int borderType, const Scalar& borderValue)
với src, dst là ảnh đầu vào và ảnh sau phép xử lý hình thái học, op là kiểu lựa chọn
phép hình thái học, element là cấu trúc phần tử ảnh.
Cấu trúc phần tử ảnh được gán trong hàm:
getStructuringElement(int shape, Size ksize, Point anchor)
Với shape là kiểu hình khối, ksize là kích thước của hình khối và là khích thước của
hai số nguyên lẻ, anchor là điểm neo.
Xử lý video

Mô Phỏng Nhận Diện Mầu Sắc


Trang 15/26

Để đọc video từ một file video hoặc một thiết bị webcam, camera ta dùng hàm
cv::VideoCapture. Để lấy ra được các frame ảnh trong video, ta dùng hàm
read(cv::Mat& img).
1.11

Kết quả mô phỏng

Hình 4-2: Tạo các thanh trượt trên cửa sổ Tracbars


Hình 4-3: Hình ảnh vật thể sau khi co giãn

Mô Phỏng Nhận Diện Mầu Sắc


Trang 16/26

Hình 4-4: Hình ảnh chuyển sang không gian màu HSV

Mô Phỏng Nhận Diện Mầu Sắc


Trang 17/26

Hình 4-5: Kết quả xác định màu của vật thể

Mô Phỏng Nhận Diện Mầu Sắc


Trang 18/26

CHƯƠNG 5.

NHẬN XÉT

1.12 Ưu điểm
Khả năng đọc màu, quan sát phát hiện tối tượng nhanh, các thông số tính toán hinể
thị rõ ràng có thể phát triển trên cơ sở phân biệt màu sắc, hình dạng của đối tượng
qua camera.

1.13 Nhược điểm
Nhược điểm của đề tài là sử dụng máy tính nên tốn một khoảng không gian cần
thiết. Do vùng màu xanh đặt giá trị chưa chính xác nên xảy ra tình trạng nhiễu màu.
Màu đỏ và vàng được xác định chính xác hơn màu xanh lá và xanh lục.
Đề tài chỉ mới mang tính minh họa cho hướng ứng dụng xử lý ảnh số trong sản xuất
và đời sống.
1.14 Hướng phát triển
Đề tài cần được cải tiến cho quét vật thể trong một diện tích rộng hơn, xây dựng các
mô hình thực, phân tích và loại bỏ nhiễu ánh sáng bên ngoài, xử dụng các chip công
nghệ ASIC, FPGA, vi xử lý, vi điều khiển thay thế cho máy vi tính để phù hợp với
yêu cầu thực tế trong các dây chuyền sản xuất trong của nhà máy xí nghiệp. Ví dụ
như: phân loại gạch chính, phế phẩm và kiểm tra lỗi. Ngoài ra chương trình có thể
ứng dụng trên các dây chuyền khác như: Phân loại gạo, cà chua, tiêu, lò nướng
bánh mì, tôm…Hệ thống dễ vận hành và sửa chữa dễ dàng mà không cần đến trình
độ chuyên gia. Với công nghệ tự động, khả năng giám sát giải quyết bài toán thủ
công hiện nay.

TÀI LIỆU THAM KHẢO
Tiếng Việt:
Mô Phỏng Nhận Diện Mầu Sắc


×