Tìm hiểu các phép biến đổi ma trận SVD, QR và ứng dụng để xây dựng lược đồ thủy vân

102 222 0
Tìm hiểu các phép biến đổi ma trận SVD, QR và ứng dụng để xây dựng lược đồ thủy vân

Đ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

i ĐẠI HỌC THÁ I NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - Học viên thực hiện: Lê Minh Hoài TÊN ĐỀ TÀI LUẬN VĂN: TÌM HIỂU CÁC PHÉP BIẾN ĐỔI MA TRẬN SVD, QR VÀ ỨNG DỤNG ĐỂ XÂY DỰNG LƯỢC ĐỒ THỦY VÂN LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH Thái Ngun, tháng 07 năm 2014 Số hóa Trung tâm Học liệu tnu.edu.vn/ http://www.lrc- ii ĐẠI HỌC THÁ I NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - Học viên thực hiện: Lê Minh Hoài TÊN ĐỀ TÀI LUẬN VĂN: TÌM HIỂU CÁC PHÉP BIẾN ĐỔI MA TRẬN SVD, QR VÀ ỨNG DỤNG ĐỂ XÂY DỰNG LƯỢC ĐỒ THỦY VÂN Chuyên ngành: Mã số: Khoa học máy tính 60 48 01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Nguyễn Bá Tường Thái Nguyên, tháng 07 năm 2014 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Học viên Lê Minh Hồi Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Trước hết chân thành cảm ơn Ban giám hiệu, phòng Đào tạo, thầy giáo trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên quan tâm, tạo điều kiện thuận lợi, nhiệt tình giảng dạy hướng dẫn tơi suốt q trình học tập trường Đặc biệt xin gửi lời cảm ơn chân thành tới PGS.TS Nguyễn Bá Tường hướng dẫn, bảo động viên suốt trình thực luận văn Cuối xin cảm ơn giúp đỡ từ người thân, đồng nghiệp người ln ủng hộ, hỗ trợ tơi suốt q trình thực luận văn Mặc dù có nhiều cố gắng, nhiên luận văn tránh khỏi thiếu sót, tơi mong nhận ý kiến đánh giá, bổ sung để tơi hồn thiện luận văn mình./ Thái Nguyên, ngày 07 tháng 10 năm 2014 Học viên Lê Minh Hồi Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỤC LỤC LỜI CAM i ĐOAN LỜI CẢM ƠN iv DANH MỤC CÁC HÌNH MINH HỌA ix MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 Ảnh số 1.1.1 Khái niệm 1.1.2 Phân loại ảnh 1.1.3 Histogram ảnh .4 1.1.4 Cấu trúc tệp ảnh Bitmap 1.2 Chất lượng ảnh 1.2.1 Hệ số PSNR 1.2.2 Hệ số Diff 1.3 Một số phép biến đổi 1.3.1 Phép biến đổi Cosin rời rạc Phép biến đổi DCT 1-D Phép biến đổi DCT 2-D 1.3.2 Phép biến đổi SVD 10 1.3.3 Phép biến đổi QR .10 1.4 Giấu tn 11 1.4.1 Khái niệm giấu tin 11 1.4.2 Giấu tin miền không gian 14 1.4.3 Giấu tin miền biến đổi 14 1.5 Thủy vân 15 số 1.5.1 Khái niệm thủy vân 15 1.5.2 Phân loại thủy vân 16 1.5.3 Một số tính chất thủy vân số .19 1.5.4 Ứng dụng thủy vân 21 CHƯƠNG 2: THỦY VÂN TRÊN MIỀN SVD 23 2.1 Phép biến đổi SVD 23 2.1.1 Khái niệm SVD .23 2.1.2 Phép biến đổi SVD 24 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 2.1.3 Một số tính chất khai triển SVD 25 2.1.4 Ví dụ minh họa khải triển SVD 25 2.2 Lược đồ thủy vân SVD-1 27 2.2.1 Ý tưởng thuật toán .27 2.2.2 Thuật toán nhúng thủy vân 27 2.2.3 Thuật tốn trích thủy vân 29 2.2.4 Nhận xét lược đồ SVD-1 30 2.3 Lược đồ thủy vân SVD-N 30 2.3.1 Ý tưởng thuật toán .30 2.3.2 Thuật toán nhúng thủy vân 30 2.3.3 Thuật toán trích thủy vân 32 2.3.4 Nhận xét lược đồ SVD-N 32 2.4 Mã nguồn Chương trình thử nghiệm 33 CHƯƠNG : THỦY VÂN TRÊN MIỀN QR .34 3.1 Phép biến đổi QR 34 3.1.1 Khái niệm QR .34 3.1.2 Phép biến đổi QR .35 3.1.3 Xét ví dụ khai triển SVD 35 3.2 Lược đồ thủy vân QR-1 37 3.2.1 Ý tưởng thuật toán .37 3.2.2 Thuật toán nhúng thủy vân 37 3.2.3 Thuật tốn trích thủy vân 38 3.2.4 Nhận xét lược đồ QR-1 38 3.3 Lược đồ thủy vân QR-N 39 3.3.1 Ý tưởng thuật toán .39 3.3.2 Thuật toán nhúng thủy vân 39 3.3.3 Thuật tốn trích thủy vân 40 3.3.4 Nhận xét lược đồ QR-N 40 3.4 Kết thực nghiệm lược đồ SVD QR 41 3.4.1 Bộ ảnh thử nghiệm 41 3.4.2 So sánh tính bền vững lược đồ thủy vân 41 3.4.3 So sánh SVD-1 QR-1 vị trí nhúng thủy vân khác 42 3.4.5 Khả lựa chọn phần tử nhúng thủy vân 46 3.4.5.1 Chất lượng ảnh sau nhúng thủy vân 47 3.4.5.2 So sánh lược đồ SVD-1 QR-1 47 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ vii 3.4.5.3 So sánh lược đồ SVD-N QR-N 49 3.5 Chương trình thử nghiệm 49 TÀI LIỆU THAM KHẢO 61 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC CHỮ VIẾT TẮT Chữ viết tắt Diễn giải Ý nghĩa DCT Discrete Cosine Transform Biến đổi Cosin rời rạc IDCT Invert Discrete Cosine Transform Biến đổi ngược DCT Discrete Fourier Transform Biến đổi Forier rời rạc IDFT Invert Discrete Fourier Transform Biến đổi ngược DFT DWT Discrete Wavelet Transform Biến đổi Wavelet rời rạc IDWT Invert Discrete Wavelet Transform Biến đổi ngược DWT PN Pseudo Noise Giả nhiễu FFT Fast fourier transfer Biến đổi Fourier nhanh GIS Geographic Information System Hệ thống thông tin địa lý Pseudo random number sequence Dãy số giả ngẫu nhiên Fourier Transfer Biến đổi Fourier DFT PRNS FT Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Từ (2.1) (3.6) kết luận: Giá trị Diff lược đồ SVD-1 lớn giá trị Diff lược đồ QR-1 khoảng n lần Đánh giá hoàn toàn phù hợp với kết thực nghiệm mục 3.4.5.3 So sánh lược đồ SVD-N QR-N Bằng cách lập luận tương tự thấy kết luận 3.4.5.2 lược đồ SVD-1 QR-1 lược đồ SVD-N QR-N Điều kiểm chứng kết thực nghiệm 3.5 Chương trình thử nghiệm Mã nguồn Chương trình thử nghiệm xây dựng ngôn ngữ Matlab 2012 Nội dung phần mềm gồm module ứng với thuật toán nhúng thủy vân thuật tốn trích thủy vân hai lược đồ QR1 QRN Các kết thực nghiệm cho thấy, lược đồ thủy vân miền QR bền vững lược đồ SVD1, SVDN trước phép công: nén JPEG, lọc nhiễu, làm mờ Quy trình phần mềm thử nghiệm nhúng dấu thủy vân vào ảnh: Bước 1: Ta có thơng số đầu vào: anhgoc la ảnh màu; anhthuyvan ảnh đa cấp xám; W liệu thủy vân nhúng, ma trận 0,1; n, m kích thước khối thủy vân; T ngưỡng Bước 2: Chạy chương trình có tên gọi Nhungmain.m Chương trình chạy modul thuyvan.m để thực nhúng dấu thủy vân vào ảnh qua phép biến đổi Bước 3: Kết có ảnh nhúng dấu thủy vân *Quy trình phần mềm thử nghiệm trích dấu thủy vân từ ảnh: Bước 1: Chạy chương trình có tên gọi Khoiphucmain.m Chương trình đọc ảnh nhúng dấu thủy vân thực thuật tốn trích dấu thủy vân Bước 2: Kết trích dấu thủy vân nhúng vào ảnh *Mã nguồn chương trình : Thuyvan.m functon [anhgoc,anhthuyvan,W ] = thuyvan( anhgoc, m,n ,T,thuatoan ) % anhgoc la anh mau % anhthuyvan la anh da cap xam % W la du lieu thuy van da nhung, la ma tran 0,1 % n, m la kich thuoc khoi thuy van % T nguong anh = imread(anhgoc); temp = rgb2ycbcr(anh); anhgoc = anh; I = temp(:,:,1); I = double(I); [M,N] = size(I); M = floor(M/m); N = floor(N/n); W =0; if m ==4 W = csvread('c:\QR\Watermark.txt'); else W = csvread('C:\QR\Watermark8.txt'); end for i=0:M-1 for j=0:N-1 sub_Block = I(i*m+1:(i+1)*m,j*n+1:(j+1)*n); switch(thuattoan) case 'SHONGWEIT' I(i*m+1: (i+1)*m,j*n+1:(j+1)*n) = SHONGWEIT(sub_Block,W(i+1,j+1),T); case 'SVD1' I(i*m+1:(i+1)*m,j*n+1: (j+1)*n) = SVD1(sub_Block,W(i+1,j+1),T); case 'SVDN' I(i*m+1:(i+1)*m,j*n+1: (j+1)*n) = SVDN(sub_Block,W(i+1,j+1),T); case 'QR1' I(i*m+1:(i+1)*m,j*n+1:(j+1)*n) = QR1(sub_Block,W(i+1,j+1),T); case 'QRN' I(i*m+1:(i+1)*m,j*n+1:(j+1)*n) = QRN(sub_Block,W(i+1,j+1),T); case 'QR1DCT' I(i*m+1: (i+1)*m,j*n+1:(j+1)*n) = QR1DCT(sub_Block,W(i+1,j+1),T); otherwise display('Invalid algorithm'); end end end I = uint8(I); temp(:,:,1) = I; anhthuyvan = ycbcr2rgb(temp); end functon [watermark_Block] = QRN(Block,bit,q) [Q,R] = qr(Block); x = sum(R(1,:)); k = floor(x/q); xm = k*q + (bitxor(mod(k,2),bit))*q; n = size(Block,2); for i =1:n R(1,i) = R(1,i) * xm/x; end watermark_Block = Q*R; end functon [watermark_Block] = QR1(Block,bit,q) [Q,R] = qr(Block); k = floor(R(1,1)/q); R(1,1) = k*q + (bitxor(mod(k,2),bit))*q; watermark_Block = Q*R; end functon [watermark_Block] = QR1DCT(Block,bit,q) [Q,R] = qr(Block); Cm=[0.3536,0.4904,0.4619,0.4157,0.3536,0.2778,0.1913,0.0975 0.3536,0.4157,0.1913,-0.0975,-0.3536,-0.4904,-0.4619,-0.2778; 0.3536,0.2778,-0.1913,-0.4904,-0.3536,0.0975,0.4619,0.4157; 0.3536,0.0975,-0.4619,-0.2778,0.3536,0.4157,-0.1913,-0.4904; 0.3536,-0.0975,-0.4619,0.2778,0.3536,-0.4157,-0.1913,0.4904; 0.3536,-0.2778,-0.1913,0.4904,-0.3536,-0.0975,0.4619,-0.4157; 0.3536,-0.4157,0.1913,0.0975,-0.3536,0.4904,-0.4619,0.2778; 0.3536,-0.4904,0.4619,-0.4157,0.3536,-0.2778,0.1913,0.0975]; P=R*Cm; k = floor(P(1,1)/q); P(1,1) = k*q + (bitxor(mod(k,2),bit))*q; R=P*Cm'; watermark_Block = Q*R; end functon [watermark_Block] = SVDN(Block,bit,q) [U,D,V] = svd(Block); n = size(Block,1); x = sum(sum(abs(D))) +1; % ||D|| +1 k = floor(x/q); if bit ==1 if mod(k,2) ==1 k = k+1; end else % bit ==0 if mod(k,2) ==0 k = k+1; end end xm = k*q + q/2; for i =1:n D(i,i) = D(i,i) * xm/x; end watermark_Block = U*D*V'; end functon [watermark_Block] = SVD1(Block, bit,q) [U,D,V] = svd(Block); z = mod(D(1,1),q); if bit ==0 if z =T temp = Q(3,1); Q(3,1) = Q(2,1); Q(2,1) = temp; end if delta1 >=0 && delta1 0 && delta2=T temp = Q(2,1); Q(2,1) = Q(3,1); Q(3,1) = temp; end if delta1 >=0 && delta1 =0 && delta2

Ngày đăng: 14/02/2019, 17:15

Từ khóa liên quan

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

Tài liệu liên quan