1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ỨNG DỤNG xử lý ẢNH để ĐỊNH HƯỚNG DI CHUYỂN ĐÚNG LINE (có code bên dưới)

22 301 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 1,82 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ỨNG DỤNG xử lý ẢNH để ĐỊNH HƯỚNG DI CHUYỂN ĐÚNG LINE (có code bên dưới) ỨNG DỤNG xử lý ẢNH để ĐỊNH HƯỚNG DI CHUYỂN ĐÚNG LINE (có code bên dưới) ỨNG DỤNG xử lý ẢNH để ĐỊNH HƯỚNG DI CHUYỂN ĐÚNG LINE (có code bên dưới)

Trang 1

ĐỒ ÁN 3

ỨNG DỤNG XỬ LÝ ẢNH ĐỂ ĐỊNH HƯỚNG DI CHUYỂN ĐÚNG LINE

Trang 2

DANH MỤC HÌNH ẢNH VII DANH MỤC TỪ VIẾT TẮT VIII

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1

1.1 GIỚI THIỆU 1

1.2 MỤC TIÊU ĐỀ TÀI 1

1.3 HƯỚNG TÌM HIỂU 1

CHƯƠNG 2 NỘI DUNG ĐỀ TÀI 2

2.1 ẢNH KỸ THUẬT SỐ 2

2.1.1 Khái niệm 2

2.1.2 Tính chất 2

2.2 PIXEL (PICTURE ELEMENT – ĐIỂM ẢNH) 2

2.3 PHÂN LOẠI ẢNH SỐ 2

2.4 MỨC XÁM CỦA ẢNH (GRAY) 3

2.5 CHUYỂN GIÁ TRỊ ẢNH MÀU SANG MỨC GRAY 3

2.6 LỌC ẢNH SỐ 3

2.7 ĐIỂM ẢNH LÂN CẬN 3

2.8 LỌC BIÊN ẢNH BẰNG PHƯƠNG PHÁP ROBERTS 4

2.9 THUẬT TOÁN NHẬN DẠNG TRONG XỬ LÝ ẢNH 5

CHƯƠNG 3 SƠ ĐỒ KHỐI VÀ MÔ PHỎNG MATLAB 7

3.1 SƠ ĐỒ KHỐI: 7

3.2 LƯU ĐỒ GIẢI THUẬT 8

3.3 HÌNH ẢNH CẦN XỬ LÝ VÀ NGUYÊN LÝ HỆ THỐNG 9

3.4 KẾT QUẢ MÔ PHỎNG 10

CHƯƠNG 4 KẾT LUẬN VÀ NHẬN XÉT 12

4.1 KẾT LUẬN 12

4.2 NHẬN XÉT 12

4.3 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 12

Trang 3

TÀI LIỆU THAM KHẢO 13 PHỤ LỤC 14

Trang 4

HÌNH 2-1: CÔNG THỨC VÀ MẶT NẠ LỌC ROBERTS, PREWITT VÀ

SOBEL [1] 4

HÌNH 2-2: XÁC ĐỊNH ĐƯỜNG THẲNG BẰNG ĐỒ THỊ XY [2] 5

HÌNH 2-3: XÁC ĐỊNH ĐƯỜNG THẲNG QUA ĐỒ THỊ ΡΘ [2] 6

HÌNH 3-1: SƠ ĐỒ KHỐI HỆ THỐNG 7

HÌNH 3-2: LƯU ĐỒ GIẢI THUẬT 8

HÌNH 3-3: ẢNH CẦN XỬ LÝ VÀ ĐỊNH HƯỚNG 9

HÌNH 3-4: ẢNH ĐÃ CHUYỂN MỨC GRAY VÀ LỌC BIÊN 10

HÌNH 3-5: ẢNH ĐÃ XỬ LÝ 10

HÌNH 3-6: KẾT QUẢ VÀ ĐỀ XUẤT KHẮC PHỤC 11

Trang 5

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

DIM Digital Image Processing

GIF Graphic Interchange Format

JPEG Joint Photo - Graphic Experts Group

Pixel Picture Element

PNG Portable Network Graphic

RGB Red Green Blue

Trang 6

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu

- Trong bối cảnh công nghệ ngày càng phát triển mạnh mẽ như hiệnnay, việc ứng dụng các thuật toán xử lý ảnh ngày càng phổ biếntrong cuộc sống

- Tùy vào mục đích nghiên cứu và sử dụng, chúng ta có những thuậttoán xử lý hình ảnh khác nhau, từ hình ảnh trắng đen cho đến ảnhmàu Ví dụ như nhận diện biển số xe, nhận diện gương mặt…

- Trong đó, thuật toán Roberts và Hough có thể giúp chúng ta xácđịnh những đường biên, đường thẳng Nhờ vậy, ta có thể ứng dụng

để định hướng cho các vật thể hay xe di chuyển chính xác hơn, ko

bị lệch khi đi trên đường

1.2 Mục tiêu đề tài

- Mục tiêu của đề tài là viết một chương trình code bằng ngôn ngữMatlab để xử lý một bức ảnh Qua đó, thu thập thông tin và xử lýcác thông số Cuối cùng, nhờ vào các thuật toán để xác định hướng

đi của vật thể lệch trái hay phải, hay vẫn đang đi đúng hướng

1.3Hướng tìm hiểu

- Tìm hiểu ảnh kỹ thuật số

- Chuyển giá trị ảnh màu sang mức Gray

- Tìm hiểu phương pháp tìm biên ảnh Roberts

- Tìm hiểu thuật toán xác định đường thẳng Hough

- Nghiên cứu giải thuật, xử lý thông số và đưa ra kết quả trongMatlab

Trang 7

ĐỒ ÁN 3 Trang 2/17

CHƯƠNG 2 NỘI DUNG ĐỀ TÀI

2.1Ảnh kỹ thuật số

2.1.1 Khái niệm

- Trong Matlab, ảnh kỹ thuật số thường được biểu diễn bằng 1 ma trận 2 chiều, trong đó mỗi phần tử của ma trận tương ứng với 1 pixel của ảnh

2.1.2 Tính chất

- Ảnh kỹ thuật số được đặc trưng bởi cường độ màu và cường độảnh, trong đó:

 Cường độ màu: biểu thị cho cường độ màu của 1 điểm ảnh trong

không gian, biểu diễn thông qua bảng màu hoặc mã Gray

 Cường độ ảnh: là không gian ảnh số cảm biến quang học đọc

được, thường là giá trị hai chiều, ba chiều hoặc có thể là nhiềuhơn Những không gian này dùng để biểu diễn cho 1 điểm ảnhtrong 1 ảnh được biểu diễn bao nhiêu chiều không gian

2.2Pixel (Picture Element – điểm ảnh)

- Là 1 phần tử ảnh số tại tọa độ (x, y)

2.3Phân loại ảnh số

- Có bốn kiểu ảnh trong Matlab:

 Ảnh chỉ số (Indexed images): biểu diễn bởi 2 ma trận, 1 matrận dữ liệu ảnh x và 1 ma trận màu map

 Ảnh độ sáng (Intensity images): biểu diễn bởi 1 ma trận 2chiều, giá trị mỗi phần tử cho biết độ sáng (hay mức xám) củađiểm ảnh đó

 Ảnh nhị phân (Binary images): cũng được biểu diễn bởi 1 matrận 2 chiều nhưng thuộc kiểu logic

Ứng Dụng Xử Lý Ảnh Để Định Hướng Di Chuyển Đúng Line

Trang 8

 Ảnh RGB (RGB images): biểu diễn bởi ma trận ba chiều m x

n x 3; với m x n là kích thước ảnh theo pixels

2.4Mức xám của ảnh (Gray)

- Là kết quả của sự biến đổi 1 giá trị độ sáng của 1 điểm ảnh thành 1 giátrị nguyên dương, thông thường là trong khoảng [0, 255] tương ứng 8bit, tùy giá trị điểm ảnh Với 0 là giá trị màu đen, 255 là giá trị màutrắng

- Thang giá trị mức xám thông thường: 16, 32, 64, 128, 256

2.5Chuyển giá trị ảnh màu sang mức Gray

- Công thức chuyển giá trị ảnh màu sang mức Gray:

Igray- scale(m, n) = α.Icolour(n, m, r) + β.Icolour(n, m, g) + γ Icolour(n, m, b)

2.8Lọc biên ảnh bằng phương pháp Roberts

- Trong xử lý ảnh Matlab, có 3 phương pháp chính để lọc biên ảnh:

 Phương pháp Roberts

Trang 9

ĐỒ ÁN 3 Trang 4/17

 Phương pháp Prewitt

 Phương pháp Sobel

- Trong đề tài này phương pháp lọc biên Roberts được sử dụng để xử lýảnh, do ưu điểm của phương pháp này là cách tính toán đơn giản,nhanh chóng

- Roberts dựa trên mặt nạ lọc là ma trận 2x2 để lọc đường biên của ảnh

số trong không gian hai chiều

Hình 2-1: Công thức và Mặt nạ lọc Roberts, Prewitt và Sobel [1]

- Tuy nhiên, khuyết điểm của phương pháp Roberts là khả năng lọcnhiễu chưa tốt so với Prewitt và Sobel

2.9Thuật toán nhận dạng trong xử lý ảnh

- Trong phần mềm Matlab, đặc biệt là trong xử lý ảnh số, để nhận dạngmục tiêu có nhiều cách khác nhau Tuy nhiên, trong đề tài này, mụctiêu cần nhận dạng là đường Line trên đường

Ứng Dụng Xử Lý Ảnh Để Định Hướng Di Chuyển Đúng Line

Trang 10

- Đường Line trên đường là những đường thẳng, do đó thuật toán nhậndạng đường thẳng Hough được sử dụng.

- Thuật toán Hough là kỹ thuật có thể dùng để tách các đặc điểm của 1hình dáng cụ thể trong 1 ảnh nhị phân

- Thuật toán Hough cho đường thẳng sử dụng khoảng cách và góc lệchcủa tiếp tuyến tới đường thẳng để xác định thông số Sau đó xử lý cácthông số này để xác định đường thẳng

- Công thức xác định thông số trong thuật toán Hough có 2 cách:

 b = - a xi + yi ;

Với (xi,, yi) là tọa độ các điểm ảnh cần nhận dạng

- Tuy nhiên, cách này có khuyết điểm là tọa độ x và y khi có giá trị quálớn sẽ khó tính toán, xác định trên trục tọa độ

Hình 2-2: Xác định đường thẳng bằng đồ thị xy [2]

 ρ = x cos θ + y sin θ

Với: θ = [0, 360] hay [0, 2π],

ρ = [-D, D]

Trang 11

ĐỒ ÁN 3 Trang 6/17

Hình 2-3: Xác định đường thẳng qua đồ thị ρθ [2]

- Đồ thị ρθ khắc phục được khuyết điểm của đồ thị xy

- Các điểm nếu nằm trên cùng đường thẳng thì các đường cong của cácđiểm đó sẽ cắt nhau tại 1 điểm

Ứng Dụng Xử Lý Ảnh Để Định Hướng Di Chuyển Đúng Line

Trang 12

CHƯƠNG 3 SƠ ĐỒ KHỐI VÀ MÔ PHỎNG MATLAB3.1Sơ đồ khối:

Hình 3-4: Sơ đồ khối hệ thống

Trang 13

ĐỒ ÁN 3 Trang 8/17

3.2Lưu đồ giải thuật

Hình 3-5: Lưu đồ giải thuật

Ứng Dụng Xử Lý Ảnh Để Định Hướng Di Chuyển Đúng Line

Trang 14

3.3Hình ảnh cần xử lý và nguyên lý hệ thống

- Nhập hình ảnh cần xử lý

- Matlab lấy thông tin của ảnh, chuyển giá trị màu sang mức Gray Sau

đó, đặt điều kiện để giảm nhiễu và áp dụng phương pháp tìm biênRoberts

- Tiếp theo, sử dụng thuật toán Hough cho đường thẳng Vẽ các trục cốđịnh ngang và dọc để định hướng di chuyển, xác định vùng xử lý

- Tính toán giá trị trung bình của từng vùng xử lý

- Cuối cùng, xác định giá trị trung bình toàn vùng xử lý

- Kết luận và đề xuất hướng khắc phục nếu có

Hình 3-6: Ảnh cần xử lý và định hướng

Trang 15

ĐỒ ÁN 3 Trang 10/17

Trang 16

Hình 3-9: Kết quả và đề xuất khắc phục

- Chương trình đã xử lý được yêu cầu đề ra

- Đề xuất ra được phương án khắc phục nếu hướng đi bị lệch

Trang 17

ĐỒ ÁN 3 Trang 12/17

- Tính được các giá trị trung bình

- Xuất được kết quả và cách khắc phục nếu có sai lệch hướng đi

4.2Nhận xét

- Sau quá trình mô phỏng, code chương trình vẫn chưa tối ưu nhất

- Trong thực tế, quá trình xử lý có thể lâu hơn tính toán lý thuyết

- Hình ảnh vẫn còn đơn giản và chưa có nhiều chướng ngại vật

- Khả năng lọc nhiễu vẫn còn chưa tốt

4.3Hướng phát triển đề tài

- Chương trình có thể sử dụng các phương pháp lọc nhiễu và xácđịnh biên phức tạp hơn, qua đó đạt được kết quả chính xác hơn

- Nhờ vậy, có thể áp dụng để truyền tải hình ảnh từ xe đang dichuyển về để xử lý và định hướng di chuyển hiệu quả hơn, ứngdụng tốt hơn vào đời sống thực tế

Ứng Dụng Xử Lý Ảnh Để Định Hướng Di Chuyển Đúng Line

Trang 18

TÀI LIỆU THAM KHẢO

Tiếng Anh:

[1] Fundamentals of Digital Image Processing: A Practical Approach withExamples in Matlab, by Chris Solomon and Toby Breckon, page 85 – 109.[2] Digital Image Processing Using Matlab, by Gonzalez, page 334 – 401.[3] Olivier Lézoray, ”Theory and Pratice” Image Processing and Analysiswith Graphs, page 1-21

Trang 19

ĐỒ ÁN 3 Trang 14/17

PHỤ LỤC

clear all ;

clc;

-

% -tic;

f = imread( '1.png' ); % Doc anh

info = imfinfo( '1.png' ); % lay thong tin anh, xac dinh toa

do XY

img = rgb2gray(f); % chuyen gia tri mau sang muc gray

edge_Roberts = edge(img, 'Roberts' );

% ap dung Roberts xac dinh bien anh

BW_out = bwareaopen(imfill(edge_Roberts, 'holes' ),3);

% khong hien thi diem anh khong du 4 pixel

figure, imshow(BW_out); veraxis = [(info.Width)/2,info.Height];

% tim gia tri cua truc giua

[H,T,R] = hough(BW_out);

% dung dinh luat Hough tim a va b

P = houghpeaks(H,10, 'threshold' ,ceil(0.1*max(H(:))));

% xac dinh diem dau duong line

% -% Dung dinh luat Hough tim cac diem

lines = houghlines(BW_out,T,R,P, 'FillGap' ,20, 'MinLength' ,30);

% ve lines trong anh

[0,veraxis(1,2)], 'LineWidth' ,2, 'Color' , 'red' );

% ve truc thang dung

xystruct(k).vector = [0 sixhorizone(k,1); info.Width

sixhorizone(k,1)]; % toa do 'x' 6 truc

% -% Ve Line cua Hough

for k = 1: length(lines) % Dao toa do xy de line theo 1 huong

Trang 20

plot(xy(1,1),xy(1,2), 'x' , 'LineWidth' ,2, 'Color' , 'yellow' );

% ve diem dau duong line

len = norm(lines(k).point1 - lines(k).point2);

elseif ((xy(1,2) > sixhorizone(2,:)) && (xy(1,2) <=

sixhorizone(3,:))) && ((xy(1,1) > 0) && (xy(1,1) <= info.Width)) khung2(stt_frame2,:) = xy;

stt_frame2 = stt_frame2 + 1;

elseif ((xy(1,2) > sixhorizone(3,:)) && (xy(1,2) <=

sixhorizone(4,:))) &&((xy(1,1) > 0) && (xy(1,1) <= info.Width)) khung3(stt_frame3,:) = xy;

stt_frame3 = stt_frame3 + 1;

elseif ((xy(1,2) > sixhorizone(4,:)) && (xy(1,2) <=

sixhorizone(5,:))) && ((xy(1,1) > 0) && (xy(1,1) <= info.Width)) khung4(stt_frame4,:) = xy;

stt_frame4 = stt_frame4 + 1;

Trang 21

ĐỒ ÁN 3 Trang 16/17

elseif ((xy(1,2) > sixhorizone(5,:)) && (xy(1,2) <=

sixhorizone(6,:))) && ((xy(1,1) > 0) && (xy(1,1) <= info.Width)) khung5(stt_frame5,:) = xy;

Trang 22

disp( 'Dang lech ben phai' );

disp( 'Be lai sang trai mot goc:' );

disp(goclech1);

elseif x > 0 && x <info.Width/2

khoangcach2 = trucgiua - x;

goclech2 = round(atand(khoangcach2/(info.Height-x))); disp( 'Dang lech ben trai' );

disp( 'Be lai sang phai mot goc:' );

disp(goclech2);

else disp( 'Dang di dung huong' );

end

toc

Ngày đăng: 09/03/2018, 19:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w