Professional Documents
Culture Documents
Gii thiu
Thực hành 1: Sử dụng hàm để tạo nhiễu và lọc nhiễu.
Sử dụng 2 hàm sau để thực hiện việc tạo nhiễu và lọc nhiễu vào tập tin ảnh.
fspecial ( ) ; imfilter ( )
Sinh viên đọc phần tài liệu hướng dẫn sử dụng 2 hàm trên trong tài liệu đi
kèm và thực hiện việc thêm nhiễu (noise adding) và tăng chất lượng
(enhancement) các ảnh trong thư mục >> image
Ví dụ, sử dụng kết hợp lệnh fspecial ( ) và imfilter ( ) để thực hiện việc là
mờ (blur) tập tin ảnh sau:
>> I = imread('cameraman.tif');
>> subplot(1,2,1);
>> imshow(I);
>> title('Original Image');
>> H =fspecial('disk');
>> subplot(1,2,2);
>> I2 =imfilter(I,H);
>> imshow(I2)
>> title('Blurred Image');
-1-
Thực hành 2: Nén ảnh
Sử dụng các câu lệnh và các thuật toán đã học để thực hiện việc nén hình
ảnh. Chúng ta có nhiều cách để nén hình ảnh bằng các kỹ thuật khác nhau một số
cách thông dụng như sau.
BTCODE: Nén hình ảnh sử dụng Block Truncation.
Kim tự tháp: Nén hình ảnh dựa trên các kim tự tháp Gaussian.
DCTCOMPR: Nén hình ảnh dựa trên phép biến đổi cosin rời rạc (Dicrete
Cosine Transform).
IMCOMPR: Nén hình ảnh dựa trên giá trị gia tăng từ phân ly.
Ở bài thực hành này chúng ta sử dụng kỹ thuật nén ảnh bằng phép biến đổi
Cosin rời rạc.
DCT COMPRESSION
1D DCT
Định nghĩa DCT 1 chiều với chiều dài chuỗi là N:
N −1
π .(2 x + 1).u
C (u ) = α (u ). ∑ f ( x). cos với u = 0, N − 1
x=0 2N
1D - IDCT
N −1
π .(2 x + 1).u
f ( x) = ∑ α (u ).C (u ).cos 2N với x = 0, N − 1
u =0
1
u=0
Định nghĩa α (u ) = N
2
u≠0
N
2D DCT
N −1 N −1
1 (2 x + 1).iπ (2 x + 1). jπ
D(i, j ) = .C (i ).C ( j ) ∑ ∑ p ( x, y ). cos . cos
2N x =0 y =0 2N 2N
1
u = 0
C (u ) = 2
1 u > 0
Ví dụ, chuẩn 8x8 mà kỹ thuật nén ảnh JPEG. N =8 và x, y chạy từ 0 tới 7.
Ta có biểu thức biến đổi DCT 2 chiều là:
7 7
1 (2 x + 1).iπ (2 x + 1). jπ
D(i, j ) = .C (i ).C ( j ) ∑ ∑ p ( x, y ).cos . cos
4 x=0y =0 16 16
-2-
Chương trình nén ảnh sử dụng thuật toán DCT
function imgcompression (I)
w = size (I, 2);
samplesHalf = floor(w / 2);
samplesQuarter = floor(w / 4);
samplesEighth = floor(w / 8);
ci2 = [];
ci4 = [];
ci8 = [];
h = size(I, 1);
samplesHalf = floor(h / 2);
samplesQuarter = floor(h / 4);
samplesEighth = floor(h / 8);
ci2f = [];
ci4f = [];
ci8f = [];
-3-
Thc hành
Thực hành 1: Tạo nhiễu và tách nhiễu khỏi ảnh
Sinh viên tìm hiểu chức năng của các câu lệnh sau để thực hiện việc tạo
nhiễu và tách nhiễu khỏi ảnh
fspecial () imfilter () imadjust () histeq() imnoise() wiener 2()
deconvwnr() .
Thực hành 2:
Vận dụng chương trình đã cho trong phần giới thiệu để thực hiện việc nén
ảnh. Lưu lại các file ảnh đã nén, so sánh và cho nhận xét?
-4-