Báo cáo đa phương tiện

19 236 1
Báo cáo đa phương tiệ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

Báo cáo đa phương tiện dành cho các bạn sinh viên Báo cáo đa phương tiện dành cho các bạn sinh viên Báo cáo đa phương tiện dành cho các bạn sinh viên Báo cáo đa phương tiện dành cho các bạn sinh viên Báo cáo đa phương tiện dành cho các bạn sinh viên

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THƠNG  BÁO CÁO THÍ NGHIỆM MÔN: ĐA PHƯƠNG TIỆN Họ tên sinh viên : Lê Minh Chánh Mã lớp TN : 686892 MSSV : 20155150 Lớp : CN ĐT 01 K60 Email : cuchanh97@gmail.com Hà Nội, 2019 MỤC LỤC MODULE 1: CÁC THAO TÁC XỬ LÝ ẢNH TRÊN MATLAB MODULE 2: BIẾN ĐỔI DCT ẢNH KHỐI TRƯỚC KHI NÉN MODULE 3: TIẾP CẬN XỬ LÝ AUDIO VÀ VIDEO 11 MODULE THIẾT KẾ BỘ Mà HÓA – GIẢI Mà TỰA JPEG 17 MODULE 1: CÁC THAO TÁC XỬ LÝ ẢNH TRÊN MATLAB Đọc file ảnh từ MatLab Code: A = imread('myAvt.jpg'); imshow(A); % Ham doc anh thu muc hien hanh % Ham hien thi anh Kết thu được: Nhận xét: Ma trận ảnh A thu mảng liệu chiều kích thước 256x256x3 định nghĩa giá trị màu red, green, blue (giá trị – 255) cho pixel riêng biệt Hiển thị ảnh thành phần ảnh RGB ảnh vẽ histogram ảnh thành phần Code: A = imread('myAvt.jpg'); % Ham doc anh thu muc hien hanh R = A; G = A; B = A; R(:, :, 2) = 0; R(:, :, 3) = 0; % Giu nguyen phan R G(:, :, 1) = 0; G(:, :, 3) = 0; % Giu nguyen phan G B(:, :, 1) = 0; B(:, :, 2) = 0; % Giu nguyen phan B subplot(331); imshow(A); subplot(334); imshow(R); title('R'); % Anh phan R subplot(335); imshow(G); title('G'); % Anh phan G subplot(336); imshow(B); title('B'); % Anh phan B subplot(337); imhist(A(:,:,1)); % Histogram cua phan R subplot(338); imhist(A(:,:,2)); % Histogram cua phan G subplot(339); imhist(A(:,:,3)); % Histogram cua phan B Kết thu được: 3 Chuyển đổi sang ảnh xám Vẽ histogram ảnh Code: A = imread('myAvt.jpg'); gray = rgb2gray(A); % Chuyen sang anh xam subplot(121); imshow(gray); title('Anh xam'); subplot(122); imhist(gray); title('Histrogram cua anh xam'); Kết thu được: Tăng độ tương phản hình ảnh đầu Code: A = imread('myAvt.jpg'); gray = rgb2gray(A); % Chuyen sang anh xam subplot(121); imshow(gray); title('Anh xam'); A_adjust = imadjust(gray, [0.35 0.65]); % Dieu chinh tuong phan subplot(122); imshow(A_adjust); title('Anh chinh tuong phan'); Hiển thị ảnh âm Code: A = imread('myAvt.jpg'); gray = rgb2gray(A); % Chuyen sang anh xam amban = 255.-gray; % Chuyen sang anh am ban subplot(121); imshow(amban); title('Anh am ban'); subplot(122); imhist(amban); title('Histogram cua anh am ban'); xlim([0 255]); Kết thu được: MODULE 2: BIẾN ĐỔI DCT ẢNH KHỐI TRƯỚC KHI NÉN Công thức biến đổi cosine rời rạc thuận ngược ma trận chiều 8x8 x(n , n ) biểu diễn mức xám ảnh miền không gian, Giá trị hệ số sau biến đổi DCT miền tần số 7 �2n  � �2n2  � x( n1 , n2 ) cos � k1 � cos � k2 � �� 4C ( k1 )C ( k2 ) n1 0 n2  � 16 � � 16 � X (k1 , k2 )  x(n1 , n2 )  X (k1 , k2 ) 7 �2k  � �2k2  � X (k1 , k2 ) cos � n1 � cos � n2 � �� 4C ( n1 )C (n2 ) k1 0 k2 0 � 16 � � 16 � Trong hệ số �2 C ( )  � �    �0 Sử dụng MatLab thực biến đổi DCT thuận ngược cho ma trận 8x8 ngẫu nhiên Nhận xét Tạo ma trận 8x8 ngẫu nhiên lệnh: a = randi([0 255], 8, 8); Ta có ma trận 8x8 sau: a = 208 245 107 173 70 112 181 245 231 247 234 193 11 97 193 87 32 40 202 190 24 195 70 149 233 248 245 100 210 203 174 57 161 245 167 167 177 47 167 192 24 124 43 81 125 41 65 71 204 217 180 243 114 30 129 140 36 239 8 165 127 178 Thực biến đổi DCT hàm dct2 a_dct = dct2(a); a_dct = 1.0e+03 * 1.1162 0.1028 0.0457 -0.0996 -0.0963 -0.0243 0.0392 -0.0266 0.1351 0.0586 0.0802 -0.0210 -0.0102 0.1090 -0.0724 -0.0872 -0.0178 -0.0309 0.0996 -0.0579 0.0032 0.0533 0.0650 -0.0315 -0.0210 0.0098 0.0440 0.0221 0.0903 -0.1055 -0.1898 -0.0457 0.1425 0.0024 0.1366 0.0348 0.0010 0.0056 -0.0165 0.0807 0.0601 -0.0002 -0.1129 0.0433 0.0301 -0.1022 0.0077 0.0042 0.0216 0.0000 0.0154 0.0982 -0.0805 -0.0473 -0.1355 0.0952 -0.0156 -0.0002 -0.0266 -0.2115 -0.1689 0.0237 0.0367 -0.0639 Thực biến đổi DCT ngược hàm idct2 a_idct = idct2(a_dct); a_idct = 208.0000 245.0000 107.0000 173.0000 70.0000 112.0000 181.0000 245.0000 231.0000 247.0000 234.0000 193.0000 11.0000 32.0000 40.0000 202.0000 190.0000 97.0000 193.0000 24.0000 195.0000 70.0000 149.0000 233.0000 248.0000 245.0000 100.0000 210.0000 203.0000 174.0000 161.0000 245.0000 167.0000 167.0000 177.0000 24.0000 124.0000 9.0000 43.0000 36.0000 239.0000 81.0000 125.0000 8.0000 57.0000 47.0000 167.0000 192.0000 71.0000 204.0000 217.0000 180.0000 243.0000 114.0000 140.0000 87.0000 41.0000 65.0000 30.0000 129.0000 8.0000 165.0000 127.0000 178.0000 Nhận xét: kết biến đổi DCT ngược cho kết giống với ma trận ban đầu Thực phép biến đổi DCT (Tính tay) cho ma trận 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 Biến đổi DCT theo hàng ta được: 56.5685 0 0 0 56.5685 0 0 0 56.5685 0 0 0 56.5685 0 0 0 113.1371 0 0 0 113.1371 0 0 0 113.1371 0 0 0 113.1371 0 0 0 Biến đổi DCT theo cột ta được: 240 0 0 0 -72.4903 0 0 0 0 0 0 0 25.4552 0 0 0 0 0 0 0 -17.0086 0 0 0 0 0 0 0 14.4192 0 0 0 Thực mô Code: A = zeros(16); B = zeros(16); % Tao ma tran 16x16 A(6:11,6:11) = 255; % Tao ma tran A nhu yeu cau subplot(121); imshow(A); title('Anh tao ban dau'); % Hien thi anh ban dau % Chia anh A khoi 8x8 A1 = A(1:8,1:8); A2 = A(1:8,9:16); A3 = A(9:16,1:8); A4 = A(9:16,9:16); % Thuc hien bien doi DCT cac khoi anh A1_dct = dct2(A1); A2_dct = dct2(A2); A3_dct = dct2(A3); A4_dct = dct2(A4); % Bang so luong tu hoa Q = [16 11 10 16 24 40 51 61; 12 12 14 19 26 58 60 55; 14 13 16 24 40 57 69 56; 14 17 22 29 51 87 80 62; 18 22 37 56 68 109 103 77; 24 35 55 64 81 104 113 92; 49 64 78 87 103 121 120 101; 72 92 95 96 112 100 103 99]; % Chia cho bang luong tu hoa A1_lt = A1_dct./Q; A2_lt = A2_dct./Q; A3_lt = A3_dct./Q; A4_lt = A4_dct./Q; % Thuc hien bien doi IDCT A1_I = idct2(A1_lt); A2_I = idct2(A2_lt); A3_I = idct2(A3_lt); A4_I = idct2(A4_lt); % Ghep anh B(1:8,1:8) = A1_I; B(1:8,9:16) = A2_I; B(9:16,1:8) = A3_I; B(9:16,9:16) = A4_I; subplot(122); imshow(B); title('Anh tao sau nen'); % Hien thi anh B Kết mô phỏng: Nhận xét: Ảnh tạo ban đầu ảnh tạo sau nén gần giống nhau, có sai khác nhỏ 10 MODULE 3: TIẾP CẬN XỬ LÝ AUDIO VÀ VIDEO Audio Nạp file audio vào MatLab bật qua loa máy tính [y, fs] = audioread('myAudio.wav'); sound(y,fs); Vẽ dạng sóng liệu cửa sổ MatLab Code: [y, fs] = audioread('myAudio.wav'); plot(y,'b'); title('Song du lieu'); Kết thu được: Tăng kích thước dạng sóng lên 30% Code: [y, fs] = audioread('myAudio.wav'); y = y.*(1.3); sound(y,fs); plot(y,'b'); title('Song du lieu sau tang len 30%'); 11 Kết thu được: Tạo vector 2*4096 giá trị ngẫu nhiên Đặt tần số lấy mẫu Fs = 4096 aud = rand(1, 2*4096); fs = 4096; Bật vector âm qua loa máy tính vẽ dạng sóng Code: aud = rand(1, 2*4096); fs = 4096; sound(aud, fs); plot(aud,'b'); title('Song du lieu'); 12 Kết thu được: Video Bật video MatLab Code: obj = VideoReader('myVideo.avi'); vid = obj.read(); implay(vid); Kết quả: 13 Hiển thị khung ảnh (frame) Code: file = aviinfo('myVideo.avi'); % Lay thong tin file nFrames = file.NumFrames; % So frame video Rate=file.AudioRate; for k = 1:10 % Lay 10 frame dau tien this_frame = read(M, k); % Doc tung frame thisfig = figure(); image(this_frame); % Hien thi frame title(sprintf('Frame #%d', k)); end Kết mô Tạo đoạn phim cách hoán vị ngẫu nhiên frame ảnh gốc ban đầu Code: file = VideoReader('myVideo.avi'); % Lay thong tin file video newavi = VideoWriter('newvideo.avi'); % Tao file avi moi newavi.FrameRate = 30; open(newavi); pos = randi([1 150],1,150); % Hoan vi ngau nhien vi tri cac frame for k = 1:150 this_frame = read(file, pos(k)); % Doc tung frame writeVideo(newavi,this_frame); end disp('Closing movie file'); % Dong video goc close(newavi); disp('Display new video'); % Chay video moi implay('newvideo.avi'); Kết mô phỏng: 14 MODULE THIẾT KẾ BỘ Mà HÓA – GIẢI Mà TỰA JPEG Mã hóa Code: clear all, close all; imRGB = imread('myAvt.jpg'); figure, imshow(imRGB), title('RGB Full Image'); imYIQ = rgb2ntsc(imRGB); imYIQsubI = imresize(imYIQ(:,:,2), 0.5, 'bilinear'); imYIQsubQ = imresize(imYIQ(:,:,3), 0.5, 'bilinear'); imYIQupsampI = imresize(imYIQsubI, 2); imYIQupsampQ = imresize(imYIQsubQ, 2); reconstruct_imYIQ = imYIQ; reconstruct_imYIQ(:,:,2) = imYIQupsampI; reconstruct_imYIQ(:,:,3) = imYIQupsampQ; reconstruct_imRGB = uint8(256*ntsc2rgb(reconstruct_imYIQ)); figure, imshow(reconstruct_imRGB), title('Recontructor RGB Full Image'); figure, imshow(256*abs(imRGB(:,:,1)-reconstruct_imRGB(:,:,1))); title('Recontructor R error'); figure, imshow(256*abs(imRGB(:,:,2)-reconstruct_imRGB(:,:,2))); title('Recontructor G error'); 15 figure, imshow(256*abs(imRGB(:,:,3)-reconstruct_imRGB(:,:,3))); title('Recontructor B error'); Kết mô phỏng: Giải mã Code: I = imread('myAvt.jpg'); I1 = I; I2 = double(I); [row col] = size(I); I = double(I); I = I - (128*ones(256)); QX = [16 11 10 16 24 40 51 61; 12 12 14 19 26 58 60 55; 14 13 16 24 40 57 69 56; 14 17 22 29 51 87 80 62; 18 22 37 56 68 109 103 77; 24 35 55 64 81 104 113 92; 49 64 78 87 103 121 120 101; 72 92 95 98 112 100 103 99]; DCT_matrix8 = dct(eye(8)); iDCT_matrix8 = DCT_matrix8; dct_restored = zeros(row, col); QX = double(QX); for i = 1:8:row 16 end for j = 1:8:col zBLOCK = I(i:i+7, j:j+7); win1 = DCT_matrix8*zBLOCK*iDCT_matrix8; dct_domain(i:i+7, j:j+7) = win1; end for i = 1:8:row for j = 1:8:col win1 = dct_domain(i:i+7,j:j+7); win2=round(win1./QX); dct_quantized(i:i+7,j:j+7)=win2; end end for i = 1:8:row for j = 1:8:col win2 = dct_quantized(i:i+7,j:j+7); win3 = win2.*QX; dct_dequantized(i:i+7,j:j+7)=win3; end end for i=[1:8:row] for j=[1:8:col] win3 = dct_dequantized(i:i+7,j:j+7); win4=iDCT_matrix8*win3*DCT_matrix8; dct_restored(i:i+7,j:j+7)=win4; end end I2=dct_restored; K=mat2gray(I2); figure(1);imshow(I1);title('Original image'); figure(2);imshow(K);title('Restored image from DCT'); 17

Ngày đăng: 06/08/2019, 12:27

Từ khóa liên quan

Mục lục

  • MODULE 1: CÁC THAO TÁC XỬ LÝ ẢNH TRÊN MATLAB

  • MODULE 2: BIẾN ĐỔI DCT ẢNH KHỐI TRƯỚC KHI NÉN

  • MODULE 3: TIẾP CẬN XỬ LÝ AUDIO VÀ VIDEO

  • MODULE 4. THIẾT KẾ BỘ MÃ HÓA – GIẢI MÃ TỰA JPEG

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

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

Tài liệu liên quan