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

MÔ PHỎNG NHẬN DIỆN màu sắc dùng matlab (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 (299.47 KB, 18 trang )

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


MỤC LỤC

DANH MỤC CÁC HÌNH VẼ


Trang 3/17

CHƯƠNG 1.

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

1.1 Giới thiệu chung
Nhận dạng màu sắc dùng matlab là chương trình giúp người dùng phân biệt được
các màu như: đỏ, xanh lá và xanh dương với các màu khác, trong phần mềm matlab
trên hệ màu RGB . Khi khởi động chương trình matlab phần mềm sẽ hiện ra một
cửa sổ, cửa số đó nhận video trực tuyế từ camera, người dùng đưa các vật thể có
màu sắc có màu đỏ, xanh lá, xanh dương phần mềm sẽ thông báo cho người dung
biết các màu sắc nhận dạng được.
1.2 Yêu cầu về chương trình mô phỏng nhận diện màu sắc
• Tìm hiểu về ảnh số
• Tìm hiểu thư viện xử lý ảnh Digital Image Processing trên Matlab
• Tìm hiểu dãy thuật nhận dạng màu sắc trên nền Matlab, thư viện Digital
Image Processing trên Matlab.
• Viết phần mềm mô phỏng nhận diện màu sắc của vật thể từ cacmera trên nền
Matlab.
1.3 Tổng quan về xử lý ảnh
1.1.1 Khái niện xử lý ảnh


Xử lý ảnh là phần của khoa học và công nghệ. Xử lý ảnh là một
ngành khoa học mới mẻ so với các ngành khoa học khác nhưng tốc
độ phát triển của xử lý ảnh rất vượt bậc, nhiều trung tâm nghiên
cứu, ứng dụng, thuộc về lĩnh vực máy tính chuyên dụng riêng cho
xử lý ảnh.
Xử lý ảnh là một chương trình liên quan đến nhiều lĩnh vực, và cần nhiều
kiến thức cơ sở khác nhau nên người nghiên cứu xử lý ảnh cần phải
trang bị các khiến thức như: xử lý tín hiệu chung, biến đổi Fourier, biến
đổi Laplace, khái niệm về tích chập ngoài những phép biến đổi trên

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


Trang 4/17

chúng ta còn có mạng nơ rong nhân tạo để hỗ trợ cho quá trình phân
tích và nhận dạng.

Nhận ảnh từ

Tiền xử lý

Chọn điểm

bên ngoài

ảnh

ảnh


Hệ thống quyết định
Hậu xử lý
Xuất kết quả
ảnh

và kết luận
Lưu trữ

Hình 1-1: Sơ đồ các bước trong xử lý ành

1.4 Những vấn đề cơ bản trong hệ thống xừ lý ảnh
1.1.2 Khái niệm cơ bản về ảnh số
Ảnh số là tập hợp hữu hạn nhiều phần tử điểm ảnh với mức xám phù hợp để tạo nên
ảnh gần giống với ảnh thật. Số điểm ảnh là thành phần xác định độ phân giải của
ảnh. Ảnh có độ phân giải càng cao sẽ thể hiện rõ nét nó trở nên thực tế và sắc nét
hơn.
1.1.1.1 Điểm ảnh (Picture Element)
Một Pixel hay còn gọi là điểm ảnh là phần tử của ảnh số có toạ độ (x, y) với mức độ
xám hoặc màu nhất định. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh.
1.1.1.2 Độ phân giải
Độ phân giải ảnh là lượng thông tin được chứa trong một tập tin ảnh kỹ thuật số và
nó sẽ hiển thị trên các thiết bị hoặc được in ra, thông thường được đo bằng pixel.
Sao cho mắt người có thể nhìn thấy ảnh một cách liên tục, độ phân giải của ảnh sẽ
được phân bố theo hay chiều x và y trong không gian.

-

1.1.3 Phân loại ảnh
Ảnh màu: gồm 2 loại
+ Hệ màu RGB: gồm 3 màu Red, Green, Blue được biễu diễn bằng 1 byte.

Ảnh RGB thường có giá trị 24bit. P(x,y) = (R,G,B).
+ Hệ màu CMY: là hệ màu bù cho hệ màu RGB

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


Trang 5/17

CMY = (1, 1, 1) – (R, G, B)
-

Ảnh nhị phân: giá trị xám của ảnh được biểu diễn giá trị bằng 1 hoặc 0. Mỗi
điểm ảnh được biểu diễn bằng 1 bit.

-

Ảnh xám: ảnh xám có giá trị nằm trong khoảng từ [0, 255] mỗi pixel trong
ảnh xám được biểu diễn bằng 1 byte.

CHƯƠNG 2.

NỘI DUNG ĐỀ TÀI MÔ PHỎNG NHẬN DIỆN MÀU SẮC

1.5 Sơ đồ khối
Input video từ camera

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


Trang 6/17


Nhận các vật có màu
sắc

Nhị phân hóa

Đỏ, xanh, xanh dương
0

1
Xuất ra kết quả

Hình 2-1: Sơ đồ giải thuật

1.6 Phương pháp nhận diện
Phương pháp được chia thành bốn phần:
• Input từ camera
• Nhận dạng các vật có màu sắc từ camera
• Nhị phân hóa hình ảnh
• Xuất ra kết quả
1.1.4 Input video từ camera
Video được input vào từ những camera kỹ thuật số.
Các vật có các màu sắc được đưa vào camera

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


Trang 7/17

Bước tiền xử lý được dùng để làm tăng tốc độ xử lý của của video làm tăng độ

tương phản và giảm nhiễu trong video.
1.1.5 Nhận các vật có các màu sắc
Camera sẽ nhận các vật được người dùng đưa vào. Chương trình bắt đầu phân tích
với dãy thuật lả dùng ảnh xám trừ ảnh gốc trừ những vùng có các màu đỏ, xanh lá,
xanh dương.
1.1.6 Nhị phân hóa
Các hình ảnh trong video được lọc bằng bộ lọc để tạo ra một hình ảnh bằng cách
tính toán mức ngưỡng
Tìm các giá trị nhỏ nhất và lớn nhất của pixel từ video
Quá trình này chuyển tất cả pixel của video sang dạng 0-1 và làm cho các bước xử
lý sau dễ dàng hơn.
Khi đó các màu đỏ, xanh lá, xanh dương được ráng giá trị ở mức 1. Còn lại tất cả
các màu khác ở mức 0.
Chương tình sẽ xuất ra các giá trị ở mức 1 được phân tích ra màn hình.
1.1.7 Xuất kết quả
Nhận dạng và cho ra kết quả các vật có các màu sắc như: đỏ, xanh lá và xanh dương
từ các vật bất kì mang những màu sắc trên

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


Trang 8/17

CHƯƠNG 3.

MÔ PHỎNG VÀ KẾT QUẢ MÔ PHỎNG

1.7 Giao diện chương trình

Hình 3-1: Giao diện chương trình Matlab

1.8 Input video từ camera

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


Trang 9/17

Hình 3-2: Camera input

1.9 Các vật đưa vào camera để nhận diện

Hình 3-3: Các vật có màu sắc đưa vào cho camera nhận diện
1.10 Kết quả mô phỏng

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


Trang 10/17

Hình 3-4: Các màu sắc được nhận diện

CHƯƠNG 4.

KẾT LUẬN

1.11 Ưu điểm
• Chương trình Matlab có giao diện đơn giản giúp người dùng thao tác một
cách dễ dàng trên giao diện của chương trình.
• Chương trình mô phỏng nhận diện màu sắc trên Matlab xử lý nhanh chóng
xuất ra kết quả.

• Màu sắc nhận diện được đúng theo yêu cầu đã đề ra.
1.12 Nhược điểm
• Do sử dụng camera nên khoảng cách nhận diện có giới hạn.
• Phụ thuộc vào điều kiện môi trường và ánh sáng
• Chỉ nhận diện được các màu trên nền RGB.

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


Trang 11/17

TÀI LIỆU THAM KHẢO
[1] Lương Mạnh Bá, Nguyễn Thanh Thuỷ. Nhập môn xử lý ảnh số. Nhà xuất bản .
Nhà xuất bản Khoa học và Kỹ thuật, 2003.
[2] Nguyễn Kim Sách. Xử lý ảnh và Video số. Nhà xuất bản Khoa học và Kỹ thuật,
1997.
[3] Võ Đức Khánh, Hoàng Văn Kiếm. Giáo trình xử lý ảnh số. Nhà xuất bản Đại
học Quốc gia Thành phố Hồ Chi Minh.

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


Trang 12/17

PHỤ LỤC A
redThresh = 0.24;
greenThresh = 0.05;
blueThresh = 0.15;
vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_640x480',
'ROI', [1 1 640 480], ...

'ReturnedColorSpace', 'rgb');
vidInfo = imaqhwinfo(vidDevice);
hblob = vision.BlobAnalysis('AreaOutputPort', false, ...
'CentroidOutputPort', true, ...
'BoundingBoxOutputPort', true', ...
'MinimumBlobArea', 600, ...
'MaximumBlobArea', 3000, ...
'MaximumCount', 10);
hshapeinsRedBox = vision.ShapeInserter('BorderColor', 'Custom', ...
'CustomBorderColor', [1 0 0], ...
'Fill', true, ...
'FillColor', 'Custom', ...
'CustomFillColor', [1 0 0], ...
'Opacity', 0.4);
hshapeinsGreenBox = vision.ShapeInserter('BorderColor', 'Custom', ... %
Set Green box handling
'CustomBorderColor', [0 1 0], ...
'Fill', true, ...
'FillColor', 'Custom', ...
'CustomFillColor', [0 1 0], ...
'Opacity', 0.4);
hshapeinsBlueBox = vision.ShapeInserter('BorderColor', 'Custom', ... %
Set Blue box handling
'CustomBorderColor', [0 0 1], ...
'Fill', true, ...
'FillColor', 'Custom', ...
'CustomFillColor', [0 0 1], ...
'Opacity', 0.4);
htextinsRed = vision.TextInserter('Text', 'Red : %2d', ... % Set text for
number of blobs

'Location', [5 2], ...
'Color', [1 0 0], ... // red color
'Font', 'Courier New', ...
'FontSize', 14);
htextinsGreen = vision.TextInserter('Text', 'Green : %2d', ... % Set text
for number of blobs
'Location', [5 18], ...
'Color', [0 1 0], ... // green color
'Font', 'Courier New', ...
'FontSize', 14);
htextinsBlue = vision.TextInserter('Text', 'Blue : %2d', ... % Set text
for number of blobs
'Location', [5 34], ...
'Color', [0 0 1], ...
'Font', 'Courier New', ...
'FontSize', 14);
htextinsCent = vision.TextInserter('Text', '+ X:%4d, Y:%4d',
'LocationSource', 'Input port', ...

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


Trang 13/17

'Color', [1 1 0],
'Font', 'Courier New', ...
'FontSize', 14);
hVideoIn = vision.VideoPlayer('Name', 'Final Video',
'Position', [100 100 vidInfo.MaxWidth+20 vidInfo.MaxHeight+30]);
nFrame = 0;

%% Processing Loop
while(nFrame < 300)
rgbFrame = step(vidDevice);
rgbFrame = flipdim(rgbFrame,2);
diffFrameRed = imsubtract(rgbFrame(:,:,1), rgb2gray(rgbFrame));
diffFrameRed = medfilt2(diffFrameRed, [3 3]);
binFrameRed = im2bw(diffFrameRed, redThresh); diffFrameGreen =
imsubtract(rgbFrame(:,:,2), rgb2gray(rgbFrame));
diffFrameGreen = medfilt2(diffFrameGreen, [3 3]); binFrameGreen =
im2bw(diffFrameGreen, greenThreshdiffFrameBlue =
imsubtract(rgbFrame(:,:,3), rgb2gray(rgbFramediffFrameBlue =
medfilt2(diffFrameBlue, [3 3]); binFrameBlue = im2bw(diffFrameBlue,
blueThresh); [centroidRed, bboxRed] = step(hblob, binFrameRed);
centroidRed = uint16(centroidRed); [centroidGreen, bboxGreen] =
step(hblob, binFrameGreen); centroidGreen = uint16(centroidGreen);
[centroidBlue, bboxBlue] = step(hblob, binFrameBlue); centroidBlue =
uint16(centroidBlue); rgbFrame(1:50,1:90,:) = 0; vidIn =
step(hshapeinsRedBox, rgbFrame, bboxRed); vidIn = step(hshapeinsGreenBox,
vidIn, bboxGreen);
vidIn = step(hshapeinsBlueBox, vidIn, bboxBlue);
for object = 1:1:length(bboxRed(:,1)) centXRed = centroidRed(object,1);
centYRed = centroidRed(object,2);
vidIn = step(htextinsCent, vidIn, [centXRed centYRed], [centXRed-6
centYRed-9]);
end
for object = 1:1:length(bboxGreen(:,1)) centXGreen =
centroidGreen(object,1); centYGreen = centroidGreen(object,2);
vidIn = step(htextinsCent, vidIn, [centXGreen centYGreen], [centXGreen-6
centYGreen-9]);
end

for object = 1:1:length(bboxBlue(:,1centXBlue = centroidBlue(object,1);
centYBlue = centroidBlue(object,2);
vidIn = step(htextinsCent, vidIn, [centXBlue centYBlue], [centXBlue-6
centYBlue-9]);
end
vidIn = step(htextinsRed, vidIn, uint8(length(bboxRed(:,1))));
vidIn = step(htextinsGreen, vidIn, uint8(length(bboxGreen(:,1
vidIn = step(htextinsBlue, vidIn, uint8(length(bboxBlue(:,1))));
step(hVideoIn, vidIn);
nFrame = nFrame+1;
end
%% Clearing Memory
release(hVideoIn); release(vidDevice);
clear all;
clc;

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


Trang 14/17

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


Trang 15/17

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


Trang 16/17


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


Trang 17/17

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


Trang 18/17

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



×