Similar presentations:
Tiểu luận môn học Matlap
1. Tiểu luận môn học Matlap
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINVÀ TRUYỀN THÔNG
Tiểu luận môn học
Matlap
2. CHƯƠNG 3: Cơ bản về xử lý ảnh số
NHÓM 10:1.
2.
3.
4.
5.
Bế Hoàng Yến
Đặng Thị Hương
Trần Ngọc Thành
Quách Thanh Tuấn
Vũ Đình Dũng
Giảng viên: Vũ Thúy Hằng
Lớp: KTYS - K13A
3. Lời giới thiệu
MATLAB là một công cụ tính toán được xây dựngtrên cơ sở các phép xử lý ma trận.
MATLAB người sử dụng có thể sử dụng các phép
toán và các thao tác cơ bản ma trận, để tác động lên
các dữ liệu hình ảnh với điều kiện các thao tác này
chấp nhận kiểu dữ liệu ảnh nói trên.
4. Các hàm xử lý ảnh cơ bản trong MATLAB
Đọc ảnh đồ họaGhi đồ họa
NỘI DUNG
Các phép toán số học cơ bản
Các hàm hiển thị hình ảnh
Các phép biến đổi hình học
5. 3.2.1. Đọc ảnh đồ họa
Hàm imreadĐọc các file ảnh với bất kỳ các định dạng ảnh đã
biết hiện nay và lưu lại dưới dạng một ma trận biểu
diễn ảnh trong MATLAB.
6. Đọc một ảnh đồ họa
Cú pháp>> A =
imread(filename,fmt)
>> [X,map] =
imread(filename,fmt)
filename là chuỗi xác định tên
file cần đọc cùng với đường
dẫn.
fmt là chuỗi cho biết định
dạng của ảnh, thí dụ ‘bmp’,
‘gif’, ‘jpg’, …
Ví dụ:
>> A= imread('E:\TH
matlap\[email protected]');
imshow (A);
7. Đọc nhiều ảnh từ một file đồ họa
Để hiểu hơn về cách xử dụng hàm imread ta xétví dụ sau:
Ví dụ . Đọc một chuỗi 15 ảnh liên tiếp trong một file
TIFF và lưu vào một dãy 4 chiều:
mri = uint8(zeros(128,128,1,15)); % khởi tạo một
dãy 4 chiều
for frame=1:15
[mri(:,:,:,frame),map] = imread('E:\TH matlap');
end
8. 3.2.2. Ghi đồ họa
Cú pháp cơ bản:>> imwrite (A, filename, fmt)
>> imwrite (X, map, filename, fmt)
Ví dụ: Lệnh sau đây thực hiện ghi vào file
mypicture.jpg với chất lượng nén là 100:
>> A= imread('E:\TH matlap\[email protected]');
imwrite(A, 'E:\TH matlap\mypictures.jpg',
'Quality', 100);
9. Mở rộng: Dùng hàm imfinfo để kiểm chứng thông số hàm imread Cú pháp: >> info = imfinfo(filename,fmt)
Mở rộng: Dùng hàm imfinfo để kiểm chứng thông số hàmimread
Cú pháp: >> info = imfinfo(filename,fmt)
Các thông tin được hàm cung cấp
10. 3.2.3. Các phép toán số học cơ bản
Danh sách các hàm cùng với cú pháp tương ứng:11. Phép cộng
Ví dụ: Chồng lẫn hai ảnh trên một nền chung:>> I = imread('E:\TH matlap\bien.jpg'); % Đọc ảnh thứ nhất
J = imread('E:\TH matlap\Tulips.jpg'); % Đọc ảnh thứ hai
K = imadd(I,J); % Cộng hai ảnh
subplot(1,3,1);
imshow(I);
% Hiển thị ảnh thứ nhất
subplot(1,3,2);
imshow(J); % Hiển thị ảnh thứ hai
subplot(1,3,3);
imshow(K); % Hiển thị ảnh tổng
12.
Chồng lẫn hai ảnh trên một nền chung13. Phép trừ
Ví dụ: Làm giảm độ sáng ảnh bằng phép cộng với hằng số:A = imread('E:\TH matlap\kem2.jpg');
imshow(A)
A2 = imadd(A, -50);
subplot(1,2,1);
imshow(A);
subplot(1,2,2);
imshow(A2);
14.
Giảm độ sáng sử dụng MATLAP15. Phép nhân
Ví dụ: Làm tăng độ sáng ảnh bằng phép nhân với hằng số:>> A = imread('E:\TH matlap\dautay.jpg');
A2 = immultiply(A, 1.5);
subplot(1,2,1);
imshow(A);
subplot(1,2,2);
imshow(A2);
16. Phép chia
Ví dụ:>> A = imread('E:\TH matlap\dautay.jpg');
A2 = imdivide(A, 1.5);
subplot(1,2,1);
imshow(A);
subplot(1,2,2);
imshow(A2);
17. 3.2.4. Các hàm hiển thị hình ảnh
Để phục vụ chức năng hiển thị hình ảnh, MATLAB cungcấp hai hàm cơ bản là image và imagesc. Ngoài ra, trong
Image Processing Toolbox cũng có hai hàm hiển thị ảnh
khác, đó là imview và imshow.
Hàm Image: Hiển thị hình ảnh biểu diễn bởi ma trận C
kích thước MxN lên trục toạ độ hiện hành.
>> A = imread('E:\TH matlap\thuhoach4.jpg');
>> image(A)
Hàm Imagesc: Có chức năng tương tự như hàm image,
ngoại trừ việc dữ liệu ảnh sẽ được co giãn (scale) để sử
dụng toàn bộ bản đồ màu hiện hành.
18.
Sử dụng hàm Image để hiển thị tọa độ ảnh19. Hàm Imview và Imshow.
Hiển thị ảnh bằng hàm imviewHiển thị ảnh bằng hàm imshow
20. 3.2.5. Các phép biến đổi hình học
Các phép biến đổi hình học là những phép toán biến cácđiểm ảnh từ vị trí này thành các điểm ảnh ở vị trí khác
trong ảnh mới. Đó là những thao tác xử lý ảnh cơ bản
như quay, thay đổi kích thước, cắt một phần ảnh, ...
21. Phép nội suy ảnh
Nội suy là quá trình ước lượng giá trị của ảnh tại mộtđiểm nằm giữa hai pixel có giá trị đã biết. Chẳng hạn,
nếu ta thay đổi kích thước ảnh sao cho nó chứa nhiều
pixel hơn ảnh gốc, thì giá trị của các pixel thêm vào
sẽ được xác định bằng phép nội suy. Phép nội suy
cũng là cơ sở để thực hiện các biến đổi hình học
khác, ví dụ biến đổi kích thước hoặc quay ảnh, ...
Image Processing Toolbox cung cấp ba phương pháp
nội suy ảnh, bao gồm: nội suy theo các lân cận gần
nhất, nội suy song tuyến tính và nội suy bicubic.
22. Thay đổi kích thước ảnh
Hàm imresize cho phép người sử dụng thay đổi kích thướccủa ảnh.
Cú Pháp: >> b = imresize(a,[mrows mcols],method)
Dòng lệnh trên tạo ảnh mới b có kích thước gấp m lần ảnh
gốc a. Method là một chuỗi xác định phương pháp nội suy
sẽ dùng: ‘nearest’ (lân cận gần nhất), ‘bilinear’ (song tuyến
tính) hoặc ‘bicubic’. Phương pháp mặc định là ‘nearest’.
Ví dụ:
>> I = imread('E:\TH matlap\banh1.jpg');
b = imresize(I,[300 400], 'nearest');
imshow (b)
23.
Thay đổi kích thước ảnh lớn hơn24. Phép quay ảnh
Cú pháp:>> b = imrotate(a,angle,Method,Bbox)
Ví dụ: Quay ảnh đi một góc 45°, dùng phương pháp
nội suy song tuyến tính
I = imread('E:\TH matlap\[email protected]');
J = imrotate(I,45,'bilinear');
imshow(J)
25.
Quay ảnh đi một góc 45°26. Trích xuất ảnh
Khi cần trích xuất một phần của ảnh gốc, ta dùng hàmimcrop. Khi sử dụng hàm này, người sử dụng có thể có
hai lựa chọn:
Cách 1: Xác định cụ thể vị trí của phần ảnh cần trích
(dưới dạng hình chữ nhật) bằng cách cung cấp các thông
số vị trí khi gọi hàm hoặc sử dụng mouse để chọn phần
ảnh cần trích xuất.
Cú pháp:
>> x2 = imcrop(x,map,rect); % Ảnh indexed
>> a2 = imcrop(a,rect);
% Ảnh grayscale hoặc RGB
Trong đó:
rect = [Xmin Ymin width height], với (Xmin,Ymin) là toạ
độ góc trên bên trái của phần ảnh cần trích, width và
height là chiều rộng và chiều cao của phần ảnh cần trích.
27.
Ví dụ:>> A = imread('E:\TH matlap\thuhoach4.jpg');
image(A)
A = imread('E:\TH matlap\thuhoach4.jpg');
rect = [200 400 200 300]
A2 = imcrop(A,rect);
image(A2);
rect =
200 400 200 300
28.
Hình ảnh một phần nhỏ của ảnh được cắt và hiển thị qua MATLAP29.
Cách 2:Cú Pháp:
>> [A2,rect] = imcrop(A)
>> [X2,rect] = imcrop(X,map)
Ví dụ:
>> A = imread('E:\TH matlap\thuhoach4.jpg');
image(A)
A = imread('E:\TH matlap\thuhoach4.jpg');
rect = [200 400 200 300]
>>[A2,rect] = imcrop(A)
image(A2);
30. Thực hiện phép biến đổi hình học tổng quát
Để thực hiện một phép biến đổi hình học nào đó, người sửdụng cần cung cấp ảnh cần biến đổi A và cấu trúc của phép
biến đổi hình học, gọi là TFORM.
Cú pháp:
>> B = imtransform(A,TFORM,interp)
>> [B,XData,YData] = imtransform(...,param1,val1,param2,val2,...)
Trong đó: interp là chuỗi xác định phương pháp nội suy sẽ dùng. (Xdata,
Ydata) xác định vị trí của ảnh B trong hệ trục X-Y.
31.
Vấn đề quan trọng nhất khi gọi hàm này là phải xác địnhcấu trúc của phép biến đổi. Việc này được thực hiện bằng
cách sử dụng các hàm xây dựng cấu trúc biến đổi, trong
đó thông dụng nhất là hai hàm maketform và cp2tform.
Hàm maketform:
Cú pháp:
>> T = maketform(TFORM_type,...)
Trong đó TFORM_type là một chuỗi xác định dạng cấu
trúc biến đổi hình học, và sau đó là các thông số đi kèm
tuỳ thuộc vào từng dạng cấu trúc cụ thể. Các dạng cấu
trúc này được trình bày trong bảng 3.4
32.
Hàm cp2tform: Trả về cấu trúc của phép biến đổi bàngcách suy từ các cặp điểm điều khiển trong ảnh gốc và sau
khi biến đổi:
Cú pháp:
>>
TFORM=cp2tform(input_points,base_points,TFORM_ty
pe,order)
Trong đó: input_points và base_points là các ma trận M
x 2 xác định toạ độ (X,Y) của M điểm điều khiển trong
ảnh biến đổi và trong ảnh gốc.
33.
Ví dụ: Thực hiện phép xạ ảnh để tạo hiệu ứng 3D choảnh “Bàn cờ”
I = checkerboard(20,1,1); % Tạo ảnh bàn cờ
figure; imshow(I)
T = maketform('projective',[1 1; 41 1; 41 41; 1 41],...
[5 5; 40 5; 35 30; -10 30]); % Định nghĩa phép biến đổi
xạ ảnh
R = makeresampler('cubic','circular'); % Định nghĩa cấu
trúc resampler
K = imtransform(I,T,R,'Size',[100 100],'XYScale',1); %
Thực hiện phép xạ ảnh
figure, imshow(K)