Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
1,74 MB
Nội dung
LỜI NÓI ĐẦU Cảm biến (Sensor) thiết bị dùng để cảm nhận biến đổi đại lượng vật lý đại lượng khơng có tính chất điện cần đo thành đại lượng điện đo xử lý Hiện nay, chúng sử dụng rộng rãi lĩnh vực xe hơi, sản xuất công nghiệp, dân dụng, văn phịng, mơi trường,… Cảm biến quang loại cảm biến dựa tính chất đặc trưng ánh sang tính chất hạt sóng Một ứng dụng quan trọng cảm biến quang cảm biến vân tay dùng để nhận dạng vân tay, sử dụng rộng rãi khóa cửa vân tay, bảo mật máy tính xách tay, máy chấm cơng, thiết bị khoa học hình sự, nhờ tính bảo mật tiện lợi cao Nghiên cứu ứng dụng nhận dạng vân tay vào sống xu hướng quan trọng có thực tiễn cao Vấn đề giới tiếp cận sớm thu thành tựu đáng ý, nhiên tương đối mẻ Việt Nam MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC CHƯƠNG I: GIỚI THIỆU CHUNG .5 Lịch sử nhận dạng vân tay .5 Công nghệ sinh trắc bảo mật .6 Ứng dụng công nghệ nhận dạng vân tay CHƯƠNG II: NHẬN DẠNG VÂN TAY Hệ thống nhận dạng vân tay: Hình 2: Cấu trúc hệ thống nhận dạng vân tay .9 Hình 3: Ảnh vân tay chụp từ thiết bị tương ứng 11 Hình 4: Mối quan hệ FAR, FRR, SUM EER theo ngưỡng T 13 Cơ sở nhận dạng phân loại vân tay 13 a Cơ sở nhận dạng vân tay 13 Hình 6: Bề mặt S vùng vân tay 16 Hình 7: Điểm Core Delta 17 Hinh 8: Một số loại Core thường gặp .17 Hình 9: Các điểm Minutiae Ridge Ending (điểm kết thúc) Bifurcation (điểm rẽ nhánh) 18 b Phân loại vân tay 18 Phương pháp nhận dạng vân tay 20 a Thuật toán xử lý ảnh 20 b Phương pháp trích điểm đặc trưng 20 Hình 10: Thuật toán xử lý ảnh vân tay 22 Hình 11: Ảnh vân tay trường định hướng 23 * Xác định điểm Singularity số Poincare (Poincare index) 24 Hình 13: Cách tính số poincare điểm (i,j) với Np = 25 Hình 14: Sơ đồ thuật tốn trích điểm Minutiae từ ảnh xám 26 Hình 15: Các kết thuật toán 27 Hình 16: Thiết diện đường vân (is,js) .28 Hình 17: Điểm cực đại (ic,jc) gần (is,js) 28 c Nâng cao chất lượng ảnh 30 Hình 19: Một số ảnh vân tay 30 Hình 20: Biểu diễn đồ họa lọc Gabor xác định tham số θ = 90, 32 f = 1/ 5, σx = σy = .32 * Thuật toán tăng cường chất lượng ảnh lọc Gabor sau: 33 Hình 21: Ảnh vân tay ban đầu (a), ảnh chuẩn hóa (b), 34 ảnh sau lọc Gabor (c) 34 d Phát điểm đặc trưng 35 Hình 22: Ảnh xám ban đầu (a); Ảnh sau nhị phân hóa (b); 36 Ảnh sau làm mảnh (c) .36 * Phương pháp nhị phân hóa ảnh vân tay .36 * Thuật toán thay ngưỡng tự động: 37 Hình 23: Hai ví dụ phát chi tiết xương .39 e Lọc điểm đặc trưng bị lỗi 39 Hình 24: Các cấu trúc sai (hàng đầu tiên) cấu trúc sau sửa lỗi 40 (hàng thứ hai) 40 Hình 25: Hậu xử lý chi tiết theo phương pháp Farina, Kovacs-vajina Leone (1999) Ảnh vân tay trước xử lý (a); ảnh vân tay sau xử ly (b) 40 f Đối sánh vân tay .40 * Thuật toán Hough 42 * Thực đối sánh vân tay 43 CHƯƠNG III: THIẾT KẾ CẢM BIẾN NHẬN DẠNG VÂN TAY 45 Giới thiệu linh kiện tìm hiểu IDE Arduino .45 a Arduino uno R3 45 b Màn hình LCD 16x2 Module I2C Arduino 45 c Module I2C Arduino 45 d Module cảm biến vân tay JM-101 45 Thiết kế chương trình code 45 a sơ đồ nối dây 45 CHƯƠNG IV: KẾT LUẬN .46 Đánh giá kết hướng phát triển đề tài 47 a Đánh giá kết đề tài 47 b Hướng phát triển đề tài .48 Lời kết 48 PHỤ LỤC 50 Hàm GDNDVT.m 50 Danh sách nhóm Cảm biến nhận dạng vân tay 66 CHƯƠNG I: GIỚI THIỆU CHUNG Lịch sử nhận dạng vân tay - Việc bắt đầu sử dụng vân tay thời xa xưa Theo lịch sử tìm thấy, vân tay sử dụng thẻ đất sét cho công việc giao dịch kinh doanh thời Babylon cổ đại Tại Trung Quốc, dấu vân tay tìm thấy dấu vân tay đất sét Nhưng đến kỷ 19 kết nghiên cứu khoa học phổ biến công nghệ vân tay bắt đầu xem xét hàng loạt - Việc sử dụng nghiên cứu khoa học vào năm 1800 phát minh, công nghệ vân tay ứng dụng vào đầu kỷ 20 Vào năm 1924, FBI (Cục điều tra liên bang) biết 250 tỷ phú lưu trữ tay cơng dân cho mục đích điều tra tội phạm nhận dạng người chết mà tên họ Vào đầu năm 1900, công nghệ vân tay gặp bước tiến lớn cho đời “live-scan”, phương pháp đạt hình ảnh vân tay không sử dụng mực in Khi FBI cho biết kế hoạch kế hoạch để chặn sử dụng thẻ vân tay giấy cho thành viên gia nhập AFIS (IAFIS) nội họ Đó cơng việc thực tế gây bước nhảy vọt cho công nghệ Live-Scan hôm Nhưng công nghệ nhận dạng vân tay không dừng lại cho mục đích lý thuyết đích Nó sử dụng cách thức thức cho mục tiêu kinh doanh vào năm 1968 nhóm kinh doanh an ninh đường Wall Vân tay ngày ứng dụng phương pháp nhận dạng hiệu chắn nhiều lĩnh vực, bao gồm tài chính, y học, kinh tế điện tử ứng dụng điều khiển truy cập khóa cửa vân tay Ứng dụng đại công nghệ vân tay nhờ vào phần lớn phát triển mắt đọc vân tay dạng nén cách phi thường Hình 1: Hình ảnh dấu vân tay tạo Công nghệ sinh trắc bảo mật - Sinh trắc học công nghệ sử dụng đặc tính vật lý mẫu hành vi, đặc điểm sinh học mặt, dấu vân tay, mống mắt,… Các đặc điểm hành vi liên quan đến loại hành vi of a person as: lực gõ phím, dáng đi, giọng nói, kiểu sử dụng chuột máy tính, chữ ký nhận thức để nhận diện người - Với đặc tính việt hóa mình, sinh trắc học ứng dụng rộng rãi công nghệ xác thực bảo mật thông tin cá nhân giao dịch - Công nghệ sinh trắc học xem cách mạng công nghệ để nhận diện cá nhân lừa đảo người dùng khn mặt, vân tay, võng mạc, cho phép thiết bị có tính bảo mật cao, nhanh chóng nhanh chóng bảo vệ liệu ứng dụng - Từ kỷ thứ 19, người Ấn Độ sử dụng dấu vân tay dấu vân tay để nhận dạng người khoa học dấu vân tay khởi xướng Francis Galton Sử dụng dấu vân tay để nhận dạng áp dụng phổ biến sống nước có cơng nghiệp phát triển - Trong cơng nghệ TouchID, dấu vân tay sử dụng nhiều thiết bị bảo mật thông tin bảo vệ thiết bị người dùng Nó có khả bảo mật cao hoàn toàn an toàn thiết bị bị lỗi bị đánh cắp nên thích hợp dùng để làm khóa điện tử, khóa cửa, chấm cơng… Ngồi ra, dựa vào tranh vân tay đặc trưng người y học người ta phát bệnh làm sai lệch gen Ứng dụng công nghệ nhận dạng vân tay - Hơn 100 năm qua, so sánh dấu vân tay coi phương tiện hữu ích hiệu hỗ trợ điều tra viên trình nghiên cứu thử nghiệm Người ta tìm tung tích tội phạm nạn nhân thông qua dấu vân tay trường Tuy nhiên, phương pháp lộ số điểm cịn thiếu sót chịu tác động yếu tố khách quan môi trường thời tiết, địa điểm sau khảo sát,… yếu tố chủ quan gây nhiễu Nếu dựa vào yếu tố kỹ thuật mà bỏ qua hàng loạt biện pháp kinh doanh khác, số tăng tới 10% Tuy nhiên, phương pháp nhận dạng vân tay phổ biến nhiều nơi, nhiều quốc gia, nhiên phương pháp nhận dạng vân tay sử dụng công tác điều tra tội phạm quan công an nên nâng cao mức độ xác nhận dạng vân tay vấn đề cần thiết - Ngày nay, người ta nhận thấy lợi ích việc sử dụng vân tay để bảo mật thông tin quyền riêng tư cho người sở hữu chúng, từ việc ổ khóa vân tay, thiết bị điện tử thơng minh máy tính cá nhân hay smartphone, thiết bị nhận diện vân tay có độ xác cao cần quét vân tay mở khóa cánh nhanh chóng xác Tính bảo mật cao ưu điểm trội công nghệ nhận dạng vân tay Nó sử dụng nhiều hệ thống đảm bảo a ninh Mỗi dấu vân tay gần (tỷ lệ trùng dấu vân tay 1/64 tỷ dấu vân tay) Và với đặc tính cho thấy khả bảo mật dấu vân tay Của công nghệ cao đến mức - Trên giới nay, phương pháp nhận diện khác để giúp người dùng Thay việc nhập mật khẩu, nhiên cơng nghệ Vẫn cịn cần có thời gian để phát triển hồn thiện cơng nghệ Các cơng nghệ phát triên sau để thay công nghệ nhận dạng vân tay Như công nghệ nhận dạng khuôn mặt Công nghệ nhận dạng mống mắt, cơng nghệ nhận dạng qua tĩnh mạch máu lịng bàn tay Phần giá thành cao, phần hệ thống chưa thật tin cậy Nên việc thay công nghệ nhận dạng vân tay tương lai gần vân chưa thể xảy - Ở Việt Nam số doanh nghiệp sử dụng phương pháp để quản lí nhân sử dụng để phục vụ công tác điều tra phá án mà chưa phổ biến rộng rãi công nghệ sử dụng nhận dạng vân tay có giá thành cao phải nhập từ nước CHƯƠNG II: NHẬN DẠNG VÂN TAY Hệ thống nhận dạng vân tay: - Hệ thống nhận dạng: hệ thống xác thực cá nhân cách tìm kiếm đối sánh đặc tính sinh trắc người với tồn mẫu sinh trắc lưu giữ sở liệu Hình cấu trúc thống nhận dạng vân tay Thẻ từ Người sử dụng Mã Cơ sở liệu Đối sánh 1:1 Verification Cảm biến Trích điểm Minutiae Đối sánh điểm Minutiae Đối sánh 1:m Identification Cơ sở liệu Hình 2: Cấu trúc hệ thống nhận dạng vân tay Hệ thống gồm phần: + Verification (Xác nhận dấu vân tay): Đầu tiên người cung cấp dấu vân tay với thông đặc điểm cá nhân người họ tên, ngày sinh, quê quán… (trong chứng minh thư) Username, tên tài khoản, quyền hạn đó,…(trong bảo mật) Bước nhằm tạo sở liệu tương ứng dấu vân tay đặc điểm liên quan Nguyên lý hệ thống sử dụng diot phát sáng để truyền tia gần hồng ngoại (Near Infrared NIR) tới ngón tay chúng hấp thụ lại hồng cầu máu Vùng tia bị hấp thụ trở thành vùng tối hình ảnh chụp lại camera CCD Sau đó, hình ảnh xử lý tạo mẫu vân tay Mẫu vân tay chuyển đổi thành tín hiệu số liệu để nhận dạng người sử dụng vòng chưa đến giây Công nghệ truyền ánh sáng Hitachi cho phép ghi lại rõ nét sơ đồ vân nhờ độ tương phản cao khả tương thích với loại da tay, kể da khô, da dầu hay có vết bẩn, vết nhăn bị khiếm khuyết tạo hố bề mặt ngón tay Lượng liệu nhỏ cho việc nhận dạng tạo nên hệ thống nhỏ gọn, an toàn, thân thiện nhanh giới Hệ thống lưu trữ từ 6.000 - 8.000 ngón tay máy người nhận dạng ngón tay khác đăng ký trước Ưu điểm vượt trội hệ thống tương tác với thể sống nên việc bắt chước, giả mạo ăn cắp liệu điều hoàn toàn bất khả thi FVB đời hồi đầu năm 2006, nhanh chóng thành cơng thị trường Nhật Bản, Singapor, Trung Quốc Hiện nay, thị trường giới có bán nhiều loại thiết bị chụp vân tay (fingerprint reader, fingerprint scanner) với chất lượng khác Một số ảnh vân tay chụp từ thiết bị hình 10 set(handles.vietdienthoai,'string',''); set(handles.vietemail,'string',''); clc; % - Executes on button press in mauthu function mauthu_Callback(hObject, eventdata, handles) set(handles.xinchao,'string','Lay du lieu mau can nhan dang'); % mo mot cua so de lay anh [filename,pathname] = uigetfile ('*.bmp;*.BMP;*.tif;*.TIF;*.jpg','Chon van tay can nhan dang','van tay can nhan dang'); if isequal([filename,pathname],[0,0]) return else anh = imread ([pathname,filename]); anh = 255double(anh); end subplot(121 ); imagesc(anh); axis off; title('Anh van tay ban dau'); colormap(gray); handles.moanh = anh; guidata(hObject,handles); set(handles.viethoten,'string',''); set(handles.vietngaysinh,'string',''); set(handles.vietquequan,'string',''); set(handles.vietchucvu,'string',''); 58 set(handles.vietdienthoai,'string',''); set(handles.vietemail,'string',''); clc; % - Executes on button press in diemminutiae function diemminutiae_Callback(hObject, eventdata, handles) anh = handles.moanh; % Goi anh da lay o "Lay mau" hoac "Mau thu" (hinh 1) %% Nang cao chat luong anh % Nang cao tuong phan su dung gian luoc xam (Enhance contrast using histogram equalization) % bang viec su dung ham "histeq" anh = histeq(uint8(anh)); % Ham "uint8": chuyen doi sang dang nguyen khong dau co bit subplot(122); % Dinh vi tri hien anh len o thu imagesc(anh); title('Nang cao chat luong anh'); axis off; pause; % Lenh tam dung, an phim bat ky de tiep tuc % Lam noi anh bang bien doi Furie roi rac (Enhancement by FFT) anh = biendoifft(anh,0.45); % Xem ham biendoifft.m imagesc(anh); title('Bien doi Furie roi rac'); axis off; pause; %% Nhi phan hoa buc anh dung mot bo loc co nguong tuong thich (Adaptive Binarization) anh = phannguong(double(anh),32); % Xem ham phannguong.m imagesc(anh); title('Anh nhi phan hoa'); axis off; pause; %% Phan vung buc anh qua hai buoc % Xac dinh truong dinh huong (Orientation field) [bien1,vung1] = dinhhuong(anh,16); % Xem ham 59 dinhhuong.m title('Xac dinh truong dinh huong'); axis off; pause; % Xac dinh phan vung quan tu truong dinh huong (Region Of Interest) [anh,bien2,vung2] = phanvung(anh,bien1,vung1); % Xem ham phanvung.m title('Phan vung quan trong'); axis off; pause; %% Lam mong cac dau van tay (Thinned-ridge map) % Ham "bwmorph": Xu ly hinh thai hoc buc anh nhi phan anh = im2double(bwmorph(anh,'thin',Inf)); % gia tri 'thin' Inf: Lam mong van tay imagesc(anh); title('Lam mong van tay'); axis off; pause; % xu ly them anh = im2double(bwmorph(anh,'clean')); % gia tri 'clean': loai bo cac phan tu nho co lap imagesc(anh); title('Xu ly them (clean)'); axis off; pause; anh = im2double(bwmorph(anh,'hbreak')); % gia tri 'hbreak': loai bo cac phan tu duoc lien ket cao imagesc(anh); title('Xu ly them (hbreak)'); axis off; pause; anh = im2double(bwmorph(anh,'spur')); % gia tri 'spur': loai bo cac phan tu vet imagesc(anh); title('Xu ly them (spur)'); axis off; pause; %% Tim tat ca cac diem minutiae 60 % danh dau cac diem minutia [diemketthuc,diemrenhanh,sodovan,dorongvan] = tatcadiem(anh,vung2,16); bieudiendiem(anh,diemketthuc,diemrenhanh); title('Tat ca cac diem minutiae'); axis off; pause; %% loai bo cac diem minutiae gia tao [sodonhanh,diemketthucthuc,diemrenhanhthuc] = diemthucte(anh,diemketthuc,diemrenhanh,sodovan,dorongv an); bieudiendiem(anh,diemketthucthuc,diemrenhanhthuc); title('Cac diem minutiae thuc'); axis off; hold off; % nen co hold off de khong luu lai du lieu anh truoc (anh huong toi Anh nhi phan hoa) handles.sodonhanh = sodonhanh; guidata(hObject,handles); handles.diemketthucthuc = diemketthucthuc; guidata(hObject,handles); clc; % - Executes on button press in sosanh function sosanh_Callback(hObject, eventdata, handles) subplot(121); imagesc(imread('hinh anh\matlab.jpg')); axis off; subplot(122); imagesc(imread('hinh anh\thietbi.jpg')); axis off; set(handles.xinchao,'string','Xin cac ban vui long cho doi'); 61 set(handles.viethoten,'string',''); set(handles.vietngaysinh,'string',''); set(handles.vietquequan,'string',''); set(handles.vietchucvu,'string',''); set(handles.vietdienthoai,'string',''); set(handles.vietemail,'string',''); % Lay buc anh can kiem tra, thuc la mot file dat luu thong tin cua anh [filename pathname] = uigetfile ('*.dat','Chon anh kiem tra','du lieu can doi sanh'); if pathname ~= str = strcat(pathname,filename); mauvtkt = load(char(str)); % Mau van tay kiem tra csdl = dir('co so du lieu'); tilept = []; chiso = 1; chisolop = 1; tenvantay = {''}; dorongvan = 10; % Duyet tat ca cac file dat luu thong tin cua cac buc anh csdl, sau % tinh phan tram giong cua buc anh kiem tra va cac buc anh csld for i = 1:1:size(csdl,1) tenfile = csdl(i).name; if not(strcmp(tenfile,'.')|strcmp(tenfile,' ')|strcmp(tenfile,'Thumbs.db')) tenfile1 = tenfile; 62 tenfile1 = strcat('co so du lieu\',tenfile1); mauvtss = load(char(tenfile1)); % Mau van tay so sanh tlpt1 = doisanh(mauvtkt,mauvtss,dorongvan); tlpt2 = doisanh(mauvtss,mauvtkt,dorongvan); class_name = tenfile(1:3); % class_name = ''; p1(chisolop) = tlpt1; p2(chisolop) = tlpt2; tenvantay(chiso) = {class_name}; tilept(chiso) = mean(p1+p2); % Ham "mean": tinh trung binh cong chiso = chiso+1; end end end % tilept; % tenvantay; [tile vitri] = max(tilept); if tile > 80 % tim ty le phan tram lon nhat % Bat dau qua trinh hien thi ket qua: thong tin vien set(handles.xinchao,'string','Ban la vien cua nhom'); name = tenvantay{vitri}; thongtin = dir('thong tin vien'); anhvt = dir('van tay du lieu'); for i = 1:1:size(thongtin,1) tttv = thongtin(i).name; % Thong tin vien 63 if not(strcmp(tttv,'.')|strcmp(tttv,' ')|strcmp(tttv,'Thumbs.db')) tttv1 = tttv(1:3); if strcmp(name,tttv1) tttv = strcat('thong tin vien\',tttv); tt = load(tttv,'hoten','ngaysinh','quequan','chucvu','dienthoai','email'); set(handles.viethoten,'string',tt.hoten); set(handles.vietngaysinh,'string',tt.ngaysinh); set(handles.vietquequan,'string',tt.quequan); set(handles.vietchucvu,'string',tt.chucvu); set(handles.vietdienthoai,'string',tt.dienthoai); set(handles.vietemail,'string',tt.email); end end end for j = 1:1:size(anhvt,1) ttanh = anhvt(j).name; if not(strcmp(ttanh,'.')|strcmp(ttanh,' ')|strcmp(ttanh,'Thumbs.db')) ttanh1 = ttanh(1:3); if strcmp(name,ttanh1) ttanh = strcat('van tay du lieu\',ttanh); subplot(121); imagesc(255-double(imread(ttanh))); axis off; title('Anh van tay cua ban'); colormap(gray); end end 64 end else set(handles.xinchao,'string','Ban khong phai vien cua nhom'); set(handles.viethoten,'string',''); set(handles.vietngaysinh,'string',''); set(handles.vietquequan,'string',''); set(handles.vietchucvu,'string',''); set(handles.vietdienthoai,'string',''); set(handles.vietemail,'string',''); name = tenvantay{vitri}; anhvt = dir('van tay can nhan dang’); end clc; % - Executes on button press in luudulieu function luudulieu_Callback(hObject, eventdata, handles) sodonhanh = handles.sodonhanh; diemketthucthuc = handles.diemketthucthuc; dhlf = get(handles.xinchao,'string'); % dhlf: dau hieu luu file vao thu muc "co so du lieu" hay "du lieu can so sanh" if strcmp(dhlf,'Tao co so du lieu van tay') % thi se luu vao thu muc "co so du lieu" % Luu du lieu van tay set(handles.xinchao,'string','Luu du lieu van tay'); [filename,pathname] = uiputfile( {'*.dat';'*.*'}, 'Luu du lieu van tay','co so du lieu'); % If 'Cancel' was selected then return 65 if isequal([filename,pathname],[0,0]) return else % Construct the full path and save file = fullfile(pathname,filename); save(file,'diemketthucthuc','sodonhanh','-ASCII'); end elseif strcmp(dhlf,'Lay du lieu mau can nhan dang') % thi se luu vao thu muc "du lieu can so sanh" set(handles.xinchao,'string','Luu du lieu van tay'); [filename,pathname] = uiputfile( {'*.dat';'*.*'}, 'Luu du lieu van tay','du lieu can doi sanh'); % If 'Cancel' was selected then return if isequal([filename,pathname],[0,0]) retu rn else % Construct the full path and save file = fullfile(pathname,filename); save(file,'diemketthucthuc','sodonhanh','-ASCII'); end end clc; % - Executes on button press in luuthongtin 66 function luuthongtin_Callback(hObject, eventdata, handles) set(handles.xinchao,'string','Luu thong tin cua vien'); hoten = get(handles.viethoten,'string'); ngaysinh = get(handles.vietngaysinh,'string'); quequan = get(handles.vietquequan,'string'); chucvu = get(handles.vietchucvu,'string'); dienthoai = get(handles.vietdienthoai,'string'); email = get(handles.vietemail,'string'); % Luu thong tin vien co dau van tay [filename,pathname] = uiputfile( {'*.mat';'*.*'}, 'Luu thong tin vien','thong tin vien'); % If 'Cancel' was selected then return if isequal([filename,pathname],[0,0]) retu rn else % Construct the full path and save file = fullfile(pathname,filename); save(file,'hoten','ngaysinh','quequan','chucvu','dienthoai','email'); end clc; % - Executes on button press in thoat function thoat_Callback(hObject, eventdata, handles) Answer = questdlg('Ban co that su muon thoat khoi chuong trinh?', 'Thoat', 'Yes','No','Yes'); 67 switch Answer case 'Yes' close all; case 'No' return end clc; % - Executes on button press in thongtin function thongtin_Callback(hObject, eventdata, handles) thongtin; % - Executes on button press in huongdan function huongdan_Callback(hObject, eventdata, handles) hdsudung; function viethoten_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function viethoten_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end 68 function vietngaysinh_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function vietngaysinh_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function vietquequan_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function vietquequan_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function vietchucvu_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function vietchucvu_CreateFcn(hObject, eventdata, handles) 69 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function vietdienthoai_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function vietdienthoai_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function vietemail_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function vietemail_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end 70 function xinchao_Callback(hObject, eventdata, handles) % - Executes during object creation, after setting all properties function xinchao_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % function tag1_Callback(hObject, eventdata, handles) clc; % % - Executes on button press in lavantay function layvantay_Callback(hObject, eventdata, handles) open ctlavt.exe; clc; Danh sách nhóm Cảm biến nhận dạng vân tay Mai Duy Anh Nguyễn Đức Chung Nguyễn Anh Dũng Nguyễn Tiến Dương Nguyễn Đăng Hùng 71 72