Professional Documents
Culture Documents
Đa phương tiện
Đa phương tiện
***
Mã số SV: 20162389
Lớp: Điện tử 02
Hà Nội 2019
MỤC LỤC
1.1.1 Đọc hình ảnh bằng matlab và hiển thị hình ảnh..................................1
1.1.2 Hiển thị 3 ảnh thành phần R, G, B. Vẽ histogram của 3 thành phần
này...............................................................................................................1
1.1.3 Chuyển đổi ảnh sang màu xám. Vẽ histogram của ảnh xám...............2
1.2.2 Hiển thị 3 ảnh thành phần R, G, B. Vẽ histogram của 3 thành phần
này:..............................................................................................................4
1.2.3 Chuyển đổi ảnh sang ảnh xám. Vẽ histogram của ảnh xám................5
3.1.1 Audio................................................................................................11
3.1.2 Video.................................................................................................12
3.2.1 Audio................................................................................................13
3.2.2 Video..............................................................................................14
4.1.2 Chuyển đổi không gian màu từ RGB sang YUV và mã hóa JPEG ảnh
YUV..........................................................................................................18
1.1.1 Đọc hình ảnh bằng matlab và hiển thị hình ảnh
A = imread('abc.jpg'); % ham doc anh trong thu muc hien hanh
imshow(A); % ham hien thi anh
1.1.2 Hiển thị 3 ảnh thành phần R, G, B. Vẽ histogram của 3 thành phần này
B= A; % cho R,G,B la 3 ma tran cung luu tru anh A
C= A;
D= A;
B(:,:,2) = 0; R(:,:,3) = 0; % giu nguyen gia tri R,cac thanh phan khac bang
0
C(:,:,1) = 0; G(:,:,3) = 0; % giu nguyen gia tri G,cac thanh phan khac bang
0
D(:,:,1) = 0; B(:,:,2) = 0; % giu nguyen gia tri B,cac thanh phan khac bang
0
subplot(3,3,4); imshow(B); title('R'); %ve R vao o trong thu 4
subplot(3,3,5); imshow(C); title('G'); %ve G vao o trong thu 5
subplot(3,3,6); imshow(D); title('B'); %ve B vao o trong thu 6
1
R G B
1000 1500
1000
1000
500 500
500
0 0 0
0 100 200 0 100 200 0 100 200
1.1.3 Chuyển đổi ảnh sang màu xám. Vẽ histogram của ảnh xám
gray = rgb2gray(A);
subplot(121); imshow(gray); title('Anh xam');
subplot(122); imhist(gray); title('Histogram anh xam');
2
Histogram anh xam
1500
Anh xam
1000
500
Anh am ban
1000
500
3
1.2 Yêu cầu về nhà
1.2.2 Hiển thị 3 ảnh thành phần R, G, B. Vẽ histogram của 3 thành phần này:
B= A; % cho R,G,B la 3 ma tran cung luu tru anh A
C= A;
D= A;
B(:,:,2) = 0; R(:,:,3) = 0; % giu nguyen gia tri R,cac thanh phan khac bang
0
C(:,:,1) = 0; G(:,:,3) = 0; % giu nguyen gia tri G,cac thanh phan khac bang
0
D(:,:,1) = 0; B(:,:,2) = 0; % giu nguyen gia tri B,cac thanh phan khac bang
0
subplot(3,3,4); imshow(B); title('R'); %ve R vao o trong thu 4
4
subplot(3,3,5); imshow(C); title('G'); %ve G vao o trong thu 5
subplot(3,3,6); imshow(D); title('B'); %ve B vao o trong thu 6
R G B
2000 2000
2000
1000 1000
1000
0 0 0
1.2.3 Chuyển đổi ảnh sang ảnh xám. Vẽ histogram của ảnh xám
A= imread('xyz.jpg');
gray = rgb2gray(A);
subplot(121); imshow(gray); title('Anh xam');
subplot(122); imhist(gray); title('Histogram anh xam');
5
Histogram anh xam
3500
3000
Anh xam
2500
2000
1500
1000
500
3500
3000
Anh am ban
2500
2000
1500
1000
500
6
1.3 Nhận xét
- Hàm imread() dùng để đọc hình ảnh và imshow() trong matlab dùng để hiện
thị hình ảnh
- Ảnh xám là ảnh cường độ
- Ảnh âm bản đối xứng với ảnh xám qua gốc trục tung
7
CHƯƠNG 2: BIẾN ĐỔI DCT ẢNH KHỐI TRƯỚC KHI
NÉN
% Buoc 2
A(4:13,7:10)=255;
A(5:12,5:12)=255;
A(7:10,4:13)=255; % Hien thi anh tao ban dau subplot(121);
imshow(A); title('Anh tao ban dau');
8
Anh tao ban dau Anh tao sau khi nen
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]
dctA =
[ 240.0000 0 0 0 0 0 0 0
-72.4902 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
25.4552 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
-17.0086 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
14.4192 0 0 0 0 0 0 0]
% Buoc 2
A(6:11,6:11)=255; % Hien
thi anh tao ban dau
subplot(121); imshow(A); title('Anh tao ban dau');
9
A1_dct = dct2(A1); A2_dct = dct2(A2);
A3_dct = dct2(A3); A4_dct = dct2(A4);
10
CHƯƠNG 3: TIẾP CẬN XỬ LÝ AUDIO VÀ VIDEO
3.1.1 Audio
1. Xử lý audio.wav bất kỳ
[data, sr] = audioread('popeyes.wav'); % Doc file .wav
sound(data, sr); % Bat file audio qua loa hoac headphone
% Ve dang song cua du lieu audio
subplot(2, 1, 1); plot(data);
A = data.*1.1; % Tang kich thuoc dang song len 10%
sound(A, sr); % Phat song da tang kich thuoc qua loa hoac headphone
% Ve dang song sau khi tang kich thuoc
subplot(2, 1, 2); plot(A);
0.5
-0.5
-1
0 1 2 3 4 5 6
5
10
-1
-2
0 1 2 3 4 5 6
5
10
11
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2000 4000 6000 8000 10000 12000 14000 16000 18000
3.1.2 Video
1. Bật video trong Matlab
obj = VideoReader('321.avi');
video = obj.read();
implay(video);
12
2. Hiển thị từng khung ảnh
file=aviinfo('321.avi'); %load thong tin file
nFrames=file.NumFrames; %tong so khung trong video Rate=file.AudioRate;
for k =1:10 %lay 10 khung dau tien
this_frame=read(obj, k);
thisfig=figure();
image(this_frame); %hien thi 1 khung anh
title(sprintf('Frame #%d', k));
end
3. Tạo ra một đoạn phim mới bằng cách hoán vị các khung ảnh ban đầu
obj = VideoReader('321.avi'); video = obj.read();
newavi=VideoWriter('newvideo.avi'); %tao ra 1 file avi moi
newavi.FrameRate=Rate;
open(newavi);
for k=200:(-1):1 %tao 200 khung anh
this_frame = read(obj, k); %doc tung khung mot
writeVideo(newavi, this_frame);
end
disp('Closing movie file') %hien thi len dong lenh chinh
close(newavi);
disp('display newvideo');
implay('newvideo.avi');
3.2.1 Audio
1. Xử lý file audio .wav bất kỳ
[data, sr] = wavread('BeAsOne.wav'); % Doc file .wav
sound(data, sr); % Bat file audio qua loa hoac headphone
% Ve dang song cua du lieu audio
subplot(2, 1, 1); plot(data);
A = data.*1.3; % Tang kich thuoc dang song len 30%
sound(A, sr); % Phat song da tang kich thuoc qua loa hoac headphone
% Ve dang song sau khi tang kich thuoc
13
subplot(2, 1, 2); plot(A);
3.2.2 Video
1. Bật video trong Matlab
obj = VideoReader('UEFA Champions League 2018-19 Intro HD.avi');
video = obj.read();
implay(video);
14
2. Tìm hiểu các hàm sau:
15
Rate=file.AudioRate;
for k =1:10 %lay 10 khung dau tien
this_frame=read(obj, k);
thisfig=figure();
image(this_frame); %hien thi 1 khung anh
title(sprintf('Frame #%d', k));
end
4. Tạo ra một đoạn phim mới bằng cách hoán vị các khung ảnh ban đầu
obj = VideoReader('UEFA Champions League 2018-19 Intro HD.avi');
video = obj.read();
16
3.3 Nhận xét
- Dùng hàm sound() để phát âm thanh qua loa
- Sound(y, Fs) để gửi tín hiệu audio y tới speaker với tốc độ lấy mẫu Fs -
Có thể tạo âm thanh từ 1 ma trận ngẫu nhiên
- Có thể mở video qua matlab nhưng số frame không được quá lớn - Video
được chia thành các frame ghép lại với nhau
- Ta có thể dùng matlab hoán đổi các frame để tạo ra 1 đoạn video mới
17
Reconstructed RGB Full Image
RGB Full Image
4.1.2 Chuyển đổi không gian màu từ RGB sang YUV và mã hóa JPEG ảnh YUV
Viết hàm rgb2yuv:
function O = rgb2yuv(I)
[i, j, k] = size(I);
CONVERTER = [0.299 0.587 0.114
-0.14713 -0.28886 0.436
0.615 -0.51498 -0.10001];
for row = 1:i
for col = 1:j
RGB = [I(row, col, 1) I(row, col, 2)
I(row, col, 3)];
YUV = CONVERTER * double(RGB);
O(row, col, :) = uint8(YUV);
end
end
return
18
imYUVupsampU = imresize(imYUVsubU, 2);
imYUVupsampV = imresize(imYUVsubV, 2);
19
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 96 112 100 103 99];
I2 = dct_restored;
K = mat2gray(I2);
20
4.3 Nhận xét
- Nguyên lý của phương pháp nén JPEG là: cắt ảnh thành từng khối nhỏ, phân
tích tất cả dữ liệu về màu sắc, độ sang bằng các phương trình ma trận. Ảnh
màu trong không gian RGB được chuyển đổi qua hệ YCbCr
- Dùng phép biến đổi Cosin rời rạc sau đó lượng tử hóa và mã hóa thành
phương pháp Huffman
- Khi giải nén ảnh, ta làm ngược lại quá trình trên
- Kết quả thu được ảnh sau khi giải nén giống hệt ảnh ban đầu
21