Nhận dạng khuôn mặt sử dũng thuật toán PCA

61 1.1K 4
Nhận dạng khuôn mặt sử dũng thuật toán PCA

Đ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

LỜI CẢM ƠN Từ kiến thức kỹ em học tập rèn luyện, em hoàn thành đồ án tốt nghiệp đại học Để hồn thiện đƣợc đồ án này, em xin gửi lời cảm ơn chân thành tới thầy ThS Tạ Hùng Cƣờng hƣớng dẫn, động viên em trình làm đồ án vừa qua Em xin gửi lời cảm ơn tới q thầy/cơ giúp em để hồn thành đồ án Trong trình làm đồ án chắn khơng tránh khỏi thiếu sót, mong nhận đƣợc đóng góp ý kiến từ phía đơn vị Nghệ An, tháng 05 năm 2016 Sinh viên thực Đặng Thế Hƣởng MỤC LỤC LỜI CẢM ƠN .1 MỤC LỤC LỜI NÓI ĐẦU DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN .5 CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN Chƣơng MATLAB VÀ XỬ LÝ ẢNH 1.1 MATLAB 1.2 Giới thiệu khái quát ảnh số 10 1.3 Xử lý ảnh với Matlab .11 1.4 Toolbox bắt ảnh xử lý ảnh 14 1.5 Tạo giao diện ngƣời dùng nhờ công cụ GUIDE .20 Kết luận chƣơng .24 Chƣơng PHƢƠNG PHÁP XỬ LÝ VÀ NHẬN DẠNG KHUÔN MẶT 25 2.1 Định nghĩa tốn xác định khn mặt ngƣời 25 2.2 Ứng dụng phƣơng pháp xác định khuôn mặt 25 2.3 Phƣơng pháp xác định khuôn mặt 27 2.4 Khó khăn thử thách tốn xác định khn mặt ngƣời 32 2.5 Bài tốn nhận dạng khn mặt PCA 33 Kết luận chƣơng .39 Chƣơng THUẬT TỐN PCA VÀ CHƢƠNG TRÌNH MƠ PHỎNG 40 3.1 Ƣu điểm phƣơng pháp PCA .40 3.2 Nhƣợc điểm phƣơng pháp PCA .40 3.3 Lƣu đồ giải thuật .41 3.4 Kết mô 46 3.5 Tốc độ thực .47 3.6 Nhận xét trình thực 47 Kết luận chƣơng .49 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 50 TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 52 TÓM TẮT ĐỒ ÁN Đồ án trình bày khái niệm nhận dạng, xử lý ảnh Đồ án thuật tốn PCA ứng dụng xử lý nhận dạng Đồ án thiết kế xây dựng chƣơng trình mô thành công việc nhận dạng sở thuật toán PCA ABSTRACT Blueprints presented basic concepts of image processing Also presented bleprints PCA algorinthm in processing application and identity Since then the scheme has been designed and successfully simulate on the basic of the identificaption of the PCA algorithm LỜI NÓI ĐẦU Vấn đề an ninh bảo mật đƣợc yêu cầu khắt khe quốc gia giới Các hệ thống nhận dạng ngƣời đƣợc đời với độ tin cậy ngày cao Một toán nhận dạng đƣợc quan tâm nhận dạng khuôn mặt Bên cạnh đó, việc thu thập, xử lý thơng tin qua ảnh để nhận biết đối tƣợng đƣợc quan tâm ứng dụng rộng rãi Với phƣơng pháp này, thu nhận đƣợc nhiều thơng tin từ đối tƣợng mà không cần tác động nhiều đến đối tƣợng nghiên cứu Sự phát triển khoa học máy tính tạo mơi trƣờng thuận lợi cho tốn nhận dạng từ ảnh số Các hệ thống nhận dạng offline đời có độ tin cậy cao, nhiên hệ thống nhận dạng online lại chƣa đáp ứng đƣợc Bài toán nhận dạng tốn hấp dẫn, khơng giới hạn giải pháp sử dụng, vận dụng linh hoạt kiến thức nhiều lĩnh vực, thách thức nhiều ngƣời nghiên cứu tính ứng dụng to lớn thực tế Đây vấn đề cần đƣợc nghiên cứu để ứng dụng vào việc chế tạo nhƣ: robot, thiết bị camera, hệ thống bảo mật, nhận dạng,… Do em chọn đề tài “Thiết kế mô hệ thống nhận dạng sở thuật tốn PCA” Đề tài đƣợc trình bày bao gồm có chƣơng: Chƣơng 1: Matlab xử lý ảnh Chƣơng 2: Phƣơng pháp xử lý nhận dạng khn mặt Chƣơng 3: Thiết kế chƣơng trình mơ nhận dạng dung thuật toán PCA Nội dung đề tài bao gồm: - Tìm hiểu phƣơng pháp nhận diện ảnh - Nghiên cứu PCA - Dị tìm ảnh mặt ngƣời có khơng gian - Cắt ảnh mặt lƣu vào file - Xử lý ảnh động qua webcam Trong luận em xin đề cập tới vấn đề dị tìm nhận dạng mặt ngƣời qua ảnh tĩnh cho trƣớc, đồng thời mở rộng xử lý ảnh thu đƣợc qua thiết bị thu ảnh, ví dụ nhƣ: camera, webcam, … DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN Hình 1.1 Cửa sổ khởi động Matlab .9 Hình 1.2 Biểu diễn ảnh index 18 Hình 1.3 Cửa số GUIDE 21 Hình 1.4 Cửa số biên soạn GUIDE 21 Hình 1.5 Cửa sổ thuộc tính 23 Hình 2.1 Một mẫu khn mặt, có 16 vùng 23 quan hệ (các mũi tên) 32 Hình 3.1 Lƣu đồ thuật tốn chƣơng trình 41 Hình 3.2 Lƣu đồ thuật toán chọn ảnh .42 Hình 3.3 Lƣu đồ thuật tốn dị tìm mặt 43 Hình 3.4 Lƣu đồ giải thuật chƣơng trình nhận dạng 44 Hình 3.5 Lƣu đồ giải thuật PCA 45 Hình 3.6 Giao diện 46 Hình 3.7 Giao diện chƣơng trình nhận dạng ảnh tĩnh 46 Hình 3.8 Giao diện chƣơng trình dị tìm ảnh động 47 CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN PCA Principal Component Analysis Phân tích thành phần COM Component Object Model Phần kết hợp RGB Red Green Blue Đỏ Lục Lam MATLAB Matrix Laboratory Thƣ viện ma trận CGA Color Graphic Adaptor Độ phân giải hình SVM Support Vector Machine Vector hỗ trợ ICA Independent Component Analysis Phân tích thành phần độc lập Chƣơng MATLAB VÀ XỬ LÝ ẢNH 1.1 MATLAB 1.1.1 Khái niệm MATLAB Matlab cơng cụ mơ phỏng, lập trình bậc cao đƣợc sử dụng để giải toán khoa học kỹ thuật MATLAB tích hợp đƣợc việc tính tốn, thể kết quả, cho phép lập trình, giao diện làm việc dễ dàng cho ngƣời sử dụng Dữ liệu với thƣ viện đƣợc lập trình sẵn cho phép ngƣời sử dụng có đƣợc ứng dụng sau  Sử dụng hàm có sẵn thƣ viện MATLAB, phép tính tốn học thơng thƣờng  Cho phép lập trình tạo ứng dụng  Cho phép mơ mơ hình thực tế  Phân tích, khảo sát hiển thị liệu  Với phần mềm đồ hoạ cực mạnh  Cho phép phát triển, giao tiếp với số phần mềm khác nhƣ C++, Fortran 1.1.2 Tổng quan cấu trúc liệu MATLAB, ứng dụng Matlab hệ thống tƣơng giao, phần tử liệu mảng (mảng khơng địi hỏi kích thƣớc) Chúng cho phép giải vấn đề liên quan đến lập trình máy tính, đặc biệt sử dụng phép tính ma trận hay vectơ sử dụng ngơn ngữ C học Fortran lập trình thực ứng dụng lập trình câu lệnh gọi từ MATLAB MATLAB đƣợc viết tắt từ chữ “MATrix LABoratory” tức thƣ viện ma trận, từ phần mềm Matlab đƣợc viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận cách dễ dàng, phần mềm ma trận đƣợc phát triển cơng trình Linpack Eispack Ngày Matlab đƣợc phát triển Lapack Artpack tạo nên nghệ thuật phần mềm cho ma trận a) Dữ liệu Dữ liệu MATLAB thể dƣới dạng ma trận (hoặc mảng - tổng quát), có kiểu liệu đƣợc liệt kê sau đây:  Kiểu đơn single, kiểu có lợi nhớ liệu địi hỏi byte nhớ hơn, kiểu liệu không đƣợc sử dụng phép tính tốn học, độ xác  Kiểu double kiểu kiểu thông dụng biến Matlab  Kiểu Sparse  Kiểu uint8, uint8, uint16, uint64  Kiểu char ví dụ “Hello”  Kiểu cell  Kiểu Structure Trong Matlab kiểu liệu double kiểu mặc định sử dụng phép tính số học b) Ứng dụng Matlab tạo điều kiện thuận lợi cho:  Các khoá học toán học  Các kỹ sƣ, nhà nghiên cứu khoa học  Dùng Matlab để tính tốn, nghiên cứu tạo sản phẩm tốt sản xuất c) Toolbox công cụ quan trọng MATLAB Công cụ đƣợc MATLAB cung cấp cho phép bạn ứng dụng kỹ thuật để phân tích, thiết kế, mơ mơ hình Ta tìm thấy toolbox mô trƣờng làm việc  Mạng nơron  Logic mờ  Simulink 1.1.3 Hệ thống MATLAB Hệ thống giao diện MATLAB đƣợc chia thành phần:  Môi trƣờng phát triển Đây nơi đặt công cụ, phƣơng tiện giúp sử dụng lệnh file, ta liệt kê số nhƣ sau + Desktop + Command Window + Command History + Browsers for viewing help  Thƣ viện, hàm toán học bao gồm cấu trúc nhƣ tính tổng, sin cosin atan, atan2 etc , phép tính đơn giản đến phép tính phức tạp nhƣ tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library  Ngơn ngữ Matlab Đó ngôn ngữ cao ma trận mảng, với dòng lệnh, hàm, cấu trúc liệu vào, lập trình hƣớng đối tƣợng  Đồ hoạ Matlab Bao gồm câu lệnh thể đồ họa mơi trƣờng 2D 3D, tạo hình ảnh chuyển động, cung cấp giao diện tƣơng tác ngƣời sử dụng máy tính  Giao tiếp với ngôn ngữ khác Matlab cho phép tƣơng tác với ngôn ngữ khác nhƣ C, Fortran… 1.1.4 Làm việc với MATLAB Hình 1.1 Cửa sổ khởi động MATLAB Trƣớc tiên để khởi động MATLAB ta kích click vào biểu tƣợng file MATLAB hình xuất cửa sổ nhƣ hình vẽ Cửa sổ chứa công cụ (Giao diện ngƣời máy) cần thiết cho việc quản lý files, biến, cửa sổ lệnh, coi desktop panel gồm ô, vùng, quản lý tác dụng cửa sổ nhỏ đƣợc quản lý desktop Trên hình vẽ ta thấy cửa sổ desktop (cửa sổ lớn nhất), cửa sổ phụ 1.2 Giới thiệu khái quát ảnh số 1.2.1 Các khái niệm ảnh Ảnh số tập hợp hữu hạn điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải ảnh Ảnh có độ phân giải cao thể rõ nét đặt điểm hình làm cho ảnh trở nên thực sắc nét a) Điểm ảnh (Picture Element) Điểm ảnh (Pixel) phần tử ảnh số toạ độ (x, y) với độ xám màu định Kích thƣớc khoảng cách điểm ảnh đƣợc chọn thích hợp cho mắt ngƣời cảm nhận liên tục không gian mức xám (hoặc màu) ảnh số gần nhƣ ảnh thật Mỗi phần tử ma trận đƣợc gọi phần tử ảnh b) Mức xám ảnh Mức xám: Là kết biến đổi tƣơng ứng giá trị độ sáng điểm ảnh với giá trị ngun dƣơng Thơng thƣờng xác định [0, 255] tuỳ thuộc vào giá trị mà điểm ảnh đƣợc biểu diễn Các thang giá trị mức xám thông thƣờng: 16, 32, 64, 128, 256 (Mức 256 mức phổ dụng Lý do: từ kỹ thuật máy tính dùng byte (8 bit) để biểu diễn mức xám Mức xám dùng byte biểu diễn: 28=256 mức, tức từ đến 255) c) Độ phân giải ảnh Định nghĩa: Độ phân giải (Resolution) ảnh mật độ điểm ảnh đƣợc ấn định ảnh số đƣợc hiển thị Theo định nghĩa, khoảng cách điểm ảnh phải đƣợc chọn cho mắt ngƣời thấy đƣợc liên tục ảnh Việc lựa chọn khoảng cách thích hợp tạo nên mật độ phân bổ, độ phân giải đƣợc phân bố theo trục x y khơng gian hai chiều Ví dụ: Độ phân giải ảnh hình CGA (Color Graphic Adaptor) lƣới điểm theo chiều ngang hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, hình CGA 12” ta nhận thấy mịn hình CGA 17” độ phân giải 320*200 Lý do: mật độ (độ phân giải) nhƣng diện tích hình rộng độ mịn (liên tục điểm) 10 3.4.3 Giao diện chƣơng trình dị tìm ảnh động Hình 3.8 Giao diện chương trình dị tìm ảnh động 3.5 Tốc độ thực Tốc độ thực chƣơng trình thể thời gian mà chƣơng trình tính tốn q trình xử lý, tùy theo giá trị kích thƣớc ảnh đƣa vào lớn hay nhỏ mà tốc độ thực nhanh hay chậm Nếu ảnh đầu vào có kích thƣớc nhỏ, q trình xử lý chƣơng trình thực nhanh chóng, ảnh đầu vào có kích thƣớc lớn, q trình xử lý chƣơng trình thực chậm, mặc khác tốc độ thực tùy thuộc vào tốc độ xử lý máy tính, vậy, u cầu cần có cấu hình thích hợp để thực chƣơng trình cách nhanh chóng, tạo điều kiện thuận lợi cho việc dị tìm nhận dạng khn mặt Tốc độ thực trình đo đạc thời gian xử lý chƣơng trình, chƣơng trình dị tìm ảnh mặt ngƣời chƣơng trình nhận dạng ảnh mặt ngƣời 3.6 Nhận ét trình thực Qua trình tìm hiểu nghiên cứu, tơi xây dựng đƣợc nhìn khái qt tốn nhận dạng, đặc biệt nhận dạng mặt ngƣời Đồng thời, nắm bắt đƣợc số vấn đề xử lý ảnh: dạng ảnh, tính chất ảnh, khơng gian, tọa độ ảnh, ma trận ảnh,… vận dụng kết hợp với công cụ xử lý ảnh Matlab (Image Processing Toolbox) Từ kết thu đƣợc, ta nhận thấy: ta dị tìm đƣợc 1khn mặt, khn 47 mặt, khuôn mặt tối đa khuôn mặt ảnh, nguyên nhân hạn chế kích thƣớc khn mặt ảnh, khn mặt có khơng có tập ảnh huấn luyện, ƣu điểm tốn Tuy chƣa có chuẩn xác q trình dị tìm nhận dạng mặt ngƣời, nhƣng toán phần đƣợc giải Trong q trình thao tác, có ƣu khuyết điểm, nhƣng luận văn chúng em hồn thành tƣơng đối chấp nhận đƣợc, sau số ƣu điểm khuyết điểm tốn nhƣ q trình thực luận văn ➢ Ƣu điểm - Ta nhận dạng đƣợc ảnh với 1khuôn mặt, khuôn mặt, khuôn mặt khuôn mặt - Khn mặt ngƣời đƣợc dị tìm cắt rõ nét, nhận dạng đƣợc - Đối với thuật toán PCA, thuật toán đƣợc sử dụng nhiều lĩnh vực, lĩnh vực chuyên ngành điện tử, thuật toán đƣợc vận dụng Matlab với nhiều công cụ xử lý, tạo điều kiện thuận lợi cho việc thực đề tài  Khuyết điểm - Nội dung tốn dị tìm nhận dạng mặt ngƣời, nên sử dụng nhiều khuôn mặt nhiều đối tƣợng với trạng thái khác nhau, nên khuyết điểm toán cần số lƣợng lớn nguồn tài nguyên khn mặt nhiều đối tƣợng, từ tạo đƣợc khối lƣợng sở liệu phong phú Cho nên có trƣờng hợp khơng dị tìm đƣợc vài khn mặt ảnh, khơng tìm đƣợc nét đặc trƣng khn mặt - Chƣơng trình đƣợc thực nhờ vào hoạt động máy tính, nên cần có cấu hình cần thiết để xử lý tính tốn, từ áp dụng công nghệ đại, điều ảnh hƣởng đến tốc độ thực chƣơng trình Ví dụ nhƣ nhận dạng khuôn mặt ngƣời qua thiết bị quan sát, tốc độ xử lý nhanh ta có kết mỹ mãn hài lịng - Về nội dung toán, việc chọn lọc đƣa ảnh vào để xử lý, có hai cách: sử dụng ảnh tĩnh có sẵn sử dụng nguồn liệu đƣa vào từ webcam Đối với webcam, hay thiết bị thu hình nào, điều cần phải có độ 48 phân giải tốt để ảnh đƣa vào rõ nét, nhƣ khả xử lý cao xác - Đồng thời khó khăn cách xác định khoảng cách tọa độ khn mặt ngƣời q trình đƣa ảnh vào xử lý, cụ thể kích thƣớc ảnh mặt ngƣời so với kích thƣớc ảnh huấn luyện (quá lớn bé) Vì phƣơng pháp nhận dạng PCA phƣơng pháp dò quét ảnh nhận dạng theo khối vấn đề khoảng cách kích thƣớc khn mặt ảnh đƣa vào so với kích thƣớc tập ảnh huấn luyện (tập ảnh face) quan trọng Cho nên thuật tốn thƣờng gặp khó khăn nhiều vấn đề - Khó khăn việc xử lý dị tìm nhận dạng, điều kiện ảnh đƣa vào xử lý phải phù hợp: độ sáng, góc lệch, cảm xúc, biến dạng,… Chính điều này, đơi có khn mặt mà khơng đủ điều kiện ánh sáng (ảnh bị tối) khuôn mặt bị sai khác nhiều so với ảnh liệu (méo dạng, khn mặt nhăn nhó, nhiều cảm xúc,…) Kết luận chƣơng Ở chƣơng em xây dựng đƣợc thuật tốn chƣơng trình, lên ý tƣởng xây dựng đƣợc giao diện nên GUIDE MATLAB Nêu đƣợc trình nhận dạng ảnh động ảnh tĩnh, đánh giá kết nhận đƣợc sau chƣơng trình mơ 49 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Kết luận Sau trình nghiên cứu thực đề tài:  Đề tài đã nghiên cứu làm rõ đƣợc giải thuật PCA ứng dụng việc nhận dạng xử lý ảnh  Đề tài xây dựng thành cơng chƣơng trình mơ xử lý ảnh hai chế độ online offline Hƣớng phát triển  Nhận diện mặt ngƣời qua tập liệu có sẵn từ camera  Nhận diện danh tính ngƣời phạm tội qua ảnh chụp  Có thể kết hợp với nhiều thuật toán khác nhƣ: ICA, Neural,… để xử lý cách xác  Dị tìm nhận dạng đối tƣợng vi phạm kỷ luật từ xa qua thiết bị quan sát  Bảo mật hệ thống cách nhận dạng khuôn mặt hay nhiều đối tƣợng muốn vào cơng ty, xí nghiệp, hay quan  Quản lý thời gian làm việc nhân viên xí nghiệp mà cần camera quan sát 50 TÀI LIỆU THAM KHẢO Tài liệu tiếng việt [1] Ngơ Hồng Khắc Tiến, Trần Xn Bách, Đồ án tốt nghiệp Dị tìm ảnh mặt ngƣời dùng PCA, Khoa Công nghệ điện tử, trƣờng Đại học Công Nghiệp TP HCM, 2009 [2] Lƣơng Mạnh Bá, Nguyễn Thanh Thủy, Nhập Môn Xử lý ảnh số, Nxb Khoa học Kỹ thuật, 2002 [3] Võ Đức Khánh, Hoàng Văn Kiếm Giáo trình xử lý ảnh số, Nhà xuất Đại học Quốc gia Thành phố Hồ Chi Minh, 2003 [4] Phạm Thế Bảo, Tổng quan phƣơng pháp xác định khn mặt ngƣời, Tạp chí bƣu viễn thơng [5] Ngơ Quốc Tạo, Ngơ Phƣơng Đơng, Nguyễn Thanh Hịa, Phạm Việt Bình (2003), Báo cáo “Nhận dạng mặt ngƣời môi trƣờng độ sáng không đồng nhất”, Hội thảo Công nghệ thông tin quốc gia lần thứ VIII, Thái Ngun, 2931/8/2003 [6] Nguyễn Hồi Sơn, Giáo trình Matlab bản, Khoa Xây dựng Cơ học ứng dụng, trƣờng ĐHSPKT Tài liệu tiếng anh [7] Burce A Draper, Kyungim Baek, Marian Stewart Bartlett, J Ross Beveridge, “Recognizing Faces with PCA and ICA” [8] Stan Z Li , Anil K Jain, “Handbook of Face Recognition”, 2006 [9] IEEE Computer Society, “Automatic face and gesture recognition”, 2004 [10] Các Wedsite: Tài liệu Website http://www.mathworks.com/ Truy cập lần cuối ngày 10/05/2016 http://www.picvietnam.com/forum/ Truy cập lần cuối ngày 01/05/2016 51 PHỤ LỤC - Giao diện chƣơng trình function varargout = giaodien(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @giaodien_OpeningFcn, 'gui_OutputFcn', @giaodien_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function giaodien_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = giaodien_OutputFcn(hObject, eventdata, handles) function Untitled_1_Callback(hObject, eventdata, handles) close chuongtrinh; % Gọi đến chƣơng trinh.m function Untitled_2_Callback(hObject, eventdata, handles) close % Đóng chƣơng trình chuongtringCAM % Gọi chƣơng trình CAM function axes1_CreateFcn(hObject, eventdata, handles) 52 axis off imshow('logo.jpg'); % Đọc ảnh từ thƣ mục - Chƣơng trình dị tìm nhận dạng ảnh tĩnh function varargout = chuongtrinh(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @chuongtrinh_OpeningFcn, 'gui_OutputFcn', @chuongtrinh_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function chuongtrinh_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); xoaanh function varargout = chuongtrinh_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function chonanh_Callback(hObject, eventdata, handles) xoaanh; chonanh; function timmat_Callback(hObject, eventdata, handles) dotimcatanh; % goi hàm dotimcatanh 53 axes(handles.axes2); imshow('anhluu/anh_kq.jpg'); %hiện kết function pushbutton3_Callback(hObject, eventdata, handles) thoat; function pushbutton4_Callback(hObject, eventdata, handles) xoaanh; giaodien; delete(handles.figure1); function Tachmat_Callback(hObject, eventdata, handles) axes(handles.axes4); imshow('anhluu/anh1.jpg'); axes(handles.axes5); imshow('anhluu/anh2.jpg'); axes(handles.axes6); imshow('anhluu/anh3.jpg'); axes(handles.axes7); imshow('anhluu/anh4.jpg'); function save1_Callback(hObject, eventdata, handles) s=imread('anhluu/anh1.jpg'); save1; function save2_Callback(hObject, eventdata, handles) s=imread('anhluu/anh2.jpg'); save1; function save3_Callback(hObject, eventdata, handles) s=imread('anhluu/anh3.jpg'); save1; function save4_Callback(hObject, eventdata, handles) s=imread('anhluu/anh4.jpg'); save1; function pushbutton11_Callback(hObject, eventdata, handles) xoaanh 54 function pushbutton12_Callback(hObject, eventdata, handles) nhandang; % Gọi đến chƣơng trình nhandang.m function chon1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon2_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh2.jpg'); a = strcat('anhluu/anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon3_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh3.jpg'); a = strcat('anhluu/anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); 55 set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon4_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh4.jpg'); a = strcat('anhluu/anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon1_CreateFcn(hObject, eventdata, handles) function chon2_CreateFcn(hObject, eventdata, handles) function axes9_CreateFcn(hObject, eventdata, handles) imshow('vinh.jpg'); axis off function axes10_CreateFcn(hObject, eventdata, handles) imshow('dtvt.jpg'); axis off function axes12_CreateFcn(hObject, eventdata, handles) imshow('vinh.jpg'); function axes13_CreateFcn(hObject, eventdata, handles) imshow('dtvt.jpg'); - Chƣơng trình dị tìm cắt mặt với Webcam function varargout = chuongtringCAM(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 56 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @chuongtringCAM_OpeningFcn, 'gui_OutputFcn', @chuongtringCAM_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function chuongtringCAM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = chuongtringCAM_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global vid vid = videoinput('winvideo', 3, 'YUY2_640x480'); vid.FramesPerTrigger = 1; vid.ReturnedColorspace = 'rgb'; triggerconfig(vid, 'manual'); vidRes = get(vid, 'VideoResolution'); imWidth = vidRes(1); imHeight = vidRes(2); nBands = get(vid, 'NumberOfBands'); hImage = image(zeros(imHeight, imWidth, nBands), 'parent', handles.axes1); preview(vid, hImage); 57 function pushbutton2_Callback(hObject, eventdata, handles) global vid photo a photo = getsnapshot(vid); selection = questdlg(['Ban muon chup anh gan hay xa?'], ['Chuong trinh chup anh!'], 'Gan','Xa','Yes'); if strcmp(selection,'Gan') axes(handles.axes1); photo=imresize(photo,0.5); imshow(photo); a = strcat('anhluu/anh_goc.jpg'); imwrite(photo,a); elseif strcmp(selection,'Xa') axes(handles.axes1); imshow(photo); a = strcat('anhluu/anh_goc.jpg'); imwrite(photo,a); end function pushbutton3_Callback(hObject, eventdata, handles) axes(handles.axes2); imshow('anhluu/anh_kq.jpg'); %hi?n ?nh k?t qu? function pushbutton5_Callback(hObject, eventdata, handles) nhandang; function pushbutton6_Callback(hObject, eventdata, handles) axes(handles.axes4); imshow('anhluu/anh1.jpg'); axes(handles.axes5); imshow('anhluu/anh2.jpg'); axes(handles.axes6); imshow('anhluu/anh3.jpg'); 58 axes(handles.axes7); imshow('anhluu/anh4.jpg'); function radiobutton1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton7_Callback(hObject, eventdata, handles) s=imread('anhluu/anh1.jpg'); save1; function radiobutton2_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton8_Callback(hObject, eventdata, handles) s=imread('anhluu/anh2.jpg'); save1; function radiobutton3_Callback(hObject, eventdata, handles) 59 if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton9_Callback(hObject, eventdata, handles) s=imread('anhluu/anh3.jpg'); save1; function radiobutton4_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton10_Callback(hObject, eventdata, handles) s=imread('anhluu/anh4.jpg'); save1; function pushbutton12_Callback(hObject, eventdata, handles) xoaanh; function back_Callback(hObject, eventdata, handles) xoaanh; 60 giaodien; delete(handles.figure1); function THOAT_Callback(hObject, eventdata, handles) thoat; function axes15_CreateFcn(hObject, eventdata, handles) imshow('dtvt.jpg'); axis off function axes14_CreateFcn(hObject, eventdata, handles) imshow('vinh.jpg'); axis off 61

Ngày đăng: 17/09/2016, 18:58

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • MỤC LỤC

  • LỜI NÓI ĐẦU

  • DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN

  • CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN

  • Chương 1

  • MATLAB VÀ XỬ LÝ ẢNH

    • 1.1. MATLAB

      • 1.1.1. Khái niệm MATLAB

      • 1.1.2. Tổng quan về cấu trúc dữ liệu của MATLAB, các ứng dụng

        • b) Ứng dụng

        • c) Toolbox là một công cụ quan trọng trong MATLAB

        • 1.1.3. Hệ thống MATLAB

        • 1.1.4. Làm việc với MATLAB

        • Hình 1.1. Cửa sổ khi khởi động MATLAB

          • 1.2. Giới thiệu khái quát về ảnh số

            • 1.2.1. Các khái niệm cơ bản về ảnh

              • a) Điểm ảnh (Picture Element)

              • b) Mức xám của ảnh

              • c) Độ phân giải của ảnh

              • 1.2.2. Các cách phân loại ảnh

              • 1.3. Xử lý ảnh với Matlab

                • 1.3.1. Xử lý ảnh

                • 1.3.2. Các giai đoạn xử lý ảnh

                  • b) Tiền xử lý

                  • c) Phân đoạn (Segmentation)

                  • d) Biểu diễn ảnh (Image Representation)

                  • Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết giữa các vùng lân cận. Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý ảnh tiếp theo bằng máy tính.

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

Tài liệu liên quan