Tiểu luận môn học Matlap
CHƯƠNG 3: Cơ bản về xử lý ảnh số
Lời giới thiệu
Các hàm xử lý ảnh cơ bản trong MATLAB
3.2.1. Đọc ảnh đồ họa
Đọc một ảnh đồ họa
Đọc nhiều ảnh từ một file đồ họa
3.2.2. Ghi đồ họa
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)
3.2.3. Các phép toán số học cơ bản
Phép cộng
Phép trừ
Phép nhân
Phép chia
3.2.4. Các hàm hiển thị hình ảnh
Hàm Imview và Imshow.
3.2.5. Các phép biến đổi hình học
Phép nội suy ảnh
Thay đổi kích thước ảnh
Phép quay ảnh
Trích xuất ảnh
Thực hiện phép biến đổi hình học tổng quát
11.37M
Category: informaticsinformatics

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 TIN
VÀ 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ựng
trê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ọa
Ghi đồ 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ét
ví 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àm
imread
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 chung

13. 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 MATLAP

15. 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 cung
cấ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 độ ảnh

19. Hàm Imview và Imshow.

Hiển thị ảnh bằng hàm imview
Hiể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ước
củ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ơn

24. 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àm
imcrop. 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 MATLAP

29.

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 định
cấ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àng
cá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)

34.

Hiệu ứng 3D cho ảnh “Bàn cờ”

35.

CẢM ƠN CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE
English     Русский Rules