Tải bản đầy đủ (.pdf) (111 trang)

luận văn tốt nghiệp đề tài đèn giao thông thông minh

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.73 MB, 111 trang )

ĐÈN GIAO THÔNG THÔNG MINH
Chương 1
GIỚI THIỆU TỔNG QUÁT VỀ ĐỀ TÀI TỐT NGHIỆP
1.1. Giới thiệu về các ứng dụng cXC xử lý ảnh trong thực tế:
Các đề tài nghiên cứu về xử lý ảnh từ năm 1964 đến nay không ngừng phát
triển. Chúng được ứng dụng trong kỹ thuật nhằm giải quyết các vấn đề về nâng cao
chất lượng thông tin ảnh.
Xử lý ảnh ngày nay được ứng dụng trong nhiều lĩnh vực.
Trong y học, các thuật toán được ứng dụng để nâng cao độ tương phản, mã hóa
các mức sáng thành các màu để nội suy ảnh X-quang…Các nhà thiên văn học, dùng
kỹ thuật này nhằm tách các nhiễu thu được từ vệ tinh, tăng độ tương phản cho ảnh
chụp để nhìn thấy được các chi tiết mà mắt thường khó phân biệt được. Trong vật lý,
kỹ thuật máy tính nâng cao chất lượng ảnh được ứng dụng trong các lĩnh vực như:
plasmas, microscopy điện tử…
Đối với ngành điện tử tự động thì xử lý ảnh được ứng dụng trong thực tế như:
máy nhìn công nghiệp để kiểm tra sản phẩm, nhận dạng mục tiêu trong quân sự, nhận
dạng vân tay, nhận dạng đồng xu, nhận dạng mặt người, cảm biến màu, theo dõi mật
độ giao thông…
Có thể thấy các đề tài liên quan đến xử lý ảnh, cũng như các ứng dụng của nó
trong thực tế thì vô cùng rộng lớn. Tuy nhiên, không phải bất cứ một ứng dụng nào
của xử lý ảnh khi đưa vào thực tế cũng dễ dàng, việc làm một ứng dụng hoạt động tốt
đó là cả một vấn đề khó khăn bởi các yếu tố ngoại cảnh rất dễ tác động đến công việc
xử lý ảnh như: không gian thay đổi, ánh sáng thay đổi, độ tương phản của ảnh cần xử
lý với môi trường không gian là không cao…
1.2. Nội dung đề tài và các ứng dụng đã có trước đó:
1.2.1. Nội dung đề tài:
• Yêu cầu của đề tài tốt nghiệp bao gồm việc thiết kế và chế tạo hoàn thiện mô
hình tại một ngã tư có hai chiều lưu thông, có mô hình đèn giao thông và
camere được bố trí hợp hợp lý.
• Mô hình là những chiếc xe được đặt tại hai chiều luư thông của một ngã tư, ta
sắp xếp những chiếc xe đó ứng với nhiều trường hợp như : mật độ thưa, mật


độ bình thường, và mật độ cao, để ta xử dụng công cụ matlab chụp lại và đư ra
kết quả phân tích. Sau khi phân tích tín hiệu sẽ được gửi xuống để thực hiện
đặt thời gian cho đèn giao thông.
• Tìm hiểu truyền thông máy tính với vi xử lý
• Tạo giao diện người dùng.
Trang 1
ĐÈN GIAO THÔNG THÔNG MINH
• Tìm hiểu các thuật toán xử lý ảnh, bắt ảnh trên Matlab.
• Phải thực hiện được giải thuật và chưong trình để đánh giá được mật độ lưu
thông thông qua công cụ matlab.
• Tránh được các yếu tố gây nhiễu từ môi trường ngoài như: độ tương phản
giữa xe và nền đường không cao.
Sơ đồ hệ thống:
1.2.2. Lý do chọn và làm đề tài “ Đèn giao thông thông minh ”:
Như đã nói, cùng với sự phát triển không ngừng của xử lý ảnh thì hàng loạt
các sản phẩm ra đời được ứng dụng rộng rãi trong thực tế. Các đề tài liên quan đến
xử lý ảnh trong giao thông đường bộ cũng như đường thủy ngày càng được quan tâm.
Nhóm “Mắt thần” gồm các thành viên đang nghiên cứu và công tác tại Trung tâm
Công nghệ Mô phỏng – Học viện kỹ thuật quân sự (Bộ Quốc phòng). Với đề tài: “Hệ
thống ghi vé tự động và quản lý phương tiện sử dụng công nghệ xử lý và nhận dạng
ảnh” (đã đoạt Giải nhì trong cuộc thi trí tuệ Việt Nam 2006). Cùng theo đó nhóm
cũng đã và đang nghiên cứu hệ thống quản lý trật tự giao thông, thống kê được lưu
lượng phương tiện qua lại trên đường, đo tốc độ, chụp lại hình phương tiện vi phạm
trật tự giao thông như: vượt đèn đỏ, đi sai làn đường.
Đề tài của Lê Quốc Anh, đến từ Viện tin học Pháp ngữ Hà Nội (dự thi TTVN
2005) với đề tài “Giải pháp giám sát giao thông”. Tác giả đã mô tả hệ thống có khả
năng: biết được số lượng xe trên đường, vận tốc xe, chiều dài hàng đợi khi xảy ra ách
tắc…
Thế giới đã phát triển các chương trình đếm xe và tính vận tốc tự động bằng
máy tính từ lâu như hệ thống giám sát giao thông bằng công nghệ xử lý ảnh của

phòng thí nghiệm máy tính của hãng IBM, hệ thống đếm xe bằng xử lý ảnh máy tính
của trường đại học Berkeley (Mỹ)…
Trong thực tế chúng ta thấy, tại các ngã tư đèn xanh đèn đỏ có những lúc phía
bên đường chỉ có vài phương tiện tham gia giao thông. Phía bên còn lại thì mật độ
lưu thông thì quá cao nhưng vẫn phải chờ cho thời gian đèn xanh đỏ được đặt cố định
rồi mới được lưu thông tiếp nhiều khi còn gây ra ách tắc giao thông do những người
không y thức nóng lòng muốn qua đường nhanh. Vì vậy đề tài nghiên cứu “ Đèn giao
thông thông minh “ được đưa ra với mục đích đánh giá được mật độ lưu thông tại các
ngã tư nhằm giải quyết được vấn đề nêu trên. Theo em nghĩ đây là một đề tài hết sức
mới mẻ và thử sức sinh viên.
Do đây là một đề tài mới mẻ và thời gian có hạn nên trong quá trình ngiên cứu
còn gặp rất nhiều khó khăn trong việc xử lý. Em hy vọng rằng đề tài này sẽ được các
bạn sinh viên ham thích và sẽ phát triển để đề tài ngày càng hoàn thiện hơn.
Trang 2
ĐÈN GIAO THÔNG THÔNG MINH
1.3. Khó khăn:
 Ảnh hưởng từ độ tương phản giữa xe và nền đường:
Vì nền đường thì cố định. Nhưng các loại xe lưu thông trên đường thì đa dạng.
Do đó vấn đề là sẽ làm như thế nào nếu như giữa xe và nền đường có màu sắc gần
giống nhau?
Chẳng hạn:
Nếu giữa chiếc xe và không gian quanh nó có độ tương phản cao.

Ví dụ: Xe trắng so với nền đường màu đen (độ tương phản cao).
(a)
(b)
(c)
Hình 1.1 (a) Ảnh chụp từ webcam, (b) ảnh đa cấp xám, (c) ảnh trắng đen
Trang 3
ĐÈN GIAO THÔNG THÔNG MINH

Hình 1.2 Biểu đồ histogram

Ví dụ: Xe đỏ so với nền đường màu đen (Độ tương phản khá cao)
(a)
(b)
Trang 4
ĐÈN GIAO THÔNG THÔNG MINH
(c)
Hình1.3 (a) Hình xe màu đỏ chụp từ webcam, (b) Ảnh xám, (c) Ảnh trắng đen.
Nếu độ tương phản giữa chiếc xe với nền đường là thấp?

Ví dụ: Xe xanh so với nền đường màu đen (độ tương phản thấp):
(a)
(b)
Trang 5
ĐÈN GIAO THÔNG THÔNG MINH
(c)
Hình 1.4 (a) Xe chụp từ webcam, (b) Ảnh đa cấp xám, (c) Ảnh trắng đen
Hình 1.5 Biểu đồ histogram với xe màu xanh, nền đường màu đen.

? Nhận xét:
Từ biểu đồ histogram hình 1.5. Đối với xe màu xanh, nền đường màu đen rõ
ràng có độ tương phản rất thấp (các thành phần histogram hẹp và tập trung ở cuối).
Điều này dẫn tới ảnh sau khi chuyển sang trắng đen hình 1.4 (c) là không tốt. Do đó,
không thể tính diện tích chiếc xe trong trường hợp này.
Nhiễu bởi ánh sáng môi trường:
Ánh sáng sẽ biến thiên theo giờ giấc trong ngày. Hơn nữa, nó còn chịu sự tác động
trực tiếp hoặc gián tiếp từ các đối tượng như: xe vào trạm lúc ban đêm sẽ bật đèn,
người đi đường chiếu đèn vào, đèn đường…
Trang 6

ĐÈN GIAO THÔNG THÔNG MINH
1.3.1. Cách giải quyết:
Về nhiễu ánh sáng: Trong Matlab có hỗ trợ một công cụ để thực hiện việc san bằng
các vùng sáng tối.
I = imread('rice.png');
imshow(I)
se = strel('disk',12);
J = imtophat(I,se);
figure, imshow(J)
K = imadjust(J);
figure, imshow(K)
Trang 7
ĐÈN GIAO THÔNG THÔNG MINH
Giải quyết độ tương phản giữa không gian nền và xe:
Để giải quyết công việc tách xe thì giữa xe và không gian quanh nó phải có độ
tương phản cao.
Các phương pháp đã làm thử:
1. Tách màu
2. Tách biên
Tuy nhiên, cả hai phương pháp đều không thực hiện được vì kết quả của tách
màu và tách biên có tốt hay không là phụ thuộc vào độ tương phản giữa xe và không
gian quanh nó. Đối với những xe có màu sắc tạo nên độ tương phản cao so với nền
đường thì công việc này không gặp khó khăn, nhưng đối với những xe có màu sắc mà
độ tương phản của nó là thấp thì phương pháp này không hiệu quả.
Đối với trường hợp trên ta có cách làm tăng độ tương phản giữa xe và nền
đường bằng cách tạo nền đường sao cho có những vạch trắng xen kẽ những vạch đen,
và cách làm này rất hiệu quả và phù hợp với bố trí nền đường tại ngã tư là những
vạch trắng giảm tốc độ xe.
Hình 1.6 nền đường cho mô hình
Trang 8

ĐÈN GIAO THÔNG THÔNG MINH
Chương 2
GIỚI THIỆU VỀ XỬ LÝ ẢNH VÀ MATLAB
2. Giới thiệu cách thức truy cập thông tin trên help của matlab:
Cài đặt:
Thực hiện cài đặt matlab 7.0 (hoặc 6.5). Có hai đĩa, một đĩa phần mềm chạy
chương trình matlab 7.0 và một đĩa help.
Sử dụng:
Có thể vào help để tìm thông tin, tập lệnh liên quan
 Trực tiếp:
 Trong cửa sổ command windows gõ: help “lệnh hay biểu thức liên
quan”


Ví dụ:
>> help find
 Gián tiếp:
 Vào menu/help/demos
 Demos: một số ví dụ để tham khảo.
 Search: kiếm thông tin liên quan.
2.1. Quá trình xử lý ảnh:
Quá trình xử lý ảnh bắt đầu bằng công việc thu nhận ảnh từ camera hoặc các
sensor bên ngoài.
Sơ đồ của quá trình xử lý:
Hình 2.1 Sơ đồ của
quá trình xử lý ảnh
Trang 9
Camera
Sensor
Thu nhận ảnh

Lưu ảnh
Tiền xử lý ảnh
Phân tích ảnh
Trích chọn đặc
trưng
ĐÈN GIAO THÔNG THÔNG MINH
2.1.1. Thu nhận ảnh:
Thu nhận ảnh có thể sử dụng máy quay (camera), webcam, máy quét (scanner)
…Ảnh thu được có thể là ảnh trắng đen hoặc cũng có thể là ảnh màu. Tuy nhiên, để
có thể xử lý và tính toán các ảnh trên máy tính thì chỉ có ảnh số là đơn giản nhất.
Tùy thuộc vào chất lượng thiết bị thu nhận ảnh, các ảnh sẽ có chất lượng khác
nhau. Điều này ảnh hưởng lớn đến quá trình tiền xử lý ảnh.
Các thiết bị ảnh có thể cho ra các kết quả tương tự hoặc ảnh số cho nên ảnh sau
khi chụp phải được chuyển thành ảnh số (có thể dùng máy scanner để quét lại tấm
ảnh tương tự, để chuyển nó sang ảnh số đưa lên máy tính xử lý).
2.1.2. Quá trình tiền xử lý ảnh:
Đó là quá trình xử lý và nâng cao chất lượng ảnh. Ảnh sau khi thu nhận được
có thể chứa nhiều thông tin không cần thiết như: nhiễu, lòe,…Điều này làm cho ảnh
có dung lượng lớn và có chất lượng không tốt, ảnh hưởng không nhỏ đến quá trình
xử lý ảnh.
Đối với đề tài luận văn thì ảnh sau xử lý phải đạt được các yếu tố như: cân bằng
các mức sáng tối, khử nhiễu, nâng cao độ tương phản.
2.1.3. Quá trình phân tích ảnh:
Phân tích ảnh là quá trình biến đổi ảnh để từ đó đưa ra các đặc trưng quan trọng
của ảnh. Đây là giai đoạn quan trọng nhất của quá trình xử lý ảnh. Các đặc trưng của
tấm ảnh có thể là: đường biên, phân vùng ảnh, hoặc cả hai…
2.1.4. Đặc trưng của ảnh:
Ảnh sau khi qua các bước tiền xử lý và phân tích ảnh sẽ đưa ra các thông số của
đối tượng mà chúng ta cần quan tâm tới. Các thông số này sẽ được tính toán lại để từ
đó chúng ta có thể đưa ra các đặc trưng của tấm ảnh. Chúng ta có thể sử dụng đặc

trưng này để nhận dạng sự khác biệt của: các khuôn mặt người, sản phẩm bị lỗi trong
dây chuyền, nhận dạng biển số xe…
Trong thực tế, quá trình xử lý ảnh thì có nhiều phương pháp làm khác nhau và
vì thế chúng ta sẽ có nhiều thuật toán tìm ra đặc trưng của một tấm ảnh là khác nhau.
Trang 10
ĐÈN GIAO THÔNG THÔNG MINH
2.2. Một số khái niệm về ảnh số:
2.2.1. Cơ sở về màu:
Isaac Newton phát hiện ra rằng, nếu một chùm tia sáng mặt trời đi qua một lăng
kính thì chùm sáng khi qua nó không phải là ánh sáng trắng. Mà nó là một phổ màu
liên tục từ tím tới đỏ.
Ánh sáng là những nguồn năng lượng điện từ trong dãy bước sóng quang phổ từ
400nm đến 700nm.
Phổ màu được chia thành 6 vùng màu: tím, lam, lục, vàng, cam, đỏ. Nếu nhìn
màu đầy đủ thì không có ranh giới giữa các màu kế nhau, mà màu này liền sang màu
khác.
Màu mà mắt người cảm nhận được là do sự phản xạ ánh sáng từ vật thể.
2.2.2. Ảnh RGB:
Ảnh RGB (ảnh màu) hay còn gọi là ảnh “truecolor” do tính trung thực của nó.
Ảnh này được biểu diễn theo một ma trận ba chiều kích thước m x n x 3, với m x n là
kích thước ảnh theo pixels. Ma trận này định nghĩa các thành phần màu red, green,
blue cho mỗi điểm ảnh. Ví dụ: Điểm ảnh ở vị trí (10,5) sẽ có 3 thành phần màu được
xác định bởi các giá trị (10,5,1), (10,5,2) và (10,5,3). Với 1, 2, 3 là tương ứng với các
màu R, G, B.
2.2.3. Ảnh trắng đen, ảnh đa cấp xám:
Ảnh trắng đen chỉ bao gồm hai màu: màu đen và màu trắng. Chúng ta phân sự
biến đổi này thành L mức. Nếu L bằng hai tức chỉ có hai mức là 0 và 1 thì đó là ảnh
trắng đen, hay còn gọi là ảnh nhị phân. Nếu L lớn hơn hai thì ta có ảnh đa cấp xám.
Việc xác định số mức này phụ thuộc vào tiêu chí lượng tử hóa. L thường chọn là 32,
64, 128, 256. Trong đó ảnh đa cấp xám 256 mức là ảnh có chất lượng cao và thường

được chọn.
Với ảnh nhị phân thì mỗi pixel mã hóa trên một bit. Còn ảnh đa cấp xám 256
mức thì mỗi pixel mã hóa trên tám bits.
Chúng ta có thể thấy rõ được nguyên lý của một tấm ảnh màu, cũng như ảnh
trắng đen thông qua một số lệnh trong matlab:
2.2.4. Ví dụ trong matlab về ảnh màu và ảnh trắng đen, đa cấp xám:
%Thực hiện lấy ảnh RGB có sẵn trong máy tính, ảnh được lưu sẵn tại thư mục
%work trong matlab, có path là: C:\ Matlab7.0\Work\file ảnh
>> anh=imread('k.jpg'); %phải có dấu phẩy cuối hàng vì đây là một ma trận
ảnh %có dung lượng lớn.
Trang 11
ĐÈN GIAO THÔNG THÔNG MINH
figure(1), imshow(anh); % trình diễn ảnh màu RGB
Hình 2.2 Hình màu RGB
%Thực hiện tách ma trận màu đỏ ra khỏi ảnh màu RGB
>> goc=anh;
>> goc(:,:,2)=0; %Cho ma trận màu xanh Green bằng không
>> H1=goc;
>> H1(:,:,3)=0; %Cho ma trận màu xanh Blue bằng không
>> figure(2),imshow(H1);
Hình 2.3 Màu R tách từ RGB
Trang 12
ĐÈN GIAO THÔNG THÔNG MINH
%Thực hiện chuyển đổi ảnh màu thành ảnh đa cấp xám, tăng độ tương phản và
chuyển thành ảnh trắng đen.
>> T1=rgb2gray(anh); %chuyển thành ảnh đa cấp xám
>> figure(3),imshow(T1);
>> tuong_phan = imadjust(T1); %tăng độ tương phản
>> figure(4),imshow(tuong_phan);
>>lay_nguong = graythresh(tuong_phan); %lấy ngưỡng theo thuật toán otsu

>> trang_den = im2bw(tuong_phan,lay_nguong); %ảnh trắng đen
>> figure(5),imshow(trang_den);
Hình 2.4 Ảnh đa cấp xám
Hình 2.5 Ảnh trắng đen
Trang 13
ĐÈN GIAO THÔNG THÔNG MINH
2.2.5. Định dạng ảnh:
Ảnh Bitmap (Microsoft Windows Bitmap (*.BMP)):
Là ảnh được định dạng theo chuẩn do Microsoft đưa ra. Với định dạng này,
ảnh được chuyển mã và được lưu lại đầy đủ thông tin. Tuy nhiên, ảnh được định
dạng theo dạng này có dung lượng rất lớn vì nó không được nén.
Ảnh GIF (Graphic Interchanger Format (*.GIF)):
Được định dạng theo chuẩn nén LZW dựa trên sự lặp lại của một nhóm điểm
ảnh thay vì các mã loạt dài như các định dạng khác nên dung lượng lưu trữ nhỏ hơn.
Ảnh GIF thường được dùng để lưu trữ các ảnh đơn giản và ít có sự chuyển đổi màu
giữa các vùng ảnh. Chẳng hạn các ảnh đồ họa hay đồ thị, biểu đồ…Tuy nhiên, ảnh
GIF có chất lượng cao, độ phân giải đồ họa cao, có thể hiển thị trên hầu hết các phần
mềm đồ họa.
Ảnh JPEG (Joint Photographic Expert Group (*.JPEG hay *.JPG)):
Ảnh JPEG là chuẩn nén ảnh tĩnh có mất mát, thường được dùng để lưu trữ các
ảnh màu hoặc các ảnh đa mức xám khi không có yêu cầu cao về ảnh giải nén phải
giống hoàn toàn ảnh gốc. Dung lượng của ảnh JPEG thường rất nhỏ. Người dùng có
thể chủ động dung lượng của ảnh lưu trữ bằng cách chọn tỉ lệ nén nhiều hay ít. Ảnh
lưu với định dạng JPG có thể lưu được 24 bits/pixel dữ liệu màu (tương đương 16
triệu màu).
2.3. Các phương pháp xử lý ảnh trong quá trình tiền xử lý:
2.3.1. Thay đổi độ tương phản:
Trong ảnh số, mỗi điểm ảnh có một giá trị độ sáng khác nhau để mắt người có thể
nhìn thấy và cảm nhận. Tuy nhiên, nếu hai đối tượng có cùng độ sáng nhưng đặt trên
hai nền ảnh khác nhau thì cho chúng ta các cảm nhận khác nhau.

Khái niệm độ tương phản được đưa ra để biểu diễn sự thay đổi độ sáng của
đối tượng so với nền, hay độ nổi của điểm ảnh (vùng ảnh) so với vùng nền chứa nó.
Ảnh với độ tương phản thấp có thể do điều kiện sáng không đủ, không đều, hoặc sự
tương đối giống nhau về màu sắc, ánh sáng giữa đối tượng và không gian quanh đối
tượng hoặc do tính không tuyến tính hay biến động nhỏ của bộ cảm nhận ảnh.
Để điều chỉnh lại độ tương phản của ảnh, ta điều chỉnh lại biên độ trên toàn
dải hay trên dải có giới hạn bằng cách biến đổi tuyến tính đầu vào (dùng hàm biến
đổi là hàm tuyến tính) hay phi tuyến (hàm mũ hay hàm logarit).
Thay đổi độ tương phản dùng trong matlab:
>> anh=imread('race_02.jpg');
>> figure(1),imshow(anh);
>> T1=rgb2gray(anh);
>> figure(3),imshow(T1);
Trang 14
ĐÈN GIAO THÔNG THÔNG MINH
>> tuong_phan = imadjust(T1); %tạo nên tương phản với imadjust
>> figure(4),imshow(tuong_phan);
>> lay_nguong = graythresh(tuong_phan);
>> trang_den = im2bw(tuong_phan,lay_nguong);
>> figure(5),imshow(trang_den);
Hình 2.6 Ảnh chưa tăng độ tương phản
Hình 2.7 Ảnh sau khi tăng độ tương phản
Công thức chung cho lệnh imadjust (đối với tất cả các ảnh xám, màu…) là:
>> J = imadjust(I,[low_in; high_in], [low_out; high_out],gamma);
Trong đó:
 I: là ma trận ảnh gray.
 [low_in; high_in]: là giá trị mức xám ở ảnh ban đầu. Nếu tương ứng ta nhập
thông số là [0 1] thì mặc định là kiểu uint8, [0 1] tương ứng với mức lượng tử
của tấm ảnh là từ [0 255], với uint16 thì [0 1] tương ứng với [0 65535].
 [low_out; high_out]: là giá trị mức xám ở ảnh sau biến đổi. Các giá trị được

chọn của nó nằm trong khoảng [0 1], tương tự như [low_in; high_in].
Gamma:
Nếu gamma nhỏ hơn 1 thì ảnh sau biến đổi phi tuyến với ảnh ban đầu, theo hàm mũ
dạng:
Trang 15
ĐÈN GIAO THÔNG THÔNG MINH
Nếu gamma bằng 1 thì ảnh sau biến đổi sẽ tỉ lệ tuyến tính với ảnh ban đầu
Nếu gamma lớn hơn 1 thì ảnh sau biến đổi phi tuyến với ảnh ban đầu theo hàm mũ
dạng:
Chú ý: Ta có thay đổi các thông số của [low_in; high_in] hoặc [low_out; high_out]
để tạo nên những tấm ảnh âm bản.
Thực hiện với Matlab:
>> T1=rgb2gray(anh); % biến đổi thành ảnh mức xám
>> figure(3),imshow(T1);
>> tuong_phan = imadjust(T1,[0 1],[1 0]); % tạo ảnh âm bản
>> figure(4),imshow(tuong_phan);
Trang 16
ĐÈN GIAO THÔNG THÔNG MINH
>> lay_nguong = graythresh(tuong_phan);
>> trang_den = im2bw(tuong_phan,lay_nguong);
>> figure(5),imshow(trang_den);
>> T2=rgb2gray(anh);
>> figure(6),imshow(T2);
>> tuong_phan = imadjust(T1,[0 0.75],[0 1]);
>> figure(7),imshow(tuong_phan);
Hình 2.8 Ảnh âm bản
Hình 2.9 Ảnh tăng độ tương phản
2.3.2. Làm bằng histogram:
Histogram của một ảnh số với các mức xám nằm trong dải [0, L-1] là một hàm rời
rạc h(r

k
)=n
k
. Trong đó, r
k
là mức xám thứ k và n
k
là số điểm ảnh có mức xám rk.
Trong thực tế, histogram thường được chuẩn hóa bằng cách chia mỗi giá trị của nó
cho tổng số điểm ảnh, ký hiệu là n. Do đó, histogram chuẩn hóa cho bởi p(r
k
)=n
k
/n,
với k=0, 1, 2, …, L-1.
Trang 17
ĐÈN GIAO THÔNG THÔNG MINH

Ví dụ 1:
>> anh=imread('huanrace.jpg');
>> figure(1),imshow(anh);
>> T2=rgb2gray(anh);
>> figure(6),imshow(T2);
>> figure(8),imhist(T2,64); % trình diễn đồ thị histogram
Hình 2.10 Ảnh xám
Hình 2.11 Biểu đồ Histogram
Trang 18
ĐÈN GIAO THÔNG THÔNG MINH

? Nhận xét:

Từ biểu đồ Histogram ta thấy các thành phần Histogram ở vùng sáng và vùng tối dàn
tập trung về hai góc của biểu đồ (vùng tối là có giá trị từ (0 đến 50) tập trung khá
nhiều, vùng sáng từ (200 đến 250) cũng khá nhiều). Điều này chứng tỏ đây là một
tấm ảnh có độ tương phản cao.

Ví dụ 2:
Thực hiện tương tự như trên với một tấm ảnh khác.
Hình 2.12 Ảnh xám
Hình 2.13 Biểu đồ Histogram
Trang 19
ĐÈN GIAO THÔNG THÔNG MINH

? Nhận xét:
Ở biểu đồ này, các thành phần Histogram tập trung hẹp và nằm ở giữa biểu đồ thang
xám. Vì thế, đây là một tấm ảnh có độ tương phản thấp.

Ví dụ 3:
Hình 2.14 Ảnh đa cấp xám
Trang 20
ĐÈN GIAO THÔNG THÔNG MINH
Hình 2.15 Biểu đồ Histogram
Trang 21
ĐÈN GIAO THÔNG THÔNG MINH

? Nhận xét:
Biểu đổ Histogram hình 2.15. Các thành phần histogram tập trung hẹp và bị
phân cực về phía thấp của biểu đồ. Do đó, đây là một tấm ảnh có độ tương phản thấp
và tối.
Trong matlab có hỗ trợ hàm strectchlim. Hàm này tính toán histogram của ảnh
và xác định các giá trị giới hạn của mức xám một cách tự động. Nó trả về một vector

mà ta có thể dùng làm cặp thông số [low_in; high_in] cung cấp cho hàm imadjust
(trong trường hợp mặc định, hàm imadjust sử dụng hàm stretchlim để tạo ra cặp
[low_in; high_in] nếu người sử dụng không cung cấp). Bình thường hàm stretchlim
sẽ lấy giá trị mức xám nằm ở mức 1% và 99% trong vùng biến thiên mức xám của
ảnh. Tuy nhiên, ta cũng có thể thay đổi mở rộng hoặc thu hẹp các giới hạn này bằng
cách cung cấp thêm các thông số tol cho hàm stretchlim. Đó là một vector gồm hai
phần tử thuộc [0 1] cho biết ta sẽ chọn các giới hạn ở mức nào trong vùng biến thiên
mức xám (mặc định là [0.01 0.99]).
>> [low, high]=stretchlim(I, tol)
>> H1=imread('chup_02.png');
>> H1=rgb2gray(H1);
>> figure(3), imshow(H1);
>> l=stretchlim(H1,[0 1]);
>> ans
l =
0.0196
0.9882
2.4. Các phương pháp phát hiện biên ảnh:
Toán tử sobel:
BW = edge(I,'sobel')
>> H1=imread('huanrace.jpg');
>> H1=rgb2gray(H1);
>> figure(3), imshow(H1);
>> BW = edge(H1,' prewitt’);
>> figure(6), imshow(BW);
Trang 22
ĐÈN GIAO THÔNG THÔNG MINH
Hình 2.16 Ảnh ban đầu
Hình 2.17 Ảnh sau khi tách biên với sobel
Trang 23

ĐÈN GIAO THÔNG THÔNG MINH
Ứng dụng với prewitt:
Hình 2.18 Ảnh sau khi tách biên với prewitt
Ngoài hai phương pháp tách biên trên, thì trong matlab còn hỗ trợ một số phương
pháp khác như:
Roberts:
BW = edge(I,'roberts')
BW = edge(I,'roberts',thresh)
[BW,thresh] = edge(I,'roberts', )
Log:
BW = edge(I,'log')
Zerocross:
BW = edge(I,'zerocross',thresh,h)
Canny
BW = edge(I,'canny')
Trang 24
ĐÈN GIAO THÔNG THÔNG MINH
2.5. Matlab với các phép tính ma trận:
• Nhập ma trận:
>>A = [ 1 2 3; 4 5 6 ; 7 8 9]
ans =
1 2 3
4 5 6
7 8 9
• Chuyển một vector hàng thành cột và ngược lại:
>> A'
ans =
1 4 7
2 5 8
3 6 9

• Tìm vị trí các phần tử trong một ma trận:
>> [i,j]=find(A>5)
i =
3
3
2
3
j =
1
2
3
3
Với i là hàng, tương ứng với cột j trong ma trận có giá trị lớn hơn 5.
• Ma trận rỗng: F=[];
• Xóa hàng và cột trong ma trận:
Thực hiện xóa hàng thứ hai.
>> A(:,2)=[]
A =
1 3
4 6
7 9
Trang 25

×