1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ án tốt NGHIỆP MATLAB xử lý ẢNH ỨNG DỤNG TRÊN ô tô

96 1.7K 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

Nội dung

ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ PHẦN A MỞ ĐẦU GVHD : TS. LÊ THANH PHÚC Trang 1 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ 1. ĐẶT VẤ ĐỀ Với xu hướng phát triển của cơ sở hạ tầng và giao thông, mật độ giao thông ngày càng cao. Tính an toàn trên ô tô ngày càng được chú trọng hơn. Kéo theo đó nhiều hệ thống an toàn trên xe ra đời và phát triển giúp giảm thiểu xảy ra tai nạn. Xuất phát từ thực tế trên, đề tài “MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊ Ô TÔ” được nghiên cứu nhằm hỗ trợ cảnh báo cho người lái xe nhận biết được nguy hiểm sắp xảy ra . 2. MỤC TIÊU_NHIỆM VỤ NGHIÊN CỨU Mục đích của nhóm thực hiện là tìm hiểu chương trình ứng dụng phần mềm MATLAB để giao tiếp giữa máy tính và camera nhằm thu nhận hình ảnh và lấy thông tin về đối tượng quan tâm trong hình ảnh để xử lý. Mục đích của đề tài này là sử dụng thuật toán MATLAB để xây dựng một hệ thống an toàn trên xe ô tô nhằm giúp người lái xe có thể tránh được những vụ tai nạn có thể sắp xảy ra. Giúp nâng cao tính an toàn khi tham gia giao thông. 3. ĐỐI TUỢNG VÀ PHẠM VI NGHIÊN CỨU Đối tuợng nghiên cứu bao gồm phần mềm lập trình MATLAB và hình ảnh thu nhận được từ các thiết bị thu hình. Trên cơ sở đó để lập trình và mô phỏng bằng thực nghiệm . 4. ƯƠ G Á G IÊ CỨU Để đề tài được hoàn thành nhóm đã kết hợp nhiều phương pháp nghiên cứu, đặc biệt là phương pháp tham khảo tài liệu sách và tìm hiểu trên internet, từ đó có cơ sở và tìm ra những ý tưởng mới để hình thành đề cương cho đề tài. Trong quá GVHD : TS. LÊ THANH PHÚC Trang 2 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ trình thực hiện chuơng trình, chúng tôi còn kết hợp cả phương pháp quan sát , thực nghiệm và tham khảo ý kiến của các thầy và bạn bè để hoàn thành tốt đề tài này. GVHD : TS. LÊ THANH PHÚC Trang 3 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ PHẦN B CƠ SỞ LÝ THUYẾT GVHD : TS. LÊ THANH PHÚC Trang 4 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G 1 TỒNG QUAN VỀ XỬ LÝ ẢNH VÀ CÁC KHÁI NIỆM CỦA ẢNH TRONG MATLAB I . Tồng quan về xử lý ảnh Xử lý ảnh là một dạng của xử lý tín hiệu trong đó đầu vào là một hình ảnh (các bức ảnh, các khung hình) và đầu ra của quá trình xử lý ảnh có thể là một hình ảnh khác hoặc là một tập chứa các tính chất hoặc tham số liên quan tới hình ảnh đó. Phần lớn các kỹ thuật xử lý ảnh thì thường qui về việc xử lý hình ảnh như là một tín hiệu 2 chiều rồi sử dụng các kỹ thuật xử lý tín hiệu để xử lý nó. II . Các khái niệm 1. Điểm ảnh Gốc của ảnh(ả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ố 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 đ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 đ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 khuôn khổ ảnh hai chiều, mỗi Pixel ứng với cặp tọa độ (x,y). Như vậy, điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (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ề kkhong 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. GVHD : TS. LÊ THANH PHÚC Trang 5 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ 1 pixel Hình 1 : xác định điểm ảnh 2. Độ phân giải của ảnh Độ phân giải (Resolution) 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. Ví dụ : màn hình máy tính có nhiều loại với độ phân giải khác nhau như màn hình CGA (Color Graphic Adaptor) có độ phân giải 320*200 , màn hình VGA (Video Graphic Array) có độ phân giải 1280*800. Rõ ràng màn hình có độ phân giải càng cao thì ta tháy có cảm giác nó mịn, rõ và dễ thấy hơn so với loại có độ phân giải thấp hơn. GVHD : TS. LÊ THANH PHÚC Trang 6 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ 3. Cấu trúc lưu dữ liệu Trong MATLAB, dữ liệu chủ yếu được lưu trữ theo cấu trúc mảng (tập có thứ tự gồm các phần tử số thực hoặc phức). Ảnh trong Matlab cũng được lưu trữ bởi các mảng phần tử với các giá trị lưu trữ có thể là mầu, cường độ… của ảnh. Hầu hết các ảnh được MATLAB lưu trữ dưới dạng các mảng 2 chiều (VD: ma trận). Trong các mảng 2 chiều này, mỗi phần tử tương ứng với một pixel và thường được biểu diễn bởi một điểm trên màn hình máy tính(VD: Một bức ảnh có 500 hàng và 700 cột gồm nhiều điểm mầu khác nhau được lưu trữ bởi một ma trận có kích thước 500x700). Một số bức ảnh, như ảnh mầu đòi hỏi phải được lưu trữ bởi mảng ba chiều. Trong đó, mặt phẳng thứ nhất trong mảng ba chiều này biểu diễn cho cường độ đỏ (red) của phần tử, mặt phẳng thứ hai biểu diễn cho cường độ màu xanh là cây (green) và mặt phẳng còn lại biểu diễn cho cường độ màu xanh da trời (blue) của phần tử. Với việc lưu trữ các ảnh dưới dạng mảng, việc xử lý ảnh với dữ liệu được lưu bởi dạng ma trận nào đều được thực hiện rất thuận tiện. GVHD : TS. LÊ THANH PHÚC Trang 7 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G 2 CÁC KIỂU ẢNH TRONG MATLAB I . Ảnh Index Ảnh được biểu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu). Ma trận có thể là kiểu uint8, uint16 hoặc double. Ma trận màu là một ma trận kích thước m x 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1]. Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng số m màu được sử dụng trong ảnh. Gía trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận màu. Nếu ma trận dữ liệu thuộc kiểu double, giá trị 1 sẽ tương ứng với hàng thứ 1 trong bảng màu, giá trị hai tương ứng với màu ở hàng thứ hai,…Nếu ma trận dữ liệu thuộc kiểu uint8 hoặc uint16, giá trị 0 tương ứng với hàng 1, giá tri 1 tương ứng với hàng 2,…Riêng với kiểu uint16, MATLAB không hỗ trợ đủ các phép toán so với kiểu uint8 nên khi cần xử lý ta cần chuyển sang kiểu dữ liệu uint8 hoặc double bằng các hàm imapprox hoặc im2double. GVHD : TS. LÊ THANH PHÚC Trang 8 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 2 : ảnh index II . Ảnh Grayscale Mỗi ảnh được biểu diễn bởi một ma trận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) của điểm ảnh đó. Ma trận này có thể thuộc một trong các kiểu uint8, uint16, hoặc double. Trong đó giá trị nhỏ nhất (0) tương ứng với màu đen còn giá trị lớn nhất (255 hoặc 65535, hoặc 1 tuỳ kiểu dữ liệu là uint8, uint16, hay double) ứng với màu trắng. Như vậy, ảnh biểu diễn theo kiểu này còn gọi là ảnh “trắng đen” hoặc ảnh gray scale. Hình 3 : ảnh Grayscale GVHD : TS. LÊ THANH PHÚC Trang 9 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ III . Ảnh nhị phân Ảnh được biểu diễn bởi một ma trận hai chiều thuộc kiểu logical. Mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị là 0 (đen) hoặc 1 (trắng). Hinh 4 : ảnh nhị phân IV . Ảnh RGB Ảnh RGB còn gọi là ảnh “truecolor” do tính trung thực của nó. Ảnh này được biểu diễn bởi 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, các phần tử của nó có thể thuộc kiểu uint8, uint16, hoặc double. Ví dụ, điểm ảnh ở vị trí (10,5) sẽ có ba 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). Các file ảnh hiện nay thường sử dụng 8 bit cho một thành phần màu, nghĩa là mất 24 bit cho mỗi điểm ảnh (khoảng 16 triệu màu). GVHD : TS. LÊ THANH PHÚC Trang 10 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 5 : Ảnh RGB GVHD : TS. LÊ THANH PHÚC Trang 11 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G 3 CÁC HÀM XỬ LÝ CƠ BẢN I . Đọc, ghi dữ liệu và xem thông tin của ảnh 1 . Hàm imread Hàm ‘imread’ để nhập một bức ảnh vào trong workspace (không gian làm việc) của Matlab. Lúc này xử lý bức ảnh tương đương với việc xử lý biên được gán cho nó. Cú pháp : A = imread(filename.fmt) [X,map] = imread(filename.fmt) VD: image=imread(‘picture.jpg’); % gán ảnh có tên picture định dang jpg cho biến image, biến image được lưu trong workspace. 2 . Hàm imwrite Hàm ‘imwrite’ chuyển đổi một biến đã được gán cho ảnh thành file ảnh và ghi nhớ file ảnh đó. Cú pháp : imwrite(A,filename,fmt) imwrite(X,map,filename,fmt) VD: imwrite(image,’image.jpg’); % lưu biến image dưới định dạng file ảnh jpg vào thư mục làm việc hiện thời GVHD : TS. LÊ THANH PHÚC Trang 12 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ 3 . Hàm imfonfo Hàm ‘imfonfo’ cho ta xem các thông số của một file ảnh nào đó. Các thông tin được cung cấp bởi hàm ‘imfinfo’ là: filename, filemoddate, filesize, ormatversion, width, height, bitdepth, colortype. Cú pháp : info = imfinfo(filename,fmt) info = imfinfo(filename) II . Các hàm hiển thị ảnh trong Matlab Matlab cung cấp hai hàm hiển thị cơ bản là image và imagesc. Ngoài ra trong IPT cũng có hai hàm hiển thị ảnh khác, đó là imview và imshow. 1 . Hàm imshow Hàm ‘imshow’ cũng tạo một đối tượng đồ họa thuộc loại image và hiển thị ảnh trên một figure. Hàm imshow sẽ tự động thiết lập các giá trị của các đối tượng image, axes và figure để thể hiện hình ảnh. Cú pháp : imshow(A) 2 . Hàm image Hàm ‘image(X,Y,C)’ hiển thị hình ảnh biểu diễn bởi ma trận C kích thước M x N lên trục tọa độ hiện hành. X, Y là các vector xác định vị trí các pixel C(1,1) và C(M,N) trong hệ trục hiện hành. Cú pháp : image(A) GVHD : TS. LÊ THANH PHÚC Trang 13 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ 3 . Hàm imagesc Hàm ‘imagesc’ có chức năng tương tự như hàm image, ngoại trừ việc dữ liệu ảnh sẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành. Cú pháp : imagese(A) 4 . Hàm imview Hàm ‘imview’ cho phép hiển thị hình ảnh trên một cửa sổ riêng, nền Java, gọi là image Viewer. Image Viewer cung cấp các công cụ dò tìm và xác định các giá trị pixel một cách linh hoạt. Cú pháp : imview(A) III . Chuyển đổi giữa các kiểu dữ liệu, kiểu ảnh 1 . Chuyển đổi giữa các kiểu dữ liệu ảnh Matlab cung cấp sẵn các hàm thực hiện chuyển kiểu cho các ma trận biểu diễn ảnh, bao gồm: im2double, im2uint8 và im2uint16. Tuy nhiên, khi thực hiện chuyển kiểu giữa các dữ liệu ảnh cần lưu ý một số điều sau: - Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ liệu dùng it bit hơn thì một số thông tin chi tiết về bức ảnh ban đầu sẽ bị mất. - Không phải lúc nào cũng có thể chuyển đổi kiểu dữ liệu đối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác định một địa chỉ trong bản đồ màu chứ không phải là giá trị màu, do đó không thể lượng tử hóa được. GVHD : TS. LÊ THANH PHÚC Trang 14 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ 2 . Chuyển đổi giửa các kiểu ảnh + Gray2ind : chuyển từ dạng Gray sang indexed. Cú pháp : [X,Map] = gray2ind(I,N) [X,Map] = gray2ind(BW,N) + Im2bw : Tạo một ảnh nhị phân từ một ảnh indexed, grayscale hay ảnh RGB trên cơ sở của ngưỡng ánh sáng . Cú pháp : bw=im2bw(I,level) bw=im2bw(x,map,level) bw=im2bw(rgb,level) + Ind2gray : chuyển từ dạng indexed sang Gray. Cú pháp : i=ind2gray(x,map) + Dither : chuyển các định dạng khác sang dạng nhị phân. Cú pháp : dither(I) + Ind2rgb : chuyển từ dạng indexed sang RGB. Cú pháp : rgb=ind2rgb(x,map) + Mat2gray : Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận bằng cách lấy tỉ lệ dữ liệu . Cú pháp : i=mat2gray(a,[amin amax]) + Rgb2gray : chuyển dạng RGB sang dạng Gray. Cú pháp : i=rgb2gray(rgb) GVHD : TS. LÊ THANH PHÚC Trang 15 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ + Rgb2ind : chuyển dạng RGB sang dạng Indexed. Cú pháp : [x, map]=rgb2ind(rgb,n) IV . Các phép toán số học cơ bản đối với dữ liệu ảnh Các phép toán số học cơ bản trên các dữ liệu ảnh bao gồm các phép cộng, trừ, nhân và chia. Chẳng hạn , trừ ảnh có thể được sử dụng để phát hiện sự khác nhau giữa hai hoặc nhiều ảnh của cùng một cảnh hoặc một vật . Tuy nhiên, Matlab chỉ hỗ trợ các phép toán này trên kiểu double nên cần thực hiện chuyển đổi kiểu trước khi thực hiện. Để giảm bớt thao tác này, trong IPT có cung cấp các hàm thực hiện các phép toán số học trên ảnh mà có thể chấp nhận bất kỳ kiểu dữ liệu ảnh nào và trả về kết quả thuộc cùng kiểu với các toán hạng. Các hàm này cũng xử lý các dữ liệu một cách tự động. - Imabsdiff : z=imabsdiff(x,y) - Imadd : z=imadd(x,y,out_class) - Imcomplement : im2=imcomplement(im) - Imdivide : z=imdivide(x,y) - Imlincomb : z=imlincomb(k1,a1,k2,a2,…,kn,an,k,out_class) - Immultiply : z=immultiply(x,y) - Imsubstract : z=imsubstract(x,y) GVHD : TS. LÊ THANH PHÚC Trang 16 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G 4 CÁC PHÉP BIẾ ĐỔI ẢNH I . Biến đổi Fourier Phép biến đổi Fourier là một biểu diễn của ảnh như là tổng của các hàm mũ phức của biên độ , tần số và pha biến đổi . Biến đổi Fourier chiếm một vai trò quan trọng trong các ứng dụng xử lý ảnh bao gồm : làm giàu ảnh ( hay cải thiện chất lượng ảnh – enhancement ) , phân tích , phục hồi và nén ảnh . - Định nghĩa phép biến đổi Fourier như sau : nếu f(m,n) là một hàm với hai biến không gian độc lập m và n, thì biến đổi Fourier hai chiều của hàm f(m,n) được định nghĩa bởi quan hệ : Biến và là các biến tần số . Hàm được gọi là biểu diễn trong miền tần số của hàm f(m,n) . Nó là một hàm phức tuần hoàn với chu kì 2π. Do tính tuần hoàn, nên và thường được chọn trong khoảng -π đến π . Chú ý rằng F(0,0) là tổng của tất cả các giá trị của f(m,n) .Vì lý do này F(0,0) thường được gọi là thành phần không đổi hoặc thành phần một chiều của biến đổi Fourier . - Biến đổi Fourier ngược được cho bởi công thức : Nói chung , phương trình này có nghĩa rằng f(m,n) có thể được đại diện như là tổng vô hạn của các hàm mũ phức với các tần số khác nhau . Biên độ và pha của thành phần ở tần số được lưu trong GVHD : TS. LÊ THANH PHÚC Trang 17 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ - Để minh hoạ biểu diễn trực quan biến đổi Fourier, ta hãy xem hàm f(m,n) nhận giá trị bằng 1 trong khoảng hình chữ nhật (xem hình) và bằng 0 tại mọi điểm khác . Để đơn giản sơ đồ f(m,n) được coi như một hàm liên tục mặc dù m, n là các biến rời rạc. Hình 6: minh hoạ biểu diễn trực quan biến đổi Fourier - Hình biểu diễn sau đây biểu diễn biên độ của biến đổi Fourier của hàm chữ nhật như trên . GVHD : TS. LÊ THANH PHÚC Trang 18 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 7 : biểu diễn biên độ của biến đổi Fourier - Giá trị đỉnh ở tâm của đồ thị là F(0,0) , đó là tổng của tất cả các giá trị của hàm f(m,n) . Đồ thị cũng chỉ ra rằng có nhiều năng lượng hơn ở vùng tần số ngang so với tần số đứng . Điều này phản ánh sự thực rằng các vùng giao ngang của hàm f(m,n) là các xung hẹp trong khi các vùng giao đứng của hàm này là các xung rộng . Xung hẹp mang nhiều nội dung tần số hơn xung hẹp . Một cách khác để biểu diễn trực quan biến đổi Fourier là hiển thị hàm log như một ảnh : GVHD : TS. LÊ THANH PHÚC Trang 19 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ - Sử dụng hàm lôgarit giúp cho việc nhận rõ đặc tính của biến đổi Fourier ở các vùng mà giá trị gần bằng 0 . Để minh hoạ , hãy xem biểu diễn trực quan các biến đổi Fourier sau : GVHD : TS. LÊ THANH PHÚC Trang 20 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 8 :biểu diễn trực quan các biến đổi Fourier -Biến đổi Fourier trên máy tính là biến đổi Fourier rời rạc ( DFT ) . Có hai lý do chính để sử dụng loại biến đổi Fourier này : + Hàm vào và ra của biến đổi Fourier là các hàm rời rạc , điều này thích hợp cho các thao tác biến đổi trên máy tính . + Có một giải thuật nhanh cho việc tính toán DFT được gọi là biến đổi Fourier nhanh ( FFT ) - Do các dữ liệu trên máy tính được lưu trữ dưới dạng rời rạc, cụ thể là dữ liệu ảnh được tổ chức theo đơn vị pixel nên phép biến đổi Fourier cũng được rời rạc hóa thành biến đổi Fourier rời rạc (DFT). Giả sử hàm f(m,n) 0 trong miền (0 gõ guide cửa sổ GUIDE Quick Start xuất hiện: Hình 28 : Cửa số GUIDE GVHD : TS. LÊ THANH PHÚC Trang 60 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Có thể chọn các mẫu giao diện thiết kế sẵn hay nhấn OK để chọn GUI trống. Sau đây là cửa sổ biên soạn GUI: Hình 27 : Cửa số biên soạn GUIDE Vùng bên trái chứa danh sách thành phần của đối tượng, vùng có ô lưới là vùng hiển thị - nơi đặt các component, bấm chuột trái vào component muốn tạo, sau đó đưa chuột ra vùng layout nơi muốn đặt component, bấm chuột trái dùng kỹ thuật kéo chuột để chọn kích thước component. Các component mà GUI cho phép là:  Axes: vẽ hệ trục. GVHD : TS. LÊ THANH PHÚC Trang 61 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ  Check box: là hộp kiểm tra cho phép đưa vào các chọn lựa khi bấm chuột vào đó.  Edit Text: là hộp văn bản đưa chuỗi ký tự vào đó.  Frame: khung bao một vùng cửa sổ hình.  List box: gồm một văn bản các mục để chọn lựa.  Pop-up menu: menu sổ xuống trình bày một bảng các chọn lựa khi nhấp chuột vào đó.  Push button (nút nhấn): phát sinh một hành động nào đó khi nhấp chuột.  Radio button: tương tự như Check box nhưng chỉ chọn một.  Slider (con trượt): dùng để đưa giá trị vào trong một tầm giới hạn.  Static Text: dòng văn bản dùng để đặt nhãn, tiêu đề, hướng dẫn.  Toggle button (nút bật): giống push button nhưng có hiển thị trạng thái thay đổi mỗi khi nhấn.  Popup Menu: tạo menu. Bấm kép chuột vào component trong vùng layout để soạn tính chất của component, ví dụ bấm kép chuột vào Push button sẽ hiện ra cửa sổ Property Inspector như sau: GVHD : TS. LÊ THANH PHÚC Trang 62 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 28: Cửa sổ thuộc tính Cửa sổ Property Inspector có rất nhiều thuộc tính, sau đây là các thuộc tính cơ bản nhất:  Tag: Tên mà ta gắn cho component, ví dụ pushbutton-start.  BackgroundColor: Màu nền của component.  ForegroundColor: Màu chữ trên component.  FontName, FontAngle, FontSize, FontWeight: Các đặc tính của font chữ trên component.  String: Văn bản hiển thị trên component. Trong trường hợp muốn sử dụng font tiếng Việt ví dụ như VNI-Times ta có thể chọn FontName phù hợp, nhưng thường không thể đánh trực tiếp ký tự có dấu, ta có thể soạn văn bản tiếng Việt trong Word sau đó copy và paste vào string trong Property Inspector, lúc đó các ký tự tiếng Việt sẽ hiện ra GVHD : TS. LÊ THANH PHÚC Trang 63 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ không đúng trên layout editor nhưng khi chạy chương trình thì sẽ hiển thị đúng.  Enable: Cho phép component hoạt động hay không.  Visible: Hiển thị component hay không. Quan trọng nhất đối với các component là callback tức là các hàm con mà file m sẽ gọi khi tác động vào component, ví dụ khi bấm chuột vào pushbutton, togglebutton, di chuyển con trượt của slider hay khi viết văn bản vào EditText rồi bấm Enter. Soạn thảo các callback: ở cửa sổ soạn thảo layout editor nhấp chuột phải vào component muốn soạn thảo sau đó chọn View Callbacks -> callback ta sẽ vào màn hình soạn thảo callback cho component đó (Lưu ý rằng các dòng lệnh sẽ được viết sau dòng “function tên component_Callback (hobject, eventdata, handles)”) Sau khi soạn thảo hoàn tất và lưu, MATLAB sẽ lưu hai file có cùng tên nhưng khác nhau về phần mở rộng: File có phần mở rộng .fig chứa nội dung của giao diện. File có phần mở rộng .m chứa những đoạn mã liên quan đến giao diện. II . Toolbox thu thập hình ảnh (Image Acquisition Toolbox) 1. Nhiệm vụ của Toolbox Image Acquisition Toolbox là tập hợp các hàm của MATLAB có nhiệm vụ thu thập hình ảnh số từ các thiết bị thu hình. Cụ thể là:  Thu thập hình ảnh từ các thiết bị thu hình khác nhau, từ loại chuyên dụng đến loại rẻ tiền như Webcam (giao tiếp USB).  Trình chiếu (preview) luồng dữ liệu video từ thiết bị thu hình. GVHD : TS. LÊ THANH PHÚC Trang 64 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ  Trích hình ảnh từ luồng dữ liệu video.  Thiết lập các callback cho các sự kiện khác nhau.  Chuyển dữ liệu hình ảnh vào không gian workspace của MATLAB để xử lý ảnh tiếp theo. 2 . Các bước thu thập hình ảnh cơ bản với Toolbox Bước 1: Gắn thiết bị thu hình vào máy tính và cài đặt driver điều khiển  Gắn thiết bị thu hình vào máy tính.  Cài đặt driver (trình điều khiển) cho thiết bị (được cho bởi nhà sản xuất).  Xem thử hình ảnh video hiện trên máy tính thông qua phần mềm của nhà sản xuất.  Khởi động MATLAB Bước 2: Chỉ định thông tin phần cứng:  Ta cần chỉ định cho MATLAB biết phần cứng nào dùng để lấy dữ liệu (vì có thể có nhiều camera kết nối với PC). Gõ lệnh imaqhwinfo để biết tên các loại thiết bị có thể dùng. Tên Loại thiết bị ‘coreco’ Thiết bị của công ty coreco ‘DCAM’ Các thiết bị dùng chuẩn IEEE 1394 ‘dt’ Các thiết bị của Data Translation ‘Matrox’ Các thiết bị của hãng Matrox ‘winvideo’ Các thiết bị dùng chuẩn Windows Driver Model (WDM) hoặc Video for Windows (VFW). Bao gồm các loại USB WEBCAM và camera IEEE 1394 GVHD : TS. LÊ THANH PHÚC Trang 65 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Chỉ định thiết bị: Tuỳ vào loại thiết bị (adaptor name), mỗi thiết bị cùng loại gắn vào PC được đánh số ID, thiết bị thứ nhất có deviceID = 1, thiết bị thứ hai có deviceID = 2,… Để liệt kê xem loại winvideo có bao nhiêu thiết bị gắn vào máy, ta cũng dùng lệnh imaqhwinfor với đối số là winvideo >>imaqhwinfo(‘winvideo’) ans = AdaptorD11Name: [1x81 char] AdaptorD11Version: ‘2.1 (R2007a)’ AdaptorName: ‘winvideo’ DeviceIDs: { [1] } DeviceInfo: [1x1 struct] Có một thiết bị với DeviceID là 1. Ta có thể tìm hiểu thêm thông tin về thiết bị này. >>imaqhwinfo(‘winvideo’,1) ans= DefaultFormat: ‘RGB24_320x240’ DeviceFileSupported: 0 DeviceName: ‘USB PC Camera-168’ DeviceID: 1 ObjectConstructor: [1x25 char] SupportedFormats: {1x14 cell} Đây là Webcam đã gắn vào máy để làm đề tài này. Bước 3: Tạo đối tượng đại diện cho luồng dữ liệu video GVHD : TS. LÊ THANH PHÚC Trang 66 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Để tạo luồng dữ liệu video ta dùng lệnh videoinput. Ví dụ: >>vid = videoinput(‘winvideo’,1) Summary of Video Input Object Using ‘USB PC Camera-168’. Acquisition Source(s): input1 is available. Acquisition Parameters: ‘input1’ is the current selected source. 10 frames per trigger using the selected source. ‘RGB24_320x240’ video data to be logged upon START. Grabbing first of every 1 frame(s). Log data to ‘memory’ on trigger. Trigger Parameters: 1 ‘immediate’ trigger(s) on START. Status: Waiting for START. 0 frames acquired since starting. 0 frames available for GETDATA. Bước 4: Hiển thị luồng video trên màn hình để xem thử Để xem trước luồng dữ liệu video ta dùng lệnh preview. Ví dụ: preview(vid) Màn hình lúc này hiện lên cửa sổ video của đối tượng vid Để kết thúc xem ta dùng lệnh stoppreview hoặc để đóng cửa sổ preview ta dùng lệnh closepreview(vid). Bước 5: Lấy một khung ảnh và lưu thành file đồ hoạ. Để lấy một ảnh vào xử lý ta dùng lệnh getsnapshot. Để lưu ảnh thành file đồ hoạ ta dùng lệnh imwrite. GVHD : TS. LÊ THANH PHÚC Trang 67 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Ví dụ: hinh = getsnapshot (vid); imwrite (hinh, ‘d.jpg’); Bước 6: Làm sạch bộ nhớ Sau khi lấy dữ liệu hình ảnh ta có thể giải phóng bớt bộ nhớ bằng các lệnh sau: delete(vid) clear close(gcf) GVHD : TS. LÊ THANH PHÚC Trang 68 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G II QUÁ TRÌNH XỬ LÝ ẢNH I . Xử lý video giao tiếp qua Webcam n=10^9999 while i=30 Khoảng cách an toàn else Khoảng cách nguy hiểm end end GVHD : TS. LÊ THANH PHÚC Trang 74 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Cửa sổ giao diện đề tài như sau : Hình giao diện chính của đề tài GVHD : TS. LÊ THANH PHÚC Trang 75 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình báo đèn xanh sáng khi ở mức an toàn Hình báo đèn đỏ sáng khi ở mức nguy hiểm GVHD : TS. LÊ THANH PHÚC Trang 76 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ \ VII. SƠ ĐỒ KHỐI C ƯƠ G TRÌ WEBCAM Chụp hình Xử lý ảnh và tách biên đối tượng Tính toán khoảng cách Quyết định Nếu ≥ 30 cm An toàn GVHD : TS. LÊ THANH PHÚC Nếu [...]...ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 5 : Ảnh RGB GVHD : TS LÊ THANH PHÚC Trang 11 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G 3 CÁC HÀM XỬ LÝ CƠ BẢN I Đọc, ghi dữ liệu và xem thông tin của ảnh 1 Hàm imread Hàm ‘imread’ để nhập một bức ảnh vào trong workspace (không gian làm việc) của Matlab Lúc này xử lý bức ảnh tương đương với việc xử lý biên được gán cho... Trang 19 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ - Sử dụng hàm lôgarit giúp cho việc nhận rõ đặc tính của biến đổi Fourier ở các vùng mà giá trị gần bằng 0 Để minh hoạ , hãy xem biểu diễn trực quan các biến đổi Fourier sau : GVHD : TS LÊ THANH PHÚC Trang 20 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 8 :biểu diễn trực quan các biến đổi Fourier -Biến đổi Fourier trên máy tính... TS LÊ THANH PHÚC Trang 26 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 10 : hình biểu diễn phép chiếu hàm Radon Biến đổi Radon của f(x,y) tương ứng với góc quay Ø là tích phân đường của f theo trục Ø )= : Ø – y sin Ø , GVHD : TS LÊ THANH PHÚC sin Ø + y cos Ø)d y Trang 27 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình 11 :Biến đổi Radon của f(x,y) tương ứng với góc quay Ø Hàm Radon... PHÚC Trang 21 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ (0 ... Trang ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ PHẦN B CƠ SỞ LÝ THUYẾT GVHD : TS LÊ THANH PHÚC Trang ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G TỒNG QUAN VỀ XỬ LÝ ẢNH. .. ảnh (khoảng 16 triệu màu) GVHD : TS LÊ THANH PHÚC Trang 10 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ Hình : Ảnh RGB GVHD : TS LÊ THANH PHÚC Trang 11 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH. .. LÊ THANH PHÚC Trang 39 ĐỒ ÁN TỐT NGHIỆP MATLAB XỬ LÝ ẢNH ỨNG DỤNG TRÊN Ô TÔ C ƯƠ G XỬ LÝ MỜ VÀ NHIỄU TRONG ẢNH I Xử lý mờ ảnh Nguyên nhân mờ Sự làm mờ hay phai nhạt ảnh gây nhiều tác nhân :

Ngày đăng: 04/10/2015, 00:07

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w