1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO-CHƯƠNG 5- cơ bản về xử lý ảnh số trong Matlab

38 563 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 2,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong Matlab, mỗi hình ảnh thường được biểu diễn bằng một ma trận hai chiều.. Mỗi một phần tử của ma trận tương ứng với 1 pixel một phân tử ảnh – picture element – biểu diễn bằng 1 điểm

Trang 1

Chương 5

Cơ bản về

xử lý ảnh số trong Matlab

Trang 2

Trong Matlab, mỗi hình ảnh thường được biểu diễn bằng một ma trận hai chiều

Mỗi một phần tử của ma trận tương ứng với 1 pixel (một phân tử ảnh – picture element – biểu diễn bằng 1 điểm trên màn hình) Điểm ảnh ở góc trên bên trái ứng với hàng

1, cột 1

Matlab lưu giữ các hình ảnh dưới một trong các kiểu dữ

liệu sau: logical, uint8, uint16, double

Người dùng có thể sử dụng các phép toán và các thao tác cơ bản trên ma trận để tác động lên dữ liệu hình ảnh với điều kiện các thao tác này chấp nhận các kiểu dữ liệu trên

5.1 Giới thiệu

Trang 3

5.2 Các kiểu hình ảnh trong Matlab

Ảnh chỉ số (indexed images)

Ảnh được biểu diễn bởi hai ma trận:

- Ma trận dữ liệu X: thuộc kiểu uint8, uint16 hoặc double

- Ma trận màu (bản đồ màu) map: kích thước m×3, các phần tử có kiểu double có giá trị thuộc khoảng [0,1] Mỗi

hàng của ma trận xác định các thành phần red, green, blue trong tổng số m màu được sử dụng trong ảnh

Giá trị của một phần tử trong ma trận dữ liệu cho biết màu của điểm ảnh đó là màu nằm ở hàng nào trong ma trận màu

Trang 4

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Ảnh chỉ số (indexed images) (tt.)

X(143,219) = 124

map(124,:) = 0.8392 0.9373 1.0000

Trang 5

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Ảnh độ sáng (intensity images)

Ảnh được biểu diễn bởi một ma trận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) của điểm ảnh đó

- Ma trận thuộc kiểu uint8, uint16 hoặc double

- Giá trị nhỏ nhất (0) ứng với màu đen

- Giá trị lớn nhất (255 hoặc 65535 hoặc 1 tùy kiểu dữ liệu là uint8, uint16 hay double) ứng với màu trắng

Ảnh biểu diễn theo kiểu này còn gọi là ảnh “trắng đen” hoặc ảnh grayscale

Trang 6

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Ảnh độ sáng (intensity images) (tt.)

I(143,219) = 0.9151

Trang 7

Ảnh nhị phân (binary images)

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Ảnh được biểu diễn bởi một ma trận hai chiều, thuộc kiểu logical

- 0 ứng với màu đen

- 1 ứng với màu trắng

BW(143,219) = 1

Trang 8

Ảnh RGB (RGB images)

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Ảnh được biểu diễn bởi một ma trận ba chiều m × n × 3

- m × n: kích thước ảnh theo pixels

- Ma trận này định nghĩa các thành phần màu red, green, blue cho mỗi điểm ảnh, các phần tử có thể thuộc

kiểu uint8, uint16 hay double

Ảnh biểu diễn theo kiểu này còn gọi là ảnh “truecolor”

Các file ảnh hiện nay thường sử dụng 8 bit cho một thành phần màu, nghĩa là mất 24 bit cho mỗi điểm ảnh (khoảng

16 triệu màu)

Trang 9

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Ảnh RGB (RGB images) (tt.)

RGB(143,219,1) = 0.8392

RGB(143,219,2) = 0.9373

RGB(143,219,3) = 1.0000

Trang 10

Chuyển đổi giữa các kiểu ảnh

indexed thông qua ma trận tuyến tính gray(n)

grayslice X = grayslice(I,n)

X = grayslice(I,v)

Chuyển ảnh trắng đen I thành ảnh indexed X bằng cách lấy

ngưỡng Các giá trị ngưỡng

được xác định bởi vector v hoặc bởi n (khi đó các giá trị ngưỡng là 1/n, 2/n, …, (n-1)/n)

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Trang 11

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Chuyển đổi giữa các kiểu ảnh (tt.)

Trang 12

5.2 Các kiểu hình ảnh trong Matlab (tt.)

Chuyển đổi giữa các kiểu ảnh (tt.)

Trang 13

5.3 Đọc và ghi các dữ liệu ảnh

Đọc dữ liệu ảnh

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

Trang 15

Xem thông số một file ảnh

>> info = imfinfo(filename,fmt)

Các thông tin của ảnh được lưu dưới dạng cấu trúc (struct)

Các thuộc tính (field) có được khi gọi hàm imfinfo

5.3 Đọc và ghi các dữ liệu ảnh (tt.)

Filename Chuỗi chứa tên file FileModDate Chuỗi cho biết ngày hiệu chỉnh file gần đây nhất FileSize Một số nguyên chỉ kích thước file (đơn vị byte)

Trang 16

5.3 Đọc và ghi các dữ liệu ảnh (tt.)

Xem thông số một file ảnh (tt.)

Format Chuỗi cho biết định dạng của ảnh

FormatVersion Chuỗi hoặc số cho biết tên phiên bản của định

dạng Width Số nguyên chỉ chiều rộng ảnh (pixels) Height Số nguyên chỉ chiều cao ảnh (pixels) BitDepth Số nguyên cho biết số bits trên một pixel ColorType Chuỗi cho biết kiểu ảnh: ‘truecolor’, ‘grayscale’

hoặc ‘indexed’

Trang 17

5.4 Chuyển đổi giữa các kiểu dữ liệu

Sử dụng các hàm chuyển kiểu cho các ma trận biểu diễn ảnh:

im2double im2uint8 im2uint16

Lưu ý:

- Khi chuyển từ kiểu dữ liệu nhiều bit sang kiểu dữ liệu ít bit hơn, một số thông tin chi tiết về bức ảnh ban đầu sẽ bị mất

- Không phải lúc nào cũng có thể chuyển kiểu dữ liệu đối với kiểu

ảnh indexed Để chuyển, phải dùng hàm imapprox để giảm số màu cần biểu diễn ảnh xuống

Trang 18

5.5 Các phép toán số học cơ bản trên ảnh

imabsdiff z = imabsdiff(x,y)

Trừ mỗi phần tử của y từ phần

tử tương ứng của x, sau đó

trả về trị tuyệt đối của hiệu

imadd z = imadd(x,y,out_class)

Cộng hai ảnh hoặc cộng một ảnh với một hằng số,

out_class là chuỗi xác định kiểu dữ liệu của tổng

imcomplement im2 = imcomplement(im) Lấy bù của ảnh im

Imdivide z = imdivide(x,y)

Chia các phần tử của ảnh x

cho phần tử tương ứng của y,

các giá trị phân số được làm tròn

Trang 19

5.5 Các phép toán số học cơ bản (tt.)

imlincomb

z = imlincomb(k1,a1, k2,a2, …, kn,an, k,out_class)

Lấy tổ hợp tuyến tính của các ảnh:

z=k1*a1+k2*a2+…+kn*an+k

immultiply z = immultiply(x,y)

Nhân hai ảnh hoặc nhân một ảnh với một hằng số, nếu kết quả bị tràn thì sẽ được giới hạn lại trong tầm cho phép

imsubstract im2 = imsubstract(x,y)

Trừ hai ảnh hoặc trừ một ảnh với một hằng số, nếu kết quả

bị tràn thì sẽ được giới hạn lại trong tầm cho phép

Trang 20

Ví dụ 1: Chồng lẫn hai ảnh trên một nền chung

Trang 24

5.6 Các hàm hiển thị hình ảnh (tt.)

 Hàm imagesc: tương tự hàm image, ngoài trừ việc dữ liệu ảnh sẽ co giãn (scale) để sử dụng toàn bộ bản đồ màu hiện hành

Trang 25

5.6 Các hàm hiển thị hình ảnh (tt.)

 Hàm imshow: tạo đối tượng đồ họa thuộc loại image và hiển thị ảnh trên một figure tự động thiết lập các giá trị của

các đối tượng image, axes và figure để thể hiện hình ảnh

Sử dụng hàm này trong các trường hợp cần các công cụ chú

giải, hỗ trợ in ấn có sẵn trong figure

 Hàm imtool: hiển thị hình ảnh trên Image Tool, là một môi trường tích hợp để hiển thị hình ảnh và biểu diễn một

số tác vụ xử lý hình ảnh phổ biến

Trang 27

5.7 Các phép biến đổi hình học

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 pixels có giá trị đã biết.

Các phương pháp nội suy:

điểm tương ứng của nó trong ảnh ban đầu

mới sẽ được gán là trung bình có trọng số của các pixel trong một lân cận kích thước 2×2

Trang 28

5.7 Các phép biến đổi hình học (tt.)

Phép nội suy ảnh (tt.)

được gán là trung bình có trọng số của các pixel trong một lân cận kích thước 4×4

Phép nội suy là cơ sở để thực hiện các phép biến đổi hình học khác như: thay đổi kích thước ảnh, quay ảnh,

Trang 29

Thay đổi kích thước ảnh

Trang 31

 method: phương pháp nội suy, mặc định là 'nearest'

 bbox: kích thước của ảnh mới: 'crop' hoặc 'loose' Mặc định là 'loose' (tăng kích thước nếu cần)

Trang 33

Trích xuất ảnh

5.7 Các phép biến đổi hình học (tt.)

Cách 1:

>>X2 = imcrop(X,map,rect) % Ảnh indexed

>>A2 = imcrop(A,rect) % Ảnh grayscale hoặc RGB

 rect = [xmin ymin width height] với (xmin,ymin) là tọa độ

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

Trang 34

Trích xuất ảnh (tt.)

5.7 Các phép biến đổi hình học (tt.)

Cách 2:

>>[X2,rect] = imcrop(X,map) % Ảnh indexed

>>[A2,rect] = imcrop(A) % Ảnh grayscale hoặc RGB

Dùng con trỏ chuột để chọn phần ảnh cần trích xuất

Ví dụ:

[I2,rect]=imcrop(I) imshow(I)

imshow(I2)

Trang 35

Phép biến đổi hình học tổng quát

5.7 Các phép biến đổi hình học (tt.)

>>B = imtransform(A,TFORM,interp)

>>[B,XData,YData]=imtransform( ,param1,val1,param2,val2, )

 interp: phương pháp nội suy

 (XData,YData): vị trí của ảnh B trong hệ trục X-Y

 TFORM: cấu trúc của phép biến đổi, được xác định bằng cách sử dụng hàm maketform và cp2tform

Trang 37

 TFORM_type: 'affine', 'linear conformal', 'projective' 'polynomial', 'piecewise linear', 'lwm' Nếu là 'polynomial' thì cần cung cấp thêm thông số order cho biết bậc của đa thức (mặc định là 3)

Ngày đăng: 18/05/2015, 18:30

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w