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

Cơ bản về xử lý ảnh số

150

>> frm3 = multi(:,:,:,3) % truy xuất frame thứ 3

Chuyển đổi giữa các kiểu ảnh
Có một số thao tác xử lý ảnh trong MATLAB chỉ thực hiện được trên kiểu ảnh này mà không
thực hiện được trên một kiểu ảnh khác, ví dụ muốn lọc ảnh màu, thì ảnh cần lọc phải ở dạng
RGB. Vì vậy, trong MATLAB có một số hàm cho phép người sử dụng chuyển đổi qua lại
giữa các kiểu ảnh cho tiện xử lý. Bảng 11.1 dưới đây liệt kê danh sách các hàm như vậy.

Bảng 11.1.

Các hàm chuyển đổi giữa các kiểu ảnh

Tên hàm

Cú pháp

Mô tả

dither

dither(RGB,map)

dither(I)

Tạo ảnh nhị phân từ ảnh trắng đen I hoặc tạo
ảnh indexed từ ảnh RGB và ma trận màu map
bằng phương pháp dithering

gray2ind

[X,MAP] = gray2ind(I,N)

[X,MAP] = gray2ind(BW,N)

Chuyển đổi ảnh nhị phân BW hoặc ảnh
intensity thành ảnh index thông qua ma trận
màu tuyến tính gray(N)

grayslice

X=grayslice(I,N)

X=grayslice(I,V)

Chuyển đổi ảnh trắng đen thành ảnh index
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)

im2bw

bw = im2bw(i,level)

bw = im2bw(x,map,level)

bw = im2bw(rgb,level)

Chuyển đổi các loại ảnh trắng đen, ảnh index,
ảnh RGB thành nhị phân bằng cách lấy ngưỡng
bởi level

ind2gray

i = ind2gray(x,map)

Chuyển đổi ảnh index I với ma trận màu map
thành ảnh trắng đen

ind2rgb

rgb = ind2rgb(x,map)

Chuyển đổi ảnh index I với ma trận màu map
thành ảnh RGB

mat2gray

i = mat2gray(a,[amin amax]) Tạo ảnh trắng đen từ ma trận A, giá trị Amin

tương ứng với mức 0 (đen), giá trị Amax ứng
với mức 1 (trắng), mặc định: Amin, Amax sẽ là
giá trị lớn nhất và nhỏ nhất của A

rgb2gray

i = rgb2gray(rgb)

Chuyển đổi ảnh RGB thành ảnh trắng đen

rgb2ind

[x,map] = rgb2ind(rgb,n)

x = rgb2ind(rgb,map)

[x,map] = rgb2ind(rgb,tol)

Chuyển ảnh RGB rgb thành ảnh index [x,map]:
TH1: N<=65535, số màu tối đa là N
TH2: mỗi pixel được xấp xỉ đến màu gần giống
nhất trong bản màu map
TH3: tol

∈ [0,1], số màu tối đa:

(floor(1/tol)+1)^3

11.1.2. ÑOÏC VAØ GHI CAÙC DÖÕ LIEÄU AÛ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 ảnh trong MATLAB. Hầu hết các định dạng ảnh hiện nay dùng 8
bit cho mỗi pixel (ứng với một thành phần màu), do đó sau khi đọc MATLAB sẽ lưu lại dưới
dạng ma trận thuộc kiểu uint8. Với các định dạng ảnh 16 bit như PNG và TIFF, MATLAB
sẽ dùng kiểu uint16. Với ảnh index, ma trận màu sẽ được lưu với kiểu double. Cú pháp
của hàm imread:

>> A = imread(filename,fmt)

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.