Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Đoạn code matlab dùng để nén ảnh

1. Tổng quan về Matlab


MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty
MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số
hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết
với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.
Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều
mô hình trong thực tế và kỹ thuật.

2. Các ký hiệu và ý nghĩa dùng trong matlab

clc ; clear Xóa tất cả các chữ và hình vẽ


imread('input.jpg') Đọc file ảnh input vào đoạn code
subplot() Chia màn hình thành các phần nhỏ
Imagesc() In hình ảnh lên màn hình
title() In tiêu đề cho ảnh
axis off Tắt các trục trên đồ thị
axis image Biến ảnh đúng tỷ lệ
imresize() Thanh đổi kích thước của ảnh
length() Lấy kích thước của ảnh
zero(n,n) Ma trận vuông 0 n x n

3. Đoạn code và kết quả

clc; clear;
coverIM = imread('input.jpg');
subplot(2,1,1);
imagesc(coverIM); title('Hinh anh ban dau:');
axis off; axis image;

coverIM = rgb2gray(coverIM);
XO = imresize(im2double(coverIM),[512,512]);
n = length(XO);
A = zeros(n,n);
m = 8;
Q = eye(1);
dem = 0;
while (m~=1)
At = A;
m = m/2;
for i = 1 : m
At(i,2*i-1) = 1/2;
At(i,2*i) = 1/2;
At(i+m,2*i-1) = 1/2;
At(i+m,2*i) = -1/2;
end
for i = m*2+1 : n
At(i,i) = 1;
end
for i = 1 : 2*m
At(:,i) = At(:,i)/norm(At(:,i));
end
Q = At* Q;
dem = dem + 1;
end
Y = Q * XO;
subplot(2,1,2);
imwrite(Y,'output.jpg');
imagesc(Y); title('Hinh anh sau khi dung bien doi Haar');
axis off; axis image;
colormap gray;

You might also like