MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 228

Nén ảnh số

207

Ví dụ 13-4. Thực hiện giải thuật nén SVD dùng hàm svdcompr:
Trong ví dụ này ta chỉ giữ lại 30 số hạng đầu tiên trong phương trình (13.12).

in = imread(‘2.bmp’)

out=svdcompr(‘2.bmp’,30,’svd.bmp’);

imshow(in),figure, imshow(out)

Ảnh gốc

Ảnh nén bằng giải thuật SVD

Hình 13.9.

Ví dụ 13-5. Một đoạn chương trình khác thực hiện nén ảnh theo giải thuật SVD:

close all

[A,map]=imread(‘lena.gif’);

B=im2double(A,’indexed’);

imshow(B,map)

[u,s,v]=svd(B);

C=zeros(size(B));

for j=1:k

C=C+s(j,j)*u(:,j)*v(:,j).’;

end

C=floor(C);

imshow(C,map)

k=find(C<1);

C(k)=1;

set(gcf,’Unit’,’inches’,’Paperposition’,[0,0,2,1])

print -djpeg ’lenak.jpg’

Dưới đây là kết quả của đoạn chương trình trên với các giá trị k (số vòng lặp, cũng là số trị
riêng được giữ lại) khác nhau:

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.