NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ ANDROID

100 753 1
NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ ANDROID

Đ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

MỤC LỤCLỜI CAM ĐOANILỜI CẢM TẠIIMỤC LỤC...IIIDANH MỤC HÌNHVDANH MỤC BẢNGVIITÓM TẮTVIIIABTRACTVIIIPHẦN TỔNG QUAN11.Đặt vấn đề:12.Lịch sử giải quyết vấn đề:23.Phạm vi của đề tài:24.. Phương pháp nghiên cứu và hướng giải quyết vấn đề:2PHẦN NỘI DUNG 3CHƯƠNG 1: CƠ SỞ LÝ THUYẾT31.1.Lý thuyết về xử lý ảnh31.1.1.Các phương pháp phát hiện biên31.1.2.Tổng quan về nhận dạng ảnh51.1.3.Không gian màu HSVHSB:.71.1.4.Biểu đồ phân bố xác suất màu sắc Histograms71.2.Lý Thuyết Haartraining81.2.1.Haarlike F eatures:81.2.2.Adaboost:91.3.Lý thuyết thuật toán Camshift111.3.1.Thuật toán Meanshift111.3.2.Thuật toán Camshift131.4.Giới thiệu về thư viện xử lý ảnh OpenCV161.4.1.OpenCV là gì?.161.4.2.Ai dùng OpenCV?171.4.3.Tìm hiểu về thư viện hàm của OpenCV:181.5.Cơ bản về Hệ điều hành Android221.5.1.Giới thiệu về Hệ điều hành Android221.5.2.Sơ lược các thành phần trong Android23CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU252.1.Quy trình phát triển ứng dụng Android252.1.1.Giả lập hệ điều hành Android SDK vào trong Eclipse trên Hệ điều hành Window. 252.2.Thư viện Opencv có thể sử dụng trên hệ điều hành Android hay không ?322.2.1.Tích hợp thư viện OpenCV vào trong Eclipse 17322.2.2.Khảo sát vài ứng dụng có sử dụng thư viện xử lý ảnh OpenCV trên HDH Android 362.3.Nghiên cứu ứng dụng nhận dạng bàn tay người trong điều khiển tự động482.3.1.Hướng dẫn phương pháp HaarTrainning bàn tay người482.3.2.Lập trình nhận diện bàn tay người532.4.Nghiên cứu ứng dụng theo vết hướng nghiên của đầu người592.4.1.Hướng dẫn theo vết hướng nghiêng của đầu người dùng thuật toán Camshift: 592.4.2.Lập trình ứng dụng theo vết hướng nghiên của đầu người dùng Camshift: 59PHẦN KẾT LUẬN VÀ ĐỀ NGHỊ70Kết luận70Đề nghị71PHỤ LUC 1: HƯỚNG DẪN LẬP TRÌNH ANDROID TRÊN ECLIPSE73PHỤ LỤC 2: HƯỚNG DẪN LẬP TRÌNH JAVA CHO ANDROID80TÀI LIỆU THAM KHẢO89

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BỘ MÔN TỰ ĐỘNG HÓA LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID Cán hướng dẫn Sinh viên thưc hiên •• Khưu Thiện Phúc GV Ks Nguyễn Văn Khanh Tạ Minh Lễ Cần Thơ, 4-2012 TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID Sinh viên thực Cán hướng dẫn Khưu Thiện Phúc MSSV: 1080992 Tạ Minh Lễ MSSV: 1080920 Ks.GV Nguyễn Văn Khanh Cán bộ^ phản biện: Ts.GV.Trần Thanh Hùng Ths.GV.Nguyễn Văn Mướt Luận văn bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ mơn Tự động hóa, Khoa Cơng Nghệ, Trường Đại Học Cần Thơ vào ngày tháng năm 2012 số đề tài: NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID LỜI CAM ĐOAN Ngày với phát triển bùng no khoa học kỹ thuật, hệ điều hành mở Android hãng Google ngày phát triển mạnh mẽ Nó xuất phần lớn điện thoại thông minh máy tính bảng Bên cạnh đó, thư viện mở OpenCV thư viện mạnh phương diện xử ảnh Vì chúng tơi chọn đề tài “Nghiên cứu khả ứng dụng thư viện xử ảnh OpenCV hệ điều hành mở Android” để làm luận văn tốt nghiệp cho Trong trình thực đề tài, nhiều thiếu sót kiến thức hạn chế nội dung trình bày báo cáo hiểu biết thành đạt giúp đỡ giảng viên hướng dẫn thầy Nguyễn Văn Khanh Chúng xin cam đoan rằng: nội dung trình bày báo cáo luận văn tốt nghiệp khơng có chép từ cơng trình có trước nào, riêng nội dung trích dẫn từ nguồn tài liệu tham khảo thích đầy đủ, rõ ràng Nếu khơng thật, xin chịu trách nhiệm trước nhà trường Cần Thơ, ngày tháng năm 20 Sinh viên thực LỜI CẢM TẠ Để nghiên cứu hoàn thành đề tài này, nhận giúp đỡ, hỗ trợ hướng dẫn từ nhiều phía Chúng tơi xin chân thành cảm ơn: - Quý thầy cô giảng dạy, cung cấp kiến thức trình học tập để chúng tơi thực đề tài - Giảng viên Ks Nguyễn Văn Khanh nhiệt tình hướng dẫn cho chúng tơi suốt q trình thực đề tài - Khoa Cơng Nghệ nói chung mơn Tự Động Hóa nói riêng tạo điều kiện thuận lợi cho chúng tơi q trình nghiên cứu đề tài Cần Thơ, ngày tháng năm 20 Sinh viên thực MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM TẠ II MỤC LỤC III DANH MỤC HÌNH V DANH MỤC BẢNG VII TÓM TẮT VIII ABTRACT VIII PHẦN TỔNG QUAN .1 Đặt vấn đề: Lịch sử giải vấn đề: Phạm vi đề tài: Phương pháp nghiên cứu hướng giải vấn đề: PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ THUYẾT 1.1 thuyết xử ảnh 1.1.1 Các phương pháp phát biên 1.1.2 Tổng quan nhận dạng ảnh 1.1.3 Không gian màu HSV/HSB: 1.1.4 Biểu đồ phân bố xác suất màu sắc Histograms 1.2 Thuyết Haartraining 1.2.1 Haar-like F eatures: 1.2.2 Adaboost: 1.3 thuyết thuật toán Camshift 11 1.3.1 Thuật toán Meanshift 11 1.3.2 Thuật toán Camshift 13 1.4 Giới thiệu thư viện xử ảnh OpenCV 16 1.4.1 OpenCV gì? 16 1.4.2 Ai dùng OpenCV? 17 1.4.3 Tìm hiểu thư viện hàm OpenCV: 18 1.5 Cơ Hệ điều hành Android 22 1.5.1 Giới thiệu Hệ điều hành Android 22 1.5.2 Sơ lược thành phần Android 23 CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU .25 2.1 Quy trình phát triển ứng dụng Android 25 2.1.1 Giả lập hệ điều hành Android SDK vào Eclipse Hệ điều hành Window 25 2.2 Thư viện Opencv sử dụng hệ điều hành Android hay không ? 32 2.2.1 Tích hợp thư viện OpenCV vào Eclipse [17] 32 2.2.2 Khảo sát vài ứng dụng có sử dụng thư viện xử ảnh OpenCV HDH Android 36 2.3 Nghiên cứu ứng dụng nhận dạng bàn tay người điều khiển tự động 48 2.3.1 Hướng dẫn phương pháp Haar-Trainning bàn tay người 48 2.3.2 Lập trình nhận diện bàn tay người 53 2.4 Nghiên cứu ứng dụng theo vết hướng nghiên đầu người 59 2.4.1 Hướng dẫn theo vết hướng nghiêng đầu người dùng thuật toán Camshift: 59 2.4.2 Lập trình ứng dụng theo vết hướng nghiên đầu người dùng Camshift: 59 PHẦN KẾT LUẬN VÀ ĐỀ NGHỊ 70 Kết luận 70 Đề nghị 71 PHỤ LUC 1: HƯỚNG DẪN LẬP TRÌNH ANDROID TRÊN ECLIPSE 73 PHỤ LỤC 2: HƯỚNG DẪN LẬP TRÌNH JAVA CHO ANDROID .80 TÀI LIỆU THAM KHẢO .89 DANH MỤC HÌNH Figure 1: hình đạo hàm bậc bậc biên Figure 2: kỹ thuật Laplace Figure 3: hình tính phương pháp Canny Figure 4: phương pháp Canny với kích thước khác Figure 5: hình nhận dạng đối tượng Figure 6: Hệ màu HSV Figure 7: Biểu đồ Histogram ảnh Figure 8: Đặt trưng Haar-like Figure 9: Edge Features( đặc trưng hình chữ nhật) Figure 10: Line Features (đặc trưng hình chữ nhật) .9 Figure 11: Center-surround Features Figure 12: Ví dụ Phương pháp Adaboost 10 Figure 13: Sơ đồ khối cho thuật toán Adaboost 11 Figure 14: Sơ đồ khối thuật toán Camshift 16 Figure 15: Các tính thư viện OpenCV 17 Figure 16: Install SDK .-— 27 Figure 17: Install SDK 28 Figure 18: Install ADT Plugin 29 Figure 19: Install ADT Plugin 29 Figure 20: Tích hợp Android SDK vào Eclipse .30 Figure 21: Edit Android Virtual Device(AVD) 31 Figure 22: Giải nén thư viện OpenCV-2.3.1 32 Figure 23: Tạo Workspace cho Eclipse 33 Figure 24: Mỡ cửa sổ Preferences panel Eclipse .33 Figure 25: Tích hợp OpenCVvào Eclipse - 34 Figure 26: Tích hợp OpenCVvào Eclipse - 34 Figure 27: Tích hợp OpenCVvào Eclipse - 35 Figure 28: Tích hợp OpenCVvào Eclipse - 35 Figure 29: Hồn thành tích hợp OpenCV vào Eclipse .36 Figure 30: Sơ đồ khối ứng dụng HieuUngAnh 40 Figure 31: Kết ứng dụng HieuUngAnh_ Preview RGBA 43 Figure 32: Kết ứng dụng HieuUng Anh_Ấn phím Menu 43 Figure 33: Kết ứng dụng HieuUng Anh _Canny 44 Figure 34: Kết ứng dụng HieuUng Anh_ Sepia .44 Figure 35: Kết ứng dụng HieuUng Anh_Sobel 45 Figure 36: Kết ứng dụng HieuUng Anh_Blur 45 Figure 37: Sơ đồ khối ứng dụng "Tracking Orange" 46 Figure 38: Kết thực thi ứng dụng "Tracking Orange" 48 Figure 39: Thực thi file objectmarker.exe 49 Figure 40: Kết file info.txt 50 Figure 41: Kết thực thi file create_list.bat 50 Figure 42: Kết thực thi ứng dụng createsample.exe 51 Figure 43: Quá trình thực thi ứng dụng haartraining.exe _1 52 Figure 44: Quá trình thực thi ứng dụng haartraining.exe _2 52 Figure 45: Kết thực thi file convert_cascade - 53 Figure 46: Sơ đồ khối ứng dụng lập trình nhận diện bàn tay người 54 Figure 47: Kết thực thi ứng dụng nhận diện bàn tay người 58 Figure 48: Sơ đồ khối ứng dụng "Tracking Object" 60 Figure 49:Chương trình tính tốn Histogram khn mặt 61 Figure 50:Chương trình lấy giá trị Hue ảnh 61 Figure 51: Chương trình theo vết khuôn mặt .62 Figure 52: Chương trình hiển thị ảnh sau xử 63 Figure 53: Kết thực thi ứng dụng " TrackingObject" khơng cóđối tượng 67 Figure 54 : Kết thực thi ứng dụng " TrackingObject" có đối tượng 67 Figure 55: Kết thực thi ứng dụng " TrackingObject" đối tượng nghiêng sang phải . — . - 68 Figure 56: Kết thực thi ứng dụng " TrackingObject" đối tượng nghiêng sang trái 68 Figure 57: Tạo Android Project 73 DANH MỤC BẢNG Table 1: Kiểu liệu nguyên thủy Java 82 Table 2: Kiểu liệu tham chiếu Java 83 Table 3: Khai báo mảng Java 84 TÓM TẮT Ngày nay, với bùng no khoa học kỹ thuật, hệ điều hành mở Android hãng Google ngày phát triển mạnh mẽ Nó ứng dụng phần lớn điện thoại thông minh máy tính bảng Còn OpenCV thư viện mở mạnh lĩnh vực xử ảnh Vì vậy, việc lập trình xử ảnh hệ điều hành Android (Linux) sử dụng thư viện OpenCV tạo giá trị hướng cho việc nghiên cứu ứng dụng thiết bị cầm tay nhỏ gọn Mặt khác sử dụng nghiên cứu điều khiển tự động thiết bị di động Để thực đề tài, bắt đầu nghiên cứu hệ điều hành Android, thư viện xử ảnh Opencv phần mềm hỗ trợ Sau chúng tơi sử dụng thư viện Opencv hệ điều hành Android để tạo vài ứng dụng phục vụ việc điều khiển thiết bị ABTRACT Today, with the explosion of science and technology, Android open source operating system of Google growing its strong growth It is used on most smart phones and tablets And OpenCV is an open source library is strong in the field of image processing Therefore, the image processing program on the Android operating system (Linux) using the OpenCV library to create value on a new direction for research applications on the handset is compact On the other hand we can use that research in automatic control at this device To implement the project, we started research on the Android operating system, library OpenCV image processing and software support Then we use the OpenCV library on Android operating system to create several applications in the service control device Keyword : Android, Opencv, Image processing, Detecting, Training, Java o Ngồi có file thư viện C Tạo giao diện Android với thư mục layout Một giao diện người dùng Android bao gồm tập hợp đối tượng gọi View View đối tượng drawable sử dụng yếu tố bố trí giao diện người dùng, chẳng hạn nút, hình ảnh, trường hợp văn Mỗi đối tượng lớp lớp View Và phân lớp để xử văn TextView Trong Android, lớp sử dụng để tạo giao diện (Edit Text, Text View ) lớp lớp View Một số lớp thường xuyên sử dụng để tạo giao diện: TextView, EditText, ListView, Spinner, CheckBox, Button, RadioButton D Tạo liệu thư mục values Để tạo liệu thư mục values strings, colors Ta nhấp chuột phải vào thư mục values, chọn New -> Android XML File Ở ta tạo dòng text mong muốn màu sắc kiểu text Ví dụ : thư mục res, vào values chọn file strings.xml string name="edit_hint">Enter the work here Với Enter the work here dòng chữ ta muốn gán vào “edit_hint” Ví dụ : Trong thư mục values, tạo file colors.xml (chuột phải vào thư mục, chọn New -> Android XML File, lưu ý chữ s, color.xml) Gõ nội dung cho file sau: #ff3300 Ta tạo màu cho dòng chữ “text_color” hiển thị Text View (ff3300 hexa màu đỏ) E File Manifest Mỗi ứng dụng cần có AndroidManifest.xml để tả thơng tin quan trọng cho hệ thống Android biết ứng dụng khởi tạo có file AndroidManifest.xml kèm theo Ví dụ : 79 PHỤ LỤC 2: HƯỚNG DẪN LẬP TRÌNH JAVA CHO ANDROID A Các lớp đối tượng Java[20] [24] Trong ngôn ngữ Java, lớp đơn vị mẫu có chứa số liệu liên quan đến thực thể Chúng hình thành tảng tồn ngơn ngữ Java Dữ liệu nguồn viết đặt bên lớp Khi xác định lớp, bạn thực chất xác định kiểu liệu Loại liệu sử dụng để xác định biến ta thương gọi “đối tượng” Đối tượng thể (instance) lớp Tất đối tượng thuộc lớp có chung đặc tính hành vi Mỗi lớp xác định thực thể, đối tượng thể thực Bạn định nghĩa lớp bên lớp khác Đây lớp xếp lồng nhau, thể (instance) lớp tồn bên thể lớp che phủ chúng Nó chi phối việc truy nhập đến thành phần thể bao phủ chúng a Khai báo lớp Khi bạn khai báo lớp, bạn cần xác định liệu phương thức lớp Củ pháp: class classname { var datatype variablename; met datatype methodname (parameter list) } Trong đó: class - Từ khố xác định lớp classname - Tên lớp NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID var_datatype - kiểu liệu biến variablename - Tên biến met datatype - Kiểu liệu trả phương thức methodname - Tên phương thức parameterlist - Các tham số phương thức b Các lớp lồng Việc định nghĩa lớp bên lớp khác gọi lớp lồng (nesting) Lớp lồng nằm phạm vi lớp bao quanh Có hai loại lớp lồng: o Lớp kiểu tĩnh (static): Lớp kiểu tĩnh định nghĩa với từ khố static Lớp tĩnh truy nhập vào thành viên lớp phủ thông qua đối tượng Do lớp tĩnh thường sử dụng o Lớp kiểu không tĩnh (non static): Lớp bên (inner) quan trọng lớp lồng Đó lớp nonstatic Định nghĩa lớp bên xác định phạm vi lớp ngồi Lớp bên có truy ngược lại nhập tất thành viên thể lớp bao nó, song Đoạn chương trình sau tả lớp tạo lập sử dụng nào: class Outer { //Outer class constructor class Inner { //Inner class constructor } } Cú pháp sau cho phép truy nhập vào lớp bên Outer.Inner obj=new Outer().new Innerộ; B Kiểu liệu Java cung cấp vài kiểu liệu Chúng hỗ trợ tất tảng Java Trong Java kiểu liệu chia thành hai loại: > Các kiểu liệu nguyên thủy (primitive) > Các kiểu liệu tham chiếu (reference) a Kiểu liệu nguyên thủy 81 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID Java cung cấp tám kiểu liệu : Table 1: Kiếu liệu nguyên thủy Java Độ dài bit Kiểu liệu Phạm vi biểu diễn giá trị byte -(27 ) đến (27-1) char 16 ‘\u0000’ to ’u\ffff ’ boolean “True” “False” short 16 -(215) đến (215-1) int 32 -(231) đến +(231-1) long 64 -(263) đến +(263-1) float 32 -3.40292347E+38 đến +3.40292347E+38 double 64 1,79769313486231570 E+308 đến +1,79769313486231570 E+308 b Kiểu liệu tham chiếu (reference) Trong Java có kiểu liệu tham chiếu Table 2: Kiếu liệu tham chiếu Java Kiểu liệu tả Mảng (Array) Tập hợp liệu kiểu Ví dụ : tên sinh viên Lớp (Class) Tập hợp biến phương thức Giao diện Là lớp trừu tượng tạo cho phép cài đặt đa thừa kế (Interface) Java 82 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID c Ép kiểu (Type casting) Java sử dụng tính ép kiểu (type casting) phần mềm trước C, C++ Lúc kiểu liệu chuyển đối sang kiểu khác Cách ép kiểu: (kiểu liệu cần ép kiểu) biến Sự nới rộng (widening) - trình làm tròn số theo hướng nới rộng khơng làm thông tin độ lớn giá trị Sự thu nhỏ lại (narrowwing) làm thông tin độ lớn giá trị chuyển đối C Các biến mảng a Biến Các ứng dụng sử dụng biến để lưu trữ liệu cần thiết liệu tạo trình thực thi chương trình Các biến xác định tên biến có phạm vi tác động Phạm vi tác động biến xác định cách rõ ràng chương trình Mỗi biến khai báo khối chương trình có tác động phạm vi khối đó, khơng có ý nghĩa khơng phép truy nhập từ bên ngồi khối Việc khai báo biến bao gồm thành phần: kiểu biến, tên giá trị ban đầu gán cho biến (không bắt buộc) Để khai báo nhiều biến ta sử dụng dấu phẩy để phân cách biến, Khi khai báo biến, nhớ Java phân biệt chữ thường chữ in hoa (case -sensitive) Củ pháp: Datatype indentifier [=value][, indentifier[=value] ]; b Mảng Mảng dùng để lưu trữ khoản mục (items) kiểu liệu liền kề nhớ Mỗi lần ta khai báo kích thước mảng, khơng thể thay đối Dữ liệu mảng kiểu liệu nguyên thuỷ đối tượng Cũng biến, ta gán giá trị vào mảng phần tử tạo mảng Nếu không, Java gán giá trị mặc định vào tất phần tử mảng, giá trị mặc định phụ thuộc vào kiểu liệu Ví dụ : kiểu liệu nguyên (int) giá trị mặc định ban đầu 83 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID Mảng khai báo ba cách : Table 3: Khai báo mảng Java Cách khai báo Cú pháp Chỉ đơn khai Ví dụ Datatype identifier[] char ch[ ] báo Khai báo tạo mảng ;khai báo mảng ký tự có tên ch Datatype identifier[] =new char ch[] = new char [10 ]; datatype [size ] Khai báo mảng ch lưu trữ 10 ký tự Khai báo, kiến tạo Datatype identifier[] khởi tạo ={value1,value2 valueN }; char ch [] = {‘A’,,B,,,C,,,D’ }; Khai báo mảng ch lưu chữ kiểu ký tự D Phương thức lớp a Khai báo phương thức Phương thức xác định giao diện cho phần lớn lớp Trong Java cho phép bạn định nghĩa lớp không cần phương thức Bạn cần định nghĩa phương thức truy cập liệu bạn lưu lớp Cú pháp access_specifier modifier datatype method_name(parameter_list) { //body of method } Trong đó: access_specifier: Chỉ định truy cập vào phương thức modifier: Cho phép bạn đặt thuộc tính cho phương thức datatype: Kiểu liệu phương thức trả Nếu khơng có giá trị trả về, kiểu liệu void method name: Tên phương thức parameter_list: Chứa tên tham số sử dụng phương thức kiểu liệu Dấu phẩy dùng để phân cách tham số 84 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID b Các định truy xuất phương thức Các định truy xuất dùng để giới hạn khả truy nhập vào phương thức Java cung cấp định truy xuất sau đây: > Public : Phương thức có định truy xuất public nhìn thấy từ gói lớp > Protected: Các lớp mở rộng từ lớp hành gói, gói khác truy cập phương thức loại > Private: Phương thức riêng tư truy cập nhờ phương thức cơng cộng lớp c Các bổ nghĩa phương thức Các bổ nghĩa phương thức cho phép ta thiết lập thuộc tính phương thức Java cung cấp bổ nghĩa sau: > static : phương thức gọi khơng cần đến đối tượng Nó sử dụng liệu phương thức tĩnh khác > abstract : Ngụ ý phương thức khơng có (code) bổ sung lớp (subclass) Loại phương thức sử dụng lớp kế thừa > > : Phương thức thừa kế ghi đè (Overridden) final : Chỉ phần thân phương thức viết ngôn ngữ native khác Java ví dụ C, C++ > synchronized : Sử dụng với phương thức trình thực thi threads Nó cho phép thread truy cập vào khối thời điểm > volatile : Được sử dụng với biến để thông báo giá trị biến thay đổi vài lần thực thi chương trình giá trị khơng đặt vào ghi d Nạp chồng (overloading) Ghi đè (overriding) phương thức Phương thức nạp chồng (overload) phương thức lớp, có tên song có danh sách tham số khác Sử dụng việc nạp chồng phương thức để thực thi phương thức giống kiểu liệu khác 85 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID Phương thức ghi đè (override) phương thức có mặt lớp cha (superclasss) lớp kế thừa Phương thức cho phép lớp tổng quát định phương thức phương thức chung lớp Phương thức nạp chồng hình thức đa hình (polymorphism) trình biên dịch (compile) Còn phương thức ghi đè hình thức đa hình trình thực thi (runtime) Phương thức ghi đè (Override) định nghĩa lại lớp Từ khoá “this” biểu thị đối tượng hành, ‘super’ sử dụng để đối tượng lớp cha Phương thức ghi đè phương thức tĩnh (static) Nó loại nonstatic e Phương thức khởi tạo lớp Nó khơng có kiểu trả Nó có tên trùng với tên lớp Hàm khởi tạo lớp thực thi phương thức chức bình thường song khơng trả giá trị Nói chung chúng dùng để khởi tạo biến thành viên lớp gọi bạn tạo đối tượng lớp Phương thức khởi tạo lớp có hai loại: > Tường minh (explicit): Bạn lập trình phương thức khởi tạo lớp định nghĩa lớp Khi tạo đối tượng lớp, giá trị bạn truyền vào phải khớp với tham số phương thức khởi tạo (số lượng, thứ tự kiểu liệu tham số) > Ngầm định (Implicit): Khi bạn không định nghĩa phương thức khởi tạo cho lớp, JVM cung cấp phương thức khởi tạo ngầm định Bạn định nghĩa nhiều phương thức khởi tạo cho lớp Giống phương thức khác, phương thức khởi tạo lớp bị nạp chồng (overload) E a Các bổ từ public: Bổ từ truy cập public giúp lớp gói truy cập thành viên cơng (public) lớp 86 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID b protected: Bổ từ truy cập protected dùng để hạn chế khả truy cập tính lớp lớp khơng liên quan c Khi dung với tính lớp, bổ từ truy cập private khiến private: khả cập lớp d Có thể dùng static: bổ từ ‘static’ với lớp, biến, phương pháp khối Một biến, phương pháp khối static lớp không cụ thể theo minh dụ [instance specific], Nghĩa minh dụ lớp cần biến static tồn cho tất minh dụ lớp e final: Bổ từ ‘final’ dung với biến, phương pháp, lớp Bổ từ dung với: f > Biến - nêu rõ gán giá trị, khơng thể thay đổi > Phương pháp - nêu rõ thân phương pháp thay đổi > Lớp - nêu rõ lớp phái sinh abstract: Có thể dùng bổ từ abstract với lớp phương thức Một lớp abstract tạo để cung cấp phần hỗ trợ tổng quát hóa phân cấp lớp Một phương thức khai báo abstract sau : abstract myMethod (); Một lớp abstract có phương thức “ phi trừu tượng” (non- abstract) Trong trường hợp thân phương thức cung cấp Từ khóa dùng với >Lớp: nêu rõ minh dụ lớp Các lớp dùng làm lớp sở tình thừa kế >Phương thức: nêu rõ phần thực thi phương thức ( thân phương thức) phải cung cấp lớp lớp abstract g native: Bổ từ ‘native” cho biết thân phương pháp viết ngôn ngữ khác Java, C C++ h synchronized: Bổ từ “ synchronized” dùng với phương pháp thực thi xâu [threads] Nó cho phép lần xâu truy cập khối i volatile: Bổ từ dùng với biến để nêu rõ thay đổi giá trị biến vài lần thời gian chạy giá trị khơng lưu trữ 87 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID ghi 88 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID TÀI LIỆU THAM KHẢO [1] Lương Mạnh Bá (chủ biên) Nguyễn Thanh Thủy Nhập môn Xử ảnh số Chương Nhà xuất Khoa học Kỹ thuật 2003 [2] Gary R Bradski Computer Vision Face Tracking For Use in a Perceptual User Interface Microcomputer Research Lab, Santa Clara, CA, Intel Corporation [3] Gary Bradski and Adrian Kaehler Learning OpenCV Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472 [4] Hany Farid- Dartmouth Computer Science - Dartmouth College Fundamentals of Image Processing Chapter 4,7,8,10 hany.farid@dartmouth.edu [5] Intel Open Source Computer Vision Library_ Reference Manual Chapter Copyright © 1999-2001 Intel Corporation [6] John G Allen, Richard Y D Xu, Jesse S Jin Object Tracking Using CamShift Algorithm and Multiple Quantized Feature Spaces School of Information Technologies , University of Sydney [7] http://achuwilson.wordpress.com/2011/07/01/create-your-own-haar-classifier- fordetecting-objects-in-opencv/ [ 8]http://www acasystems com/ en/ color-picker/faq-hsb-hsv-color.htm [9] http://dantri.com.vn/c119/s119-569647/850000-dien-thoai-android-kich-hoat- moingay.html [10] http://developer.android.com/guide/index.html [ 11]http://developer.android.com/sdk/requirements.html [12] http://developer.android.com/sdk/installing.html [13] http://developer.android.com/resources/browser.html7tagMutoria l [ 14]http://www imageprocessingbasics.com/ [15]http://nayakamitarup.blogspot.com/2011/07/how-to-make-your-own-haartrained-xml html ri61 http: //note sonots com/ S ci Sofware/haartraining html ri71http://opencv.itseez.com/doc/tutorials/introduction/ android binary package /android binary package.html 89 NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH NGUỒN MỞ ANDROID ri81http://opencv.willowgarage.com/documentation/c/obidetect cascade classificat ion.html ri91http://opencv.willowgarage.com/wiki/ [201Reto Meier Professional Android Application Development Published by Wiley Publishing, Inc 2009 r 211http://www.vietnamandroid com r221http://www.vietandroid.com [231Nguyễn Minh Tân, Huỳnh Trọng Toàn, Đàm Võ Bữu Trân Ths Ngô Trúc Hưng (GVHD) Điều khiển thiết bị dấu hiệu tay Luận văn tốt nghiệp chuyên ngành Điện tử Kỹ thuật Điều khiến, hoc kỳ 2, năm học 2009-2010 r241Nguyễn Tiến, Nguyễn Văn Hồi Đặng Xn Hường Giáo trình lập trình hướng đối tượng Java NXB Thống Kê 2001 90 ... lý trên, việc nghiên cứu lập trình xử lý ảnh với thư viện mã mở OpenCV tảng Android (Linux) trở nên cần thiết hữu ích NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH MÃ... dựng ứng dụng để chứng minh kết nghiên cứu Phương pháp nghiên cứu hướng giải vấn đề: ■ Nghiên cứu cài đặt thư viện xử lý ảnh hệ điều hành Android ■ Nghiên cứu kiến thức xử lý ảnh ■ Nghiên cứu. .. gian thực OpenCV viết cách tối ưu cho ngơn ngữ C tận dụng lợi vi xử lý đa lõi NGHIÊN CỨU KHẢ NĂNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH OPENCV TRÊN HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ ANDROID Một mục tiêu OpenCV cung

Ngày đăng: 06/12/2017, 08:52

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan