Tải bản đầy đủ (.doc) (100 trang)

Đồ án tốt nghiệp phần mềm báo động cháy rừng

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 (2.15 MB, 100 trang )

Đồ án tốt nghiệp đại học

LỜI NÓI ĐẦU
Cháy rừng là một thảm họa gây thiệt hại lớn đối với tính mạng và tài sản của
con người, tài nguyên rừng và môi trường sống. Ảnh hưởng của nó không những
tác động đến một quốc gia mà còn ảnh hưởng đến cả khu vực và toàn cầu. Trong
vài thập kỷ gần đây, biến đổi khí hậu với những đợt nóng hạn kéo dài bất thường đã
làm cho cháy rừng trở thành thảm họa ngày càng nghiêm trọng. theo số liệu của cục
kiểm lâm, ở Việt Nam bình quân mỗi năm diện tích rừng bị thiệt hại về người , hủy
hoại môi trường sống, gây ô nhiễm môi trường…, nếu không được kiểm soát kịp
thời thì hậu quả rất nặng nề. vì vậy việc phòng chống cháy rừng đóng một vai trò
hết sức quan trọng.
Tuy nhiên, việc phòng chống cháy rừng là một việc hêt sức khó khăn vì
nguyên nhân phát sinh là rất nhiều và khó đoán trước. Để giải quyết vấn đề này thì
việc phát hiện cháy sớm để có biện pháp kịp thời ứng phó được xem là khả thi nhất.
Với sự phát triển nhanh chóng của công nghệ thì nhiều hệ thống đã ra đời để đưa ra
cảnh báo cháy rừng nhờ cảm biến ( cảm biến nhiệt độ. Cám biến khói…), hệ thống
cảnh báo cháy rừng thông qua vệ tinh, hệ thống cảnh báo cháy rừng phát hiện qua
video từ camera quan trắc. Tuy nhiên, qua thực tế sử dụng thì hệ thống dùng
phương pháp phân tích video, ảnh mang lại nhiều ưu điểm và chính xác hơn.
Với một camera có độ phân giải tốt thì hoàn toàn có thể giám sát được một
vùng rừng rộng lớn với độ chính xác chấp nhận được. Trong khi đó hệ thống dùng
cảm biến thì có nhược điểm là vùng giám sát rất nhỏ, và vấn đề năng lượng cung
cấp cho các nút cảm biến cũng như tuổi thọ của các nút này bị ảnh hưởng rất nhiều
bởi môi trường và điều kiện địa lí. Do đó độ chính xác của hệ thống dùng cảm biến
cũng không cao. Đối với hệ thống cảnh báo dùng vệ tinh thì có thể bao quát vùng
rộng, tuy nhiên lại có một số hạn chế như: độ phân giải của ảnh không cao, thời
gian thực không được đáp ứng, đắt đỏ, ảnh hưởng của thời tiết làm giảm độ chính
xác… vậy nên dùng xử lý video được xem là một hệ thống tối ưu cho đến thời điểm
này.
Đã có rất nhiều gải thuật được đưa ra trong việc xủ lí ảnh trong các video để


đưa cảnh báo được cung cấp bởi nhiều chuyên gia trên thế giới. Các giải thuật đều
dựa trên sự khác biệt về hai điểm chính là chuyển động và màu sắc của ngọn lửa và
khói. Việc xác định xác định chuyển động là bước đầu tiên để tìm tìm ra vùng có
khả năng là lửa hoặc khói. Thuật toán “ Subtraction Background” được dùng như

SV:

1

Lớp:


Đồ án tốt nghiệp đại học

một phương pháp truyền thống trong xác định chuyển động từ các chuỗi frame
trong video. Bước tiếp theo sẽ phân loại, đánh giá các vùng này dựa trên thông tin,
đặc trưng về màu săc để đi đến kết luận. Đặc trăng màu sắc của ngọn lửa thì khá rõ
ràng, trong khi đó phân biệt khói có ít đặc trưng hơn. Trong khi khuôn khổ đè tài
này, em phát triển dựa theo phương pháp thông dụng trên, tuy nhiên bổ sung thêm
một số ý tưởng về cả chuyển động và màu sắc trong quá trình thực nghiệm để tăng
hiệu quả phát hiện đám cháy. Ngoài ra, nhằm đảm bảo tầm bao quát rộng cũng như
tăng độ chính xác của phần mềm trong nhiều trường hợp khác nhau, em sử dụng
thêm thuật toán panorama ghép dử liệu hình ảnh đầu vào từ hai camera đặt gần
nhau để cho khung hình rộng hơn. Đây cũng là một hướng mới trong đề tài của em.
Em xin chân thành cảm ơn T.s……………………………. đã tận tình hướng
dẫn em thực hiện đề tài này!
Em xin cam đoan đây là công trình nghiên cứu khoa học độc lập của riêng em.
Các số liệu sử dụng phân tích trong đồ án có nguồn gốc rõ ràng, đã công bố theo
đúng quy định. Các kết quả nghiên cứu trong đồ án do em tự tìm hiểu, phân tích
một cách trung thực, khách quan và phù hợp với thực tiễn của Việt Nam. Các kết

quả này chưa từng được công bố trong bất kỳ nghiên cứu nào khác.

TÓM TẮT ĐỒ ÁN
SV:

2

Lớp:


Đồ án tốt nghiệp đại học

Mục đích của đồ án là tìm hiểu về hệ thống cảnh báo cháy rừng và phát triển
một phần mềm xử lý hình ảnh thu được từ cảm biến hình ảnh và đưa ra cảnh báo
một cách tự động. Để ứng dụng được vào hệ thống mạng cảm biến, phần mềm cần
ghép ảnh từ các nút mạng khác nhau để tạo ra một vùng bao quát rộng hơn trước
khi xử lý và phát hiện đám cháy. Giải thuật phát hiện đám cháy rừng được đề xuất
trong đồ án dựa trên các đặc điểm về màu sắc của lữa và khói, gồm hai bước chính:
khoanh vùng các thành phần trong khung hình mà camera giám sát chụp được, sau
đó phân tích, đánh giá chúng và đưa ra cảnh báo nếu có đám cháy. Việc ứng dụng
xử lý hình ảnh đem lại hiệu quả cao hơn trong việc xử lý và phát hiện đám cháy so
với các hệ thống đã có. Phần mềm được viết bằng ngôn ngữ lập trình MatLab. Phần
mềm có giao diện thân thiện, dể sử dụng, hiệu quả cao.

ABSTRACT

SV:

3


Lớp:


Đồ án tốt nghiệp đại học

The aim of this project is to learn about forest fire warring system and devolop
a software which processes Image from image sensor and provides alerts
automatically. To successfully apply to sensor network, the software need to
composite image from the network to create broader coverage area before
processing and detecting fires. Proposed algorithm is this project for detecting fire
is based on the characteristics of color of fire and color smoke. It consists of two
main steps: zonation the components in the camera frame capture, then analyze,
evaluate and give alerts if there is a fire. The image processing applications sensors
brings better efficiency in processing and detecting fires in comparison with
existing systems. The software is written in MatLab programming language, the
software has friendly interface, easy to use and highly effective.

SV:

4

Lớp:


Đồ án tốt nghiệp đại học

CHƯƠNG 1. TỔNG QUAN VỀ XỬ LÝ ẢNH
1.1. Khái niệm xử lý ảnh số
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò
quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cúng máy tính,

xử lý ảnh và đồ họa phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc
sống. Xử lý ảnh và đồ họa đóng vai trò quan trọng trong tương tác người máy.
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho
ra kết quả mong muốn. kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh
“tốt hơn” hoặcẢnh
một kết luận dựa trên việc phân tích và xử lý bức ảnh.

Xử lý ảnh

Ảnh “tốt
hơn”
Kết luận

Hình 1. 1 Quá trình xử lý ảnh
Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là
đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối
tượng trong không gian và nó có thể xem như một hàm n biến p(c1, c2,…,cn). Do
đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.
1.2. Nguồn gốc của xử lý ảnh số
Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh được truyền qua
cáp từ london đến New York từ những năm 1920. Vấn đề nâng cao chất lượng ảnh
có liên quan tới phân bố mức sáng và độ phân giải của ảnh. Việc nâng cao chất
lượng ảnh được phát triển vào khoảng những năm 1995. Điều này có thể giải thích
được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình
xử lý ảnh số thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất
lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của mỹ bao gồm: làm nổi đường biên,
lưu ảnh.
Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng nhận dạng
ảnh phát triển không ngừng . Các phương pháp tri thức nhân tạo như mạng nơ ron
nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng

được áp dụng rộng rãi và thu nhiều kết quả khả quan.

SV:

5

Lớp:


Đồ án tốt nghiệp đại học

1.3. Các ứng dụng của xử lý ảnh số


Biến đổi ảnh ( ImageTransform)
Trong xử lý ảnh do số điểm ảnh lớn hơn yêu cầu tính toán nhiều ( độ phức tạp
tính toán cao) đòi hỏi dung lượng bộ nhớ lớn, thời gian tính toán lâu. Các phương
pháp khoa học áp dụng kinh điển áp dụng cho xử lý hình ảnh hầu hết khó khả thi.
Người ta sử dụng các phép toán tương đương hoặc biến đổi sang miền xử lý khác để
dễ tính toán . Sau khi xử lý dễ dàng hơn được thực hiện, dùng biến đổi ngược để
đưa về miền xác định ban đầu, các biến đổi thường gặp trong xử lý ảnh gồm:
 Biến đổi Fourier, Cosin, Sin.
 Biến đổi (mô tả) ảnh bằng tích chập, tích Kronecker.
 Các biến đổi khác như Karhumen loeve, Hademard.
• Nén ảnh
Ảnh dù ở dạng nào vẫn chiếm không gian nhớ rất lớn. khi mô tả ảnh người ta
đã đưa kỹ thuật nén ảnh vào. Hiện nay, các chuẩn MPEG (Moving Picrure Experts
Group) được dùng với ảnh đang phát huy hiệu quả.
1.4. Các vấn đề cơ bản trong xử lý ảnh số
• Điểm ảnh (Picture Element)

Ảnh gốc (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng . để xử lý
bằng máy tính (số), ảnh cần phải được số hóa. Số hóa ảnh là sự biến đổi gần đúng
một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và
độ sáng (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: Piture Element) hay gọi tắt là Pixel. Trong khuôn khổ ảnh hay
chiều, mỗi pixel ứng với cặp tọa độ (x,y).
Điểm ảnh (pixel) là một phần tử của ảnh số tại tọa độ (x,y) với độ xám hoặc
màu nhất định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích
hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu)
của ảnh số gần như ảnh thật. mỗi phần tử trong ma trận được gọi là một phần tử
ảnh.


Độ phân giải của ảnh
Độ phân giải (Resplution) của ảnh là mật độ điểm ảnh được ấn định trên một
ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được
chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng
cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân
bố theo trục x và y trong không gian hai chiều.

SV:

6

Lớp:


Đồ án tốt nghiệp đại học


Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là
một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc

200 điểm chiều

ngang (320 200). Rõ ràng, cùng dộ phân giải 320 200, hiển thị trên màn hình
CGA 12” cho mật độ điểm ảnh cao hơn trên màn hình CGA 17”. Lý do: cùng một
độ phân giải nhưng diện tích tích màn hình rộng hơn thì độ liên tục của các điểm
kém hơn.
• Mức xám của ảnh
Một điểm ảnh (Pixel) có hai đặc trưng cơ bản là vị trí (x,y) của một điểm ảnh
và độ xám của nó. Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ
thường dùng trong xử lý ảnh.
Mức xám của điểm ảnh là cường độ sáng của nó đượ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. lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức
xám: Mức xám dùng 1 byte biểu diễn:

= 256 mức. tức là từ 0 đến 255).

 Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức
xám ở các điểm ảnh có thể khác nhau.
 ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 21
mức khác nhau. Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là
0 hoặc 1.
 Ảnh màu: trong khuôn khổ lý thuyết ba màu RBG (Red, Blue, Green) để tạo
nên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các
giá trị màu:


=

~ 16.7 triệu màu.



Tỉ số tín hiệu cực đại trên nhiễu (PSNR)
Cụm từ tỉ số tín hiệu cực đại trên nhiễu PSNR (peak signal-to-noise ratio) là
một thuật ngữ dùng để tính tỉ lệ giữa giá trị năng lượng tối đa của một tín hiệu và
năng lượng nhiễu ảnh hưởng đến độ chính xác của thông tin. Bởi vì có rất nhiều tín
hiệu có phạm vi biến đổi rộng, nên PSNR thường được biểu diễn bởi đơn vị
logarithm (decibel).
PSNR được sử dụng để đo chất lượng tín hiệu khôi phục của các thuật toán
nén có mất mát dữ liệu (lossy compression) (dùng trong nén ảnh). Tín hiệu trong
trường hợp này là dữ liệu gốc và nhiễu là các lỗi xuất hiện khi nén. Khi so sánh các
thuật toán nén thường dựa vào sự cảm nhận gần chính xác của con người đối với dữ
liệu được khôi phục, chính vì thế trong một số trường hợp dữ liệu được khôi phục

SV:

7

Lớp:


Đồ án tốt nghiệp đại học

của thuật toán này dường như có chất lượng tốt hơn những cái khác, mặc dù nó có
giá trị PSNR thấp hơn (thông thương PSNR càng cao thì chát lượng dữ liệu được
khôi phục càng tốt). vì vậy khi so sánh kết quả của hai thuật toán cần phải dựa trên

codec giống nhau và nội dung của dữ liệu cũng phải giống nhau
Cách đơn giản nhất là định nghĩa thông qua MSE (mean squared eror) được
dùng cho ảnh 2 chiều có kích thước m

n trong đó I và K là ảnh gốc và ảnh được

khôi phục tương ứng:
MSE=

(1.1)

PSNR được định nghĩa bởi:
PSNR = 10

(1.2)

PSNR = 20

(1.3)

Ở đây, MA

là giá trị tối đa cỉa pixel trên ảnh. Khi các pixel được biểu diễn

bởi 8 bit, thì giá trị của nó là 255. Trường hợp tổng quát, khi tín hiệu được biểu diển
bởi B bits trên một đơn vị lấy mẫu,

= 2B-1. Với ảnh màu với 3 giá trị RGB

trên 1 pixel, các tính toán cho PSNR tương tự ngoại trừ việc tính MSE là tổng của 3

giá trị (tính trên 3 kênh màu) chia cho kích thước của ảnh và chia cho 3.
Giá trị thông thường của PSNR Trong lossy ảnh và nén video nằm từ 30 đến
50 dB, giá trị càng cao thì càng tốt. Giá trị có thể chấp nhận được khi truyền tín hiệu
không dây có tổn thất khoảng từ 20 dB đến 25 dB.
1.5. Các hệ màu cơ bản
1.5.1. Hệ màu RBG

Mô hình màu RBG sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lá
cây và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo ra
thành các màu khác. Từ viết tắt RBG trong tiếng anh có nghĩa là ánh sáng bổ sung.

SV:

8

Lớp:


Đồ án tốt nghiệp đại học

Hình 1. 2 Hệ màu RGB
Cũng lưu ý rằng mô hình RGB tự bản thân có không định nghĩa thế nào là
“đỏ”, “xanh lá cây” và “xanh lam” một cách chính xác, vì thế với cùng các gí trị
như nhau của RGB có thể mô tả các màu tương đối khac nhau trên các thiết bị khác
nhau có cùng một mô hình màu. Trong khi chúng cùng chia sẻ một mô hình màu
chung, không gian màu thực sự của chúng là dao động một cách đáng kể.
Một trong những ứng dụng phổ biến nhất của mô hình RGB là việc hiển thị
màu sắc trong các ống tia âm cực, màn hình tinh thể lỏng hay màn hình plasma,
chẳng hạn như màn hình máy tính hay tivi. Mổi điểm ảnh trên màn hình có thể được
thể hiện trong bộ nhớ máy tính như là các giá trị độc lập của màu đỏ, xanh lá cây và

xanh lam. Các giá trị này được chuyển đổi thành các cường độ và gửi tới màn hình.
Bằng việc sử dụng các tổ hợp thích hợp của các cường độ ánh sáng đỏ, xanh lá cây
và xanh lam, màn hình có thể tái tạo lại phần lớn các màu trong khoảng đen và
trắng. Các phần cứng hiển thị điển hình được sử dụng cho các màn hình máy tính
trong năm 2003 sử dụng tổng cộng 24 bit thông tin cho mỗi điểm ảnh (trong tiếng
anh thông thường được biết đến như bits per pixel hay bpp). Nó tương ứng với mỗi
8 bit cho màu đỏ, xanh lá cây và xanh lam, tạo thành một tổ hợp 256 các giá trị có
thể, hay 256 mức cường độ cho mỗi màu. Với hệ thống như thế, khoảng 16,7 triệu
màu rời rạc có thể tái tạo.
Khi biểu diễn dưới dạng số, các giá trị RGB trong mô hình 24 bpp thông
thường được ghi bằng cặp ba số nguyên giữa 0 và 255, mỗi số đại diện cho cường
độ của màu đỏ, xanh lá cây, xanh lam trong trật tự như thế nào. Số lượng màu tối đa
sẽ là 256*256*256 hay 16.777.216 màu.

SV:

9

Lớp:


Đồ án tốt nghiệp đại học

1.5.2. Hệ màu CMYK

Hình 1. 3 Hệ màu CMYK
CMYK là không gian màu được sử dụng phổ biến trong nghà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 = Megenta: hồng xẫm, 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 giữa ba 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
nghà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, chữ
K ở đây là để ý hiệu màu đen (Black).
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ệ màu 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
1.5.3 Hệ màu HSV
HSV là hệ 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, dựa vài 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

SV:

 10 

Lớp:


Đồ án tốt nghiệp đại học

độ 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.


Hình 1. 4 Hệ màu HSV
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à màu đen tới lại màu
đỏ.

Hình 1. 5 Hình tròn biểu diễn màu sắc (Hue)
Theo như cách biểu diễn không gian màu theo hình trụ như trên, đi từ giá trị
độ sáng (V) được biểu diển bằng cách đi từ dưới đáy hình trụ lên và nằm trong
khoảng 0 – 1. Ở đáy hình trụ V có giá trị 0, là tốt nhất và trên đỉnh hình trụ là độ
sáng lớn nhất (V=1). Đi từ tâm hình trụ ra mặt trụ là giá trị bão hòa của màu sắc (S).
S có giá trị từ 0 – 1. S = 0 ứng với tâm hình trụ là chỗ màu sắc là nhạt nhất. S = 1 ở
ngoài mặt trụ, là nơi mà giá trị màu sắc là đậm đặc nhất.
Như vậy với mỗi giá trị (H, S,V) sẽ cho ta một màu sắc mà ở đó mô tả đầy đủ
thông tin về màu sắc, độ đậm đặc và độ sáng của màu đó.

SV:

 11 

Lớp:


Đồ án tốt nghiệp đại học

1.6. Kết luận
Chương 1 đã trình bày về cơ sở xử lý ảnh, bao gồm khái niệm, nguồn gốc xử
lý ảnh, các ứng dụng và các vấn đề cơ bản của xử lý ảnh, ngoài ra còn đề cập đến ba
hệ màu thông dụng trong việc số hóa ảnh, các lý thuyết cơ bản này là cần thiết và là

tiền đề cho các bước tiếp theo trong đồ án. Cấu trúc của một hệ thống xử lý ảnh và
các vấn đề liên quan sẽ được trình bày trong chương 2

SV:

 12 

Lớp:


Đồ án tốt nghiệp đại học

CHƯƠNG 2. CẤU TRÚC CỦA MỘT HỆ THỐNG XỬ LÝ
ẢNH VÀ CÁC VẤN ĐỀ LIÊN QUAN
2.1. Ngôn ngữ lập trình C# và phần mềm Microsoft Visual Studio
C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Mirosoft,
là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng
theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft
phát triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân
bằng giữa C++, Visua Basix, Delphi và Java.
C# được thiết kế chủ yếu bởi Anders Hejblsberg, kiến trúc sư phàn mềm nổi
tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.
C#, theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất
đến .NET Framework mà tất cả các chương trình .NET chạy, và nó phụ thuộc mạnh
mẽ vào Framework này. Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy
bỏ bởi trình dọn rác Gacbage – Collector(GC), và nhiều kiểu trừu tượng khác chẳng
hạn như class, delegate, interface, exception, …. Phản ánh rõ ràng những đặc trưng
của .NET runtime.
2.1.1. Đặc trưng của C#









C# là một ngôn ngữ đơn giản:
 C# loại bỏ được một vài sự phức tạp và rối rắm của ngôn ngữ C++ và
Java.
 C# khá giống C/C++ về diện mạo, cú pháp, biểu thức, toán tử.
 Các chức năng của C# được lấy trực tiếp từ các ngôn ngữ C/C++ nhưng
được cải tiến để ngôn ngữ đơn giản hơn.
C# là ngôn ngữ hiện đại:
 Xử lý ngoại lệ.
 Thu gom bộ nhớ tự động.
 Có những kiểu dữ liệu mở rộng.
 Bảo mật mã nguồn.
C# hỗ trợ tất cả các đặc tính của ngôn ngữ hướng đối tượng:
 Sử đóng gói (encapsulation).
 Sự kế thừa (inheritance).
 Đa hình (polymorphism).
C# là ngôn ngữ mạnh mẽ và mềm dẻo
 Với ngôn ngữ C#, chúng ta chỉ bị giới hạn ở chính bản thân chúng ta.
Ngôn ngữ này không đặt ra những ràng buộc lên những việc có thể làm.

SV:

 13 


Lớp:


Đồ án tốt nghiệp đại học



 C# được sử dụng cho nhiều dự án khác nhau như: tạo ra ứng dụng xử lý
văn bản, ứng dụng đồ họa, xử lý bảng tính, thậm chí tạo ra những trình biên
dịch cho các ngôn ngữ khác.
 C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn những từ khóa
dùng để mô tả thông tin, nhưng không vì thế mà C# kém phần mạnh
mẽ. Chúng ta có thể tìm thấy rằng ngôn ngữ này có thể sử dụng để
làm bất cứ nhiệm vụ nào.
C# là ngôn ngữ hướng đối tượng
 Mã nguồn của C# được viết trong Class (lớp). Những Class này chứa các
Method ( phương thức) thành viên của nó.
 Class (lớp) và các Method (phương thức) thành viên của nó có thể được
sử dụng lại trong những ứng dụng hay chương trình khác.
 C# mang đến sức mạnh của C++ cùng với sự dễ dàng của ngôn ngữ
Visual Basic.

2.1.2. Ưu nhược điểm của C# so với C/C++
C# được kế thừa những ưu điểm của C/C++, bỏ đi những dư thừa không cần
thiết gây khó khăn cho người sử dụng:








Câu lệnh C# đơn giản, ít từ khóa.
Tính năng Debug rất thuận tiện.
Ngôn ngữ C# được đánh giá là dễ học, kết hợp nhiều ưu điểm của các
ngôn ngữ lập trình hướng đối tượng Java và C++. Do đó ngôn ngữ C#
đang được ưa chuộng nhất.
Ngôn ngữ C# là cơ sở để phát triển các ứng dụng Windows Form,
ASP.NET, Wed Service…
Hỗ trợ nhiều thư viện hàm có sẵn giúp cho người lập trình lấy hàm dễ
dàng và thuận tiện.

Tuy nhiên, C# lại có nhược điểm là chỉ có thể chạy được trên nền Windows và
.NET framework. Vì vậy, nó hạn chế phạm vi các ứng dụng của C#.
2.1.3. Giới thiệu về thư viện xử lý ảnh Aforge và các hàm được sử dụng.
Aforge là một framework C#, được thiết kế dành cho những nhà phát triển và
nghiên cứu về các lĩnh vực thuộc về hệ thống Thị giác máy tính ( Computer
Vision), và trong các lĩnh vực Trí tuệ nhân tạo. Cụ thể như xử lí hình ảnh, mạng nơ
tron, các thuật toán di truyền, robot…

SV:

 14 

Lớp:


Đồ án tốt nghiệp đại học

Thị giác máy tính ( Computer Vision), đúng như tên gọi mà người ta gắn cho

chúng, giống như thị giác con người vậy. Nếu như bằng cặp mắt của mình, con
người có thể thu nhận hình ảnh từ môi trường xung quanh, biết được màu sắc của
vật, hình dáng của vật và vô số thông tin khác để có những phản ứng, hành động
trong môi trường sống thì thị giác của máy tính cũng vậy, chỉ có điều cặp mắt của
máy tính giờ đây được thay bằng các thiết bị điện tử như camera, sẻo hồng ngoại
chẳng hạn,….. Bằng hệ thống cảm biến này, máy sẽ thu thập thế giới đa chiều và
lưu giữ những gì thu thập được dưới dạng ảnh số. Những ảnh này sau đó được xử
lý, phân tích và trích chọn ra những thông tin cần thiết giúp máy hiểu được nó
đang nhìn tháy gì và phải làm gì.
Để phục vụ cho việc xử lý ảnh, thư viện Aforge đã đưa ra nhiều hàm cơ bản
nhằm đơn giản hóa các công việc xử lý phức tạp, giảm bớt độ lớn cũng như độ
phức tạp của hệ thống. Đồng thời cũng mang lại sự thoải mái cho người lập trình,
giúp họ thực hiện nhanh hơn trong môi trường thân thiện. Sau đây sẽ là các hàm cơ
bản sẽ thực hiện trong chương trình.
Hàm ResizeBilinear: Là hàm dùng để thay đổi kích cỡ của ảnh đầu vào. Đối
với công việc xử lý ảnh, đồng bộ ảnh đầu vào là vô cùng quan trọng vì hệ thống
không chỉ tiếp nhận ảnh từ một nguồn duy nhất mà nó có thể thu thập nguồn dữ
liệu từ nhiều nguồn khác nhau, vì thế mà các kích cỡ cũng khác nhau. Khi đưa vào
hệ thống, kích cỡ này phải thống nhất để hệ thống xử lý. Do đó ffaya là bước đầu
tiên quan trọng đối với hệ thống xử lý ảnh.
Hàm GrayScale: Là hàm dùng để chuyển một ảnh từ hệ màu RGB tành ảnh
xám. Tác dụng của việc làm xám ảnh đó chính là để đưa ảnh về dạng xám, dạng
mà mỗi điểm ảnh chỉ được biểu diễn bằng một tham số duy nhất, sau đó chúng ta
có thể đi vào các bước tiếp theo để nâng cao chất lượng ảnh.
Hàm ThresolDifferent: Là hàm có nhiệm vụ các định những điểm kahcs biệt
giữa 2 ảnh dựa vào một ngưỡng được thiết lập. Đây là một việc vô cùng hữu ích
trong việc xác định chuyển động của vật thể hay việc tìm kiếm khu vực khác nhau.
Hàm Opening: Hàm này có nhiệm vụ loại bỏ các đối tượng có kích thước nhỏ,
không đáng kể và chỉ giữ lại các đối tượng có kích thước lớn. Hàm này chỉ áp dụng
trên ảnh nhị phân.


SV:

 15 

Lớp:


Đồ án tốt nghiệp đại học

Hàm Closing: Là hàm có nhiệm vụ khô phục, điền đầy vào các vật thể không
liền khối lại với nhau, giúp ta không loại bỏ đi các vật thể có khả năng đang tìm
kiếm. Hàm cũng chỉ áp dụng cho ảnh nhị phân.
Hàm Histogram Equalization: Là hàm cân bằng xám cho ảnh.
2.2. Phần mềm lập trình và mô phỏng MATLAB
MATLAB là một môi trường tính toán số và lập trình, được thiết kế bởi công
ty MathWorks. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay
biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với
những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. MATLAB
giúp đơn giản hóa việc giải quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ
lập trình truyền thống như C, C++, và Fortran.

Hình 2. 1 Giao diện Matlab
MATLAB được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh,
truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài
chính, hay tính toán sinh học. Với hàng triệu kĩ sư và nhà khoa học làm việc
trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn
ngữ của tính toán khoa học.
MATLAB là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để
giải các bài toán về kỹ thuật. Nó tích hợp được việc tính toán, thể hiện kết quả,

cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng

SV:

 16 

Lớp:


Đồ án tốt nghiệp đại học

với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng
dụng sau đây:







Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường.
Cho phép lập trình tạo ra những ứng dụng mới.
Cho phép mô phỏng các mô hình thực tế.
Phân tích, khảo sát và hiển thị dữ liệu.
Với phần mềm đồ hoạ cực mạnh.
Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran
2.3. Các tập lệnh cơ bản trong matlab
1.Lệnh ANS
a) Công dụng: (purpose)
Là biến chứa kết quả mặc định.

b) Giải thích: (Description)
Khi thực hiện một lệnh nào đó mà chưa có biến chứa kết quả, thì
MATLAB lấy biến ANS làm biến chứa kết quả đó.
c) Ví dụ: (Example)
2-1
ans = 1
2.Lệnh CLOCL
a) Công dụng :
Thông báo ngày giờ hiện tại.
b) Cú pháp :
c = clock
c) Giải thích:
Để thông báo dễ độc ta dùng hàm fix.
d) Ví dụ:
c = clock
c=
1.0e+003*
2.0010 0.0040 0.0200 0.0030 0.0420 0.501

SV:

 17 

Lớp:


Đồ án tốt nghiệp đại học

c = fix(clock)
c = 2001


4

20

3

43

3

3. Lệnh COMPUER
a) Công dụng :
Cho biết hệ điều hành của máy vi tính đang sử dụng matlab.
b) Cú pháp :
Computer
[c,m] = computer
c) Giải thích:
c: chứa thông báo hệ điều hành của máy.
m: số phần tử của ma trận lớn nhất mà máy có thể làm việc được với
matlab.
d) Ví dụ :
>>[c,m]= computer
c = PCWIN
m = 2.1475e+0.09
4. Lệnh DATE:
a) Công dụng:
Thông báo ngày tháng năm hiện tại
b) Cú pháp:
s = date

c) Ví dụ:
>> s = date
s = 20-Apr-2001
5. Lệnh CD:
a) Công dụng:
Chuyển đổi thư mục làm việc.

SV:

 18 

Lớp:


Đồ án tốt nghiệp đại học

b) Cú pháp:
cd
cd diretory
cd..
c) Giải thích:
cd: cho biết thư mục hiện hành.
diretory: đường dẫn đến thư mục muốn làm việc.
cd..chuyển đến thư mục cấp cao hơn 1 bậc.
6. Lệnh CLC
a) Công dụng:
Xóa cửa sổ lệnh.
b) Cú pháp:
clc
c) Ví dụ:

clc, for i:25, home, A = rand(5), end.
7. Lệnh CLEAR
a) Công dụng:
Xóa các đề mục trong bộ nhớ.
b) Cú pháp:
clear
clear name
clear name1 name2 name3
clear functions
clear variables
clear mex
clear global

SV:

 19 

Lớp:


Đồ án tốt nghiệp đại học

clear all
c) Giải thích:
clear: xóa tất cả các biến khỏi vùng làm việc.
clear name: xóa các biến hay hàm được chỉ ra trong name.
clear functions: xóa tất cả các hàm trong bộ nhớ.
clear variables: xóa tất cả các biến ra khỏi bộ nhớ.
clear mex: xóa tất cả các tập tin .mex ra khỏi bộ nhớ.
clear: xóa tất cả các biến chung.

clear all: xóa tất cả các biến, hàm, và các tập tin .mex khỏi bộ nhớ. Lệnh
này làm cho bộ nhớ trống hoàn toàn.
8. Lệnh DELETER
a) Công dụng:
Xóa tập tin và đối tượng đồ họa.
b) Cú pháp:
deleter filename
deleter (n)
c) Giải thích:
filename : tên tập tin cần xóa.
n: biến chứa đối tượng đồ họa cần xóa. Nếu đối tượng là một cửa sổ thì
cửa sổ sẽ bị đóng lại và bị xóa.

9. Lệnh DEMO
a) Công dụng:
Chạy chương trình mặc định của matlab.
b) Cú pháp:
demo
c) GIải thích:

SV:

 20 

Lớp:


Đồ án tốt nghiệp đại học

demo: là chương trình có sẵn trong matlab, chương trình này minh họa

một số chức năng trong Matlab.
10. Lệnh DIARY
a) Công dụng:
Lưu vùng thành file trên đĩa.
b) Cú pháp:
diary filename
c) Giải thích:
filename: tên của tập tin.
11. Lệnh DIR
a) Công dụng:
Liệt kê các tập tin và thư mục.
b) Cú pháp:
dir
dir name
c) Giải thích:
dir: liệt kê các tập tin và thư mục có trong thư mục hiện hành.
dir name: đường dẫn đến thư mục cần liệt kê.
12. Lệnh DISP
a) Công dụng:
Trình bày nội dung của biến (x) ra màn hình
b) Cú pháp:
disp (x)
c) Giải thích:
x: là tên của ma trận hay là tên của biến chứa chuỗi ký tự, nếu trình bày
trực tiếp chuỗi ký tự thì chuỗi ký tự được đặt trong dấu ‘’.
d) Ví dụ:

SV:

 21 


Lớp:


Đồ án tốt nghiệp đại học

>>num = (‘Matlab’)
num = matlab
>> disp(num)
Matlab
>>num = [2001]
num = 2001
>>disp(num)
2001
>>num = ‘PHAM QUOC TRUONG’
num = PHAM QUOC TRUONG
13. Lệnh ECHO
a) Công dụng:
Hiển thị hay không hiển thị dòng lệnh đang thi hành trong file *.m.
b) Cú pháp:
echo on
echo off
c) Giải thích:
on: hiển thị dòng lệnh.
off: không hiển thị dòng lệnh.
14. Lệnh FORMAT
a) Công dụng:
Định dạng kiểu hiển thị của các con số.
Cú pháp


Giải thích

Ví dụ

Forma short

Hiển thị bốn con số sau
3.1416
dấu chấm.

Format long

Hiển thị 14 con số sau 3.14159265358979

SV:

 22 

Lớp:


Đồ án tốt nghiệp đại học

dấu chấm.
Format rat

Hiển thị dạng phân số của
355/133
phần nguyên nhỏ nhất.


Format +

Hiển thị số dương hay âm

+

Bảng 2. 1 các cú pháp, giải thích. Ví dụ lệnh FORMAT
15. Lệnh HELP
a) Công dụng:
Hướng dẫn cách sử dụng các lệnh trong Matlab.
b) Cú pháp:
help
help topic
c) Giải thích:
help: hiển thị vắn tắt các mục hướng dẫn.
topic: tên lệnh cần được hướng dẫn.
16. Lệnh HOME
a) Công dụng:
Đem con trỏ về đầu vùng làm việc.
b) Cú pháp:
home

17. Lệnh LENGTH
a) Công dụng:
Tính chiều dài của vectơ.
b) Cú pháp:
l =length(x)

SV:


 23 

Lớp:


Đồ án tốt nghiệp đại học

c) Giải thích:
l: biến chứa chiều dài vector.
d) Ví dụ:
Tính chiều dài của vector x.
x = [0 1 2 3 4 5 6 7 8 9]
l = length(x)
l = 10
>> x = [ 01 09 77,20 04 2001]
x=
1 9 77 20 4 2001
>>l = length (x)
l=6
18. Lệnh LOAD
a) Công dụng:
Nạp file từ đĩa vào vùng làm việc.
b) Cú pháp:
load
load filename
load filename.extension
c) Giải thích:
load: nạp file matlab.mat
load filename: nạp filename.mat
load filename.extension: nạp file filename.extension

Tập tin này phải là tập tin dạng ma trận có nghĩa là số cột của hàng dưới
phải bằng số cột của hàng trên. Kết quả ta được một ma trận có số cột và
hàng chính là số cột và hàng của tập tin văn bản trên.
19. Lệnh LOOKFOR

SV:

 24 

Lớp:


Đồ án tốt nghiệp đại học

a) Công dụng:
Hiển thị tất cả các lệnh có liên quan đến topic.
b) Cú pháp:
lookfor topic
c) Giải thích:
topic: tên lệnh cần được hướng dẫn.
20. Lệnh PACK
a) Công dụng:
Sắp xếp lại bộ nhớ trong vùng làm việc .
b) Cú pháp:
pack
pack filename
c) Giải thích:
Nếu như khi sử dụng matlab máy tính xuất hiện thông báo “ Out of
memory” thì lệnh pack có thể tìm thấy một số vùng nhớ bị trống mà
không cần phải xóa bớt các biến.

Lệnh pack giải phóng không gian bộ nhớ cần thiết bằng cách nén thông
tin trong vùng nhớ xuống cực tiểu. Vì matlab quản lý bộ nhớ bằng
phương pháp xếp chồng nên các đoạn chương trình Matlap có thể làm
cho vùng nhớ bị phân mảnh. Do đó sẽ có nhiều vùng nhớ còn trống
nhưng không đủ để chứa các biến lớn mới.
Lệnh pack sẽ thực hiện :
+ Lưu tất cả các biến len đĩa trong một tập tin tạm thời là pack.tmp.
+ Xóa tất cả các biến và hàm có trong bộ nhớ.
+ Lấy lại các biến từ tập tin pack.tmp.
+ Xóa tập tin tạm thời pack.tmp.
Kết quả là trong vùng nhớ các biến được gộp lại hoặc nén lại tối đa nên
không bị lãng phí bộ nhớ.

SV:

 25 

Lớp:


×