1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thí nghiệm đa phương tiện đại học bách khoa

18 214 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 3,04 MB

Nội dung

Thí nghiệm môn Đa Phương Tiện Viện Điện tử viễn thông Đại học bách khoa Hà Nội 2. Hiển thị 3 ảnh thành phần R, G, B. Vẽ histogram của 3 thành phần. B = A; C = A; D = A; B(:,:,2) = 0; B(:,:,3) = 0; C(:,:,1) = 0; C(:,:,3) = 0; D(:,:,1) = 0; D(:,:,2) = 0; figure(2); subplot(231); imshow(B); title(R); subplot(232); imshow(C); title(G); subplot(233); imshow(D); title(B); subplot(234); imhist(A(:,:,1)); title(Histogram R); subplot(235); imhist(A(:,:,2)); title(Histogram G); subplot(236); imhist(A(:,:,3)); title(Histogram B);

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

KẾT QUẢ THÍ NGHIỆM

MÔN ĐA PHƯƠNG TIỆN

Họ tên: Trần Bá Đạt

Mã lớp TN: 682579

Mã số SV: 20165966 Lớp: CN-Điện tử 01.K61 Email: Dat.tb165966@sis.hust.edu.vn

Hà Nội 2019

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

MATLAB

Trang 2

1 Đọc hình ảnh

Code:

clear all,close all;

A = imread('28.jpg');

imshow(A);

Figure:

2 Hiển thị 3 ảnh thành phần R, G, B Vẽ histogram của 3 thành phần.

B = A; C = A; D = A;

B(:,:,2) = 0; B(:,:,3) = 0;

C(:,:,1) = 0; C(:,:,3) = 0;

D(:,:,1) = 0; D(:,:,2) = 0;

figure(2);

subplot(231); imshow(B); title('R');

subplot(232); imshow(C); title('G');

subplot(233); imshow(D); title('B');

subplot(234); imhist(A(:,:,1)); title('Histogram R'); subplot(235); imhist(A(:,:,2)); title('Histogram G'); subplot(236); imhist(A(:,:,3)); title('Histogram B');

Trang 3

3 Chuyển đổi ảnh sang ảnh xám Vẽ histogram của ảnh này.

Code:

gray = rgb2gray(A);

figure(3);

subplot(121); imshow(gray); title('Anh xam');

subplot(122); imhist(gray); title('Histogram anh xam');

Trang 4

4 Hiển thị ảnh âm bản của bức ảnh.

Code:

amban = 255.-gray;

figure(4);

subplot(121); imshow(amban); title('Anh am ban ');

subplot(122); imhist(amban); title('Histogram anh am ban ');

Trang 5

Figure:

Trang 6

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

1 Công thức biến đổi cosine rời rạc thuận và ngược của ma trận 2 chiều 8x8.

Giá trị x(n1,n2) biểu diễn các mức xám của ảnh trong miền không gian, X(k1,k2) là các hệ số sau biến đổi DCT trong miền tần số

2 Thực hiện phép biến đổi DCT(tính tay) cho ma trận sau:

Áp dụng DCT-1D cho từng hàng:

F ( v )=1

2 C (v )

i=0

7

f (i) cos(2i+1)vπ

16

Với u=0:

Trang 7

F (0 )= 1

2√2 20 8=40√2

F ( v )=0 , ∀ v ≠0

Tương tự với các hang còn lại, ta có:

Áp dụng DCT-1D cho từng cột:

F (u )=1

2.C (u)

j=0

7

f ( j) cos(2 j+1)uπ

16

Với v=0:

F (0 )= 1

2√2(4 40√2+4 80√2)=2 40

F (1)=1

2.(40√2 cos π

16+40√2 cos

3 π

16+…)=−72,49

F (2)=1

2.(40√2 cos2 π

16+40√2 cos

6 π

16+)=0

F (3 )=1

2.(40√2 cos3 π

16 +40√2 cos

9 π

16 +…)=25,46

F ( 4)=1

2.(40√2 cos4 π

16 +40√2cos

12 π

16 +…)=0

F (5)=1

2.(40√2 cos5 π

16 +40√2 cos

15 π

16 +)=−17,01

F (6 )=1

2.(40√2 cos6 π

16 +40√2 cos

18 π

16 +…)=0

F (7 )=1

2.(40√2 cos7 π

16 +40√2 cos

21 π

16 +)=14,42 Tương tự với các cột còn lại, ta có:

Trang 8

240 0 0 0 0 0 0 0

3 Kiểm tra lại kết quả bằng lệnh dct2 trong Matlab

A = [ 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];

A_dct = dct2(A);

Trang 9

4 Thực hành với ảnh xám

Code :

A=zeros(16);B=zeros(16);C=zeros(16);

A(4:13,7:10)=255;

A(5:12,5:12)=255;

A(7:10,4:13)=255;

subplot(121);imshow(A);title('anh tao ban dau');

A1=A(1:8,1:8);A2=A(1:8,9:16);

A3=A(9:16,1:8); A4=A(9:16,9:16);

A1_dct=dct2(A1);A2_dct=dct2(A2);

A3_dct=dct2(A3);A4_dct=dct2(A4);

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;

];

A1_lt=A1_dct./Q;A2_lt=A2_dct./Q;

A3_lt=A3_dct./Q;A4_lt=A4_dct./Q;

A1_I=idct2(A1_lt);A2_I=idct2(A2_lt);

A3_I=idct2(A3_lt);A4_I=idct2(A4_lt);

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 khi nen');

Trang 10

Figure:

Trang 11

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

1 Nạp audio và bật audio qua loa

Code:

close all; clear all;

%read file wav doc file

[y,fs]= audioread('music.wav');

%sound(y,fs);%phat am thanh goc

figure;

subplot(2,1,1);

plot(y);

title('dang song du lieu')

Y=y*10;

%sound(Y,fs)

subplot(2,1,2);

plot(Y);

Figure:

Trang 12

2 Tạo vector 2*8192

Code:

close all; clear all; r=rand(1,2*8192); sound(r);

plot(r);

title('hen thi')

Figure:

Trang 13

3 Bật video trong matlab

Code:

close all; clear all;

obj=VideoReader('Capture.avi');

video=obj.read();

implay(video);

Figure:

4 Tìm hiểu các hàm

- getframe: chụp trục hoặc hình như một khung phim

- im2frame: chuyển đổi hình ảnh thành khung phim

- frame2im: Trả về dữ liệu hình ảnh được liên kết với khung phim

- movie: phát các khung phim đã ghi.

- mmreader:

- mmfileinfo: thông tin về tập tin đa phương tiện

- avifile:

- aviread:

- aviwite:

Trang 14

5 Hiển thị từng khung ảnh (frame)

Code:

file = aviinfo('video.avi');

nFrames = file.NumFrames;

Rate = file.AudioRate;

for k=1:10

this_frame=read(obj,k);

thisfig=figure();

image(this_frame);

title(sprintf('Frame #%d', k));

end

Figure:

6 Tạo ra một đoạn phim mới

Code:

newavi= VideoWriter('newvideo.avi'); newavi.FameRate=Rate;

open(newavi);

for k= 200:(-1):1

this_frame = read(obj,k);

writeVideo(newavi,this_frame);

Trang 15

disp('Closing movie file');

close(newavi);

disp('display newvideo');

implay('newvideo.avi');

MODULE 4:THIẾT KẾ BỘ MÃ HÓA- GIẢI MÃ TỰA JPEG

Code:

clear all, close all;

imRGB= imread('bocanh.png');

figure, imshow(imRGB), title('RGB full image');

YIQ = 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('Reconstructed RGB full image');figure;

imshow(256*abs(imRGB(:,:,1)-reconstruct_imRGB(:,:,1))); title('Reconstructed R Error');

figure;

imshow(256*abs(imRGB(:,:,2)-reconstruct_imRGB(:,:,2))); title('Reconstructed G Error');

figure;

imshow(256*abs(imRGB(:,:,3)-reconstruct_imRGB(:,:,3))); title('Reconstructed B Error');

Trang 16

Code:

clc;

clear all;

I= imread('ABC.jpg');

I1=I;

[row, coln] = size(I);

I2=double(I);

I= double(I);

x= 128*ones(256);

for i = 1:3

I(:,:,i) = I(:,:,i)- x;

end

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,coln);

QX = double(QX);

for i1 = [1:8:row]

Trang 17

for i2=[1:8:coln]

zBLOCK = I(i1:i1+7,i2:i2+7);

win1 = DCT_matrix8*zBLOCK*iDCT_matrix8;

dct_domain(i1:i1+7,i2:i2+7)=win1;

end

end

for i1=[1:8:row]

for i2=[1:8:coln]

win1 = dct_domain(i1:i1+7,i2:i2+7);

win2 = round(win1./QX);

dct_quantized(i1:i1+7,i2:i2+7) = win2;

end

end

for i1=[1:8:row]

for i2=[1:8:coln]

win2 = dct_quantized(i1:i1+7,i2:i2+7);

win3 = win2.*QX;

dct_dequantized(i1:i1+7,i2:i2+7) = win3;

end

end

for i1=[1:8:row]

for i2=[1:8:coln]

win3 = dct_dequantized(i1:i1+7,i2:i2+7);

win4 = iDCT_matrix8*win3*DCT_matrix8;

dct_restored(i1:i1+7,i2:i2+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');

Figure:

Ngày đăng: 23/11/2019, 15:56

TỪ KHÓA LIÊN QUAN

w