Tải bản đầy đủ - 0 (trang)
1 Sơ lược về nén ảnh

1 Sơ lược về nén ảnh

Tải bản đầy đủ - 0trang

Báo Cáo Tốt Nghiệp



-



-



Nén ảnh không tổn hao( Lossless compression) : Ảnh khơi phục giống hồn tồn

so với ảnh gốc. Tuy nhiên nếu không tổn hao chỉ đạt được hiệu quả nén rất nhỏ.Sử

dụng các phương pháp mã hóa dữ liệu.

Nén ảnh có tổn hao( Lossy compression): Có thể đạt được hiệu quả nén cao hơn

rất nhiều mà ở điều kiện bằng mắt thường khơng cảm nhận được và vì vậy nên vẫn

đảm bảo chất lượng ảnh. Kiểu nén này ln có sự mất mát thơng tin vì phương

pháp này đã loại bỏ những thông tin dư thừa không cần thiết..Phương pháp nén

ảnh dựa trên phép biến đổi ảnh.



Các phương pháp mã hóa dữ liệu:

-



Mã hàng loạt( RLE): Dùng số đếm để thay thế các đặc điểm giống nhau lặp lại.

Mã Shannon-Fano: Dùng các cụm bit có độ dài thay đổi để mã hóa.

Mã Huffman: Sử dụng các đặc điểm mã hóa của Shannon-Fano với ý tưởng kí

hiệu có khả năng xuất hiệu nhiều có từ mã ngắn.

Mã Lemple-Ziv: Dựa trên việc xây dựng và tra từ điển.

Mã dự đoán: Dựa trên quá trình tạo điểm tuần tự và luật dự đoán.



Các phép biến đổ áp dụng trong nén ảnh:

-



-



Phép biến đổi Cosin rời rạc( DCT): Biểu diễn các giá trị điểm ảnh trên miền tần

số, tập trung năng lượng vào một số hệ số. DCT sử dụng trong các chuẩn JPEG và

MPEG.

Phép biến đổi Wavelet rời rạc(DWT): sử dụng các bộ lọc thơng dài xử lý phân tích

đa phân trong phép DWT.

Phép biến đổi Fractal: Sử dụng các phép biến đổi hình học. [1]



2.1.1.1 Mục đích của việc nén tín hiệu

Nén tín hiệu có hai mục đích chính:

-



Giảm dung lượng lưu trữ.

Giảm băng thông (bandwidth) truyền dẫn.



2.1.1.2 Bản chất của việc nén tín hiệu

Thơng tin của một tín hiệu gồm hai phần:

-



Phần lượng tin (entropy), hay độ bất định (uncertainty)

Phần dư thừa (redundancy): Thông tin không phù hợp (irrelenvancy), thông tin cốt

lõi của entropy.



2.1.2 Các kỹ thuật nén ảnh

2.1.2.1 Các nguyên tắc của nén ảnh

11



Báo Cáo Tốt Nghiệp



Một số tính chất chung nhất của tất cả các ảnh số đó là tương quan giữa các pixel ở cạnh

nhau lớn, điều này dẫn đến dư thừa thông tin để biểu diễn ảnh. Dư thừa thông tin sẽ làm

cho việc mã hóa khơng tối ưu. Do đó cơng việc cần làm để nén ảnh là phải tìm được các

biểu diễn ảnh với tương quan nhỏ nhất để giảm thiểu độ dư thừa thơng tin của ảnh.

Có hai kiểu dư thừa thơng tin được phân loại như sau:

-



-



Dư thừa trong miền không gian: tương quan giữa các giá trị pixel của ảnh, điều

này có nghĩa rằng các pixel lân cận của ảnh có giá trị gần giống nhau (trừ những

pixel ở giáp đường biên ảnh).

Dư thừa trong miền tần số: tương quan giữa các mặt phẳng màu hoặc dải phổ khác

nhau.



Trọng tâm của các nghiên cứu về nén ảnh là tìm cách giảm số bit cần để biểu diễn ảnh

bằng việc loại bỏ dư thừa trong miền không gian và miền tần số càng nhiều càng tốt. [2]



2.1.2.2 Tốc độ và tỉ lệ nén

Ngay cả khi tất cả các chương trình nén file đều dùng chung một thuật tốn thì hoạt động

của chúng cũng khác nhau. Mỗi hãng sẽ triển khai thuật tốn một kiểu để dung hòa hai

vấn đề sau: thời gian và tỷ lệ nén. Chương trình PKZIP thường trội hơn các chương trình

nén khác về mặt tốc độ, mặt tỷ lệ nén, nhiều khi nó cũng khá hơn. Tính ổn định của các

chương trình nén cũng là điều cần quan tâm. Các file nén nói chung rất ít khi bị hỏng.

Lưu ý các loại file nén khơng tương thích với nhau, tức là nếu gửi file nén cho người

khác thì người đó cần phải có chương trình thích hợp mới giải nén ra được. Tuy nhiên để

giải quyết vấn đề này, cả 3 chương trình ARC + PLUS, LHA và PKZIP đều cho phép tạo

file nén tự bung, file nén ở dạng chương trình thực hiện, khi chạy sẽ tự động bung ra, trên

thị trường cũng bắt đầu xuất hiện chương trình chuyển đổi từ dạng file nén này sang dạng

file nén khác (ví dụ chương trình D'Compress for Windows chuyển các file PKZIP, ARC,

LHA sang dạng ARJ).

Các chương trình nén giá khơng cao (PKZIP: 47USD, LHA miễn phí) nên được dùng

rộng rãi. Hạn chế hiện nay của chúng là giao diện người dùng không thuận tiện, thường

phải gõ lệnh với nhiều tham số ở dấu nhắc của DOS để thực hiện một cơng việc nào đó.

Cải tiến theo hướng này đang được thực hiện: ARC + PLUS có giao diện kiểu menu,

PKZIP cũng đã có phần bổ sung là PKZIP menu.

Thư mục nén rời sau đó lại phải bung ra để dùng của các chương trình nén file khá rườm

rà, vì lý do này mà các chương trình nén đĩa như Stacker hoặc Super Store được sử dụng

tương đối rộng rãi. Các chương trình nén đĩa cũng hoạt động trên nguyên tắc giống như

12



Báo Cáo Tốt Nghiệp



nén file, khác biệt là chúng tự động nén và bung mà người dùng không phải quan tâm

đến. Thời gian và tỷ lệ nén của các chương trình nén loại này khác nhau. Để bung 3,5 Mb

dữ liệu, chương trình này hết 12 giây, chương trình khác 40 giây. Tỷ số nén đối với file

văn bản cũng khác: từ 2:1 đến 3:1. Tóm lại khi dùng chương trình nén đĩa, người dùng

n tâm là dung lượng trống của ổ cứng tăng khoảng 2 lần.

Việc bung và nén khi làm việc với file sẽ làm công việc chậm lại một chút. Đối với các

file dữ liệu lớn, điều này thể hiện khá rõ. Khi chạy, các chương trình nén đĩa hoạt động ở

dạng thường trú, bởi thế một mặt nó chiếm dụng bộ nhớ RAM, một mặt có thể gây xung

đột với các chương trình thường trú khác. Các chương trình nén file khi có sự cố hỏng

một vài file, còn chương trình nén đĩa làm hỏng cả ổ đĩa. Tuy nhiên điều này rất ít khi

xảy ra nhưng nó cũng làm cho nhiều người e ngại không dám sử dụng.

Để cài đặt chương trình nén đĩa cần phân chia lại ổ cứng vì máy tính cần được khởi động

bằng đĩa nén trước khi chương trình nén hoạt động. Nếu sử dụng Windows thì phần

khơng nén cần khá lớn (thơng thường cần dành 10 Mb cho vùng khơng nén, chỉ nén vùng

đĩa còn lại).

Một điều có thể làm người dùng đau đầu là phải quyết định tỷ lệ nén là bao nhiêu. Với tỷ

lệ nén 10:1 chẳng hạn, chương trình nén sẽ dành nhiều "con trỏ" để trỏ đến các dữ liệu,

mỗi con trỏ chiếm 2 byte, khi đó dễ xảy ra trường hợp khơng đủ con trỏ, chương trình

báo đĩa đầy mà thực ra không phải như vậy.

Cuối cùng, việc loại bỏ chương trình nén đĩa khi đã cài đặt cũng là một vấn đề hơi phiền

tối. Nhiều chương trình - chẳng hạn Double Density có chức năng loại bỏ. Đối với các

chương trình khác cần tóm các file ẩn của chương trình nén và xóa bỏ chúng đi. Có khi

phải format lại ổ cứng.

Tóm lại, dù một số hạn chế, nén dữ liệu là cách thức kinh tế nhất để mở rộng dung lượng

ổ cứng. Ngồi ra còn tiết kiệm được khá nhiều thời gian và kinh phí khi nén dữ liệu trước

khi truyền đi

Tỷ lệ nén là một trong các đặc trưng quan trọng nhất của mọi phương pháp nén. Tuy

nhiên, về cách đánh giá và các kết quả công bố trong các tài liệu cũng cần được quan tầm

xem xét. Nhìn chung, người ta định nghĩa tỷ lệ nén như sau :

Tỷ lệ nén : t = x %

Với r là tỷ số nén được định nghĩa : r = kích thước dữ liệu gốc / kích thước dữ liệu thu

được sau nén. Như vậy hiệu suất của nén là: h = ( 1 - tỷ lệ nén) x %

13



Báo Cáo Tốt Nghiệp



Trong các trình bày sau khi nói đến kết quả nén, chúng ta dùng tỷ số nén, thí dụ như 10

trên 1 có nghĩa là dữ liệu gốc là 10 sau khi nén chỉ có 1 phần.

Tuy nhiên, cũng phải thấy rằng những số đo của một phương pháp nén chỉ có giá trị với

chính sự nén đó, vì rằng hiệu quả của nén còn phụ thuộc vào kiểu dữ liệu định nén. nhiều

khi tỷ lệ nén cao cũng chưa thể nói rằng phương pháp đó là hiệu quả hơn các phương

pháp khác, vì còn các chi phí khác như thời gian, khơng gian và thậm chí cả độ phức tạp

tính tốn nữa. Thí dụ như nén phục vị trong truyền dữ liệu : vấn đề đặt ra là hiệu quả nén

có tương hợp với đường truyền không. [3]



2.1.2.3 Ưu nhược điểm của phương pháp nén ảnh JPEG

a. Ưu điểm:

JPEG cho phép nén ảnh với tỉ số nén lên đến 80:1 hoặc cao hơn, hiển thị các hình ảnh

đầy đủ màu hơn (full-colour) cho định dạng di động mà kích thước file lại nhỏ hơn. JPEG

cũng được sử dụng rất nhiều trên Web. Lợi ích chính của chúng là chúng có thể hiển thị

các hình ảnh với màu chính xác true-colour (chúng có thể lên đến 16 triệu màu), điều đó

cho phép chúng được sử dụng tốt nhất cho các hình ảnh chụp và hình ảnh minh họa có số

lượng màu lớn.

b. Nhược điểm:

Nhược điểm chính của định dạng JPEG là chúng được nén bằng thuật toán lossy (mất dữ

liệu). Điều này có nghĩa rằng hình ảnh của bạn sẽ bị mất một số chi tiết khi chuyển sang

định dạng JPEG. Đường bao giữa các khối màu có thể xuất hiện nhiều điểm mờ, và các

vùng sẽ mất sự rõ nét, tỉ số nén càng cao thì sự mất mát thơng tin trên ảnh JPEG càng

lớn. Nói một cách khác, định dạng JPEG thực hiện bảo quản tất cả thơng tin màu trong

hình ảnh đó, tuy nhiên với các hình ảnh chất lượng màu cao high-colour như hình ảnh

chụp thì điều này sẽ khơng hề hấn gì.

Các ảnh JPEG không thể làm trong suốt hoặc chuyển động - trong trường hợp này bạn sẽ

sử dụng định dạng GIF (hoặc định dạng PNG để tạo trong suốt).



2.1.2.4 Độ dư thừa (redundancy)

a) Entropy của nguồn tin

Độ dư thừa các pixel/ ảnh (hay nhiều ảnh liên tiếp) có độ tương quan cao với nhau – Độ

dư thừa giữa các pixels:

-



Độ dư thừa giữa các pixel trong 1 frame: Độ dư thừa không gian (spatial

redundancy) dư thừa trong khung (intraframe redundancy).

14



Báo Cáo Tốt Nghiệp



-



Độ dư thừa giữa các pixels trong các frame liên tiếp: Dư thừa thời gian (temporal

redundancy), hoặc độ dư thừa giữa các frame (interframe redundancy).

b) Độ dư thừa giữa các pixels (ảnh tĩnh)

- Bỏ bớt các thông tin về màu so với thơng tin chói (mắt người nhạy cảm với thơng

tin chói hơn).

- Bỏ bớt các thành phần tần số khơng gian q cao (nằm ngồi vùng nhìn thấy của

mắt).

- Giảm độ phân giải không gian của ảnh.

- Cắt bớt ảnh.

- Bỏ bớt các thơng tin ít quan trọng (số lượng màu biểu diễn ảnh (ảnh màu 24 bit có

16,7 triệu màu, ảnh màu 15bit, ảnh màu 8bit có 256 màu), ảnh đen trắng, ảnh nhị

phân): Giảm độ phân giải màu và chói.

- Bỏ bớt độ dư thừa không gian (spatial redundancy): các pixels lân cận trong không

gian có độ tương quan cao.

- Độ dư thừa phổ (spectral redundancy): Các thành phần màu (biểu diễn từng pixel)

có độ tương quan cao.

- Độ dư thừa thống kê (statistical redundancy) các ký hiệu (symbol) xuất hiện trong

dòng bit với xác suất xuất hiện không đồng đều.

- Độ dư thừa tâm lý thị giác (psychovisual redundancy): Các thông tin không phù

hợp với thị giác. Giảm thành phần tần số không gian cao (giảm độ nét).

- Giảm độ phân giải không gian (giảm số lượng pixels trên ảnh => giảm kích thước

ảnh).

- Giảm bớt độ phân giải màu: giảm số bit biểu diễn màu (giảm số thành phần màu

biểu diễn 1 pixel => màu sắc kém trung thực).

c) Nén số tạo ra sái dạng nhân tạo (artifact)

- Tạo hiệu ứng khối (các ô lưới vuông trên ảnh)

- Tạo đường xiên răng cưa.

- Tạo nhiễu.

- Tạo lệch vị trí giáp nối các phần ảnh trong 1 ảnh (do có các chuyển động nhanh

của các đối tượng).

d) Nén video phụ thuộc vào nội dung:

- Nén video tốc độ bit không đổi: Chất lượng không đổi theo nội dung.

- Nén video chất lượng thay đổi: Tốc độ bit thay đổi theo nội dụng.



2.2 Mã DCT

2.2.1 Giới thiệu thuật toán DCT

DCT (biến đổi cosine rời rạc) chủ yếu được sử dụng cho hình ảnh nén từ nhiều năm qua.

Lựa chọn làm tiêu chuẩn cho JPEG là đáng kể vào lý do phổ biến cho sự phổ biến. DCT

có thể thực hiện trong một số ứng dụng khơng phân tích như tín hiệu xử lý & xử lý hình

ảnh các ứng dụng DSP như video hội nghị. DCT có thể được sử dụng trong chuyển đổi

15



Báo Cáo Tốt Nghiệp



dữ liệu nén. DCT là một biến đổi thực tế có một bộ cơ bản cố định chức năng. DCT được

sử dụng để ánh xạ khơng gian hình ảnh theo tần số. [10]

Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổi DCT, ảnh được phân

chia thành các khối vuông, mỗi khối này thường có kích thước 8 x 8 pixel và biểu diễn

các mức xám của 64 điểm ảnh, các mức xám này là các số nguyên dương có giá trị từ 0

đến 255. Việc phân khối này sẽ làm giảm được một phần thời gian tính tốn các hệ số

chung, mặt khác biến đổi cosin đối với các khối nhỏ sẽ làm tăng độ chính xác khi tính

tốn với dấu phẩy tĩnh, giảm thiểu sai số do làm tròn sinh ra.

Biến đổi DCT là một cơng đoạn chính trong các phương pháp nén sử dụng biến đổi.

Công thức dưới đây minh họa cho hai phép biến đổi DCT thuận nghịch đối với mỗi khối

ảnh có kích thước 8 x 8. Giá trị x(n 1,n2) biểu diễn các mức xám của ảnh trong miền không

gian, K(k1,k2) là các hệ số sau biến đổi DCT trong miền tần số.



Công thức (1)

Công thức (2)

Với và

Entropy của thông điệp S:



Với là xác suất xuất hiện của ký hiệu Si trong S.



2.2.2 Giải thuật DCT



16



Báo Cáo Tốt Nghiệp



Sơ đồ 2.1 Sơ đồ nén ảnh DCT

-



Phân tích sơ đồ nén ảnh DCT:

o Đầu tiên phân ảnh ra các khối 8x8.

o Biến đổi DCT: là khối biến đổi cosin rời rạc, biến đổi thông tin ảnh từ miền

không gian sang miền tần số.

o Lượng tử hóa: là quá trình làm giảm số lượng bit cần để lưu trữ các hệ số

(q trình mất mát thơng tin).

o Mã hóa: quá trình này sẽ tách biệt việc xử lý hai thành phần DC các hệ số

một chiều đặc trưng cho phần lớn tín hiệu của ảnh và thành phần AC các hệ

số xoay chiều đặc trưng cho các thông tin chi tiết của ảnh.

o Bảng lượng tử hóa: là ma trận 8x8 được sử dụng cho việc biến đổi dữ liệu

từ số thực sang số nguyên.

o Bảng mã hóa: là luật mã hóa các dữ liệu số nguyên sau lượng tử hóa thành

các từ mã. [9]



Sơ đồ 2.2 Sơ đồ giải nén

-



Quá trình giải nén ngược lại với quá trình nén ảnh.



Phương pháp nén ảnh JPEG dựa trên nguyên lý sau: ảnh màu trong không gian của 3 màu

RGB (red Green Blue) được biến đổi về hệ YUV (hay YCBCr) (điều này không phải là

nhất thiết, nhưng nếu thực hiện thì cho kết quả nén cao hơn) theo cơng thức :

YUV. = 0.615R − 0.515G − 0.100B

Y= 0.299R + 0.587G + 0.114B

U= 0.492(B − Y)= = − 0.147R − 0.289G + 0.436B

V= 0.877(R − Y)

17



Báo Cáo Tốt Nghiệp



Hệ YUV là kết quả nghiên cứu của các nhà sản xuất vô tuyến truyền hình hệ Pal, Secam

và NTSC, nhận thấy tín hiệu video có thể phân ra 3 thành phần Y, U, V (cũng như phân

theo màu chuẩn đỏ, xanh lá cây và xanh da trời). Và một điều thú vị là hệ nhãn thị của

con người rất nhạy cảm với thành phần Y và kém nhạy cảm với hai loại U và V. Phương

pháp JPEG đã nắm bắt phát hiện này để tách những thông tin thừa của ảnh. Hệ thống nén

thành phần Y của ảnh với mức độ ít hơn so với U, V, bởi người ta ít nhận thấy sự thay đổi

của U và V so với Y.

Giai đoạn tiếp theo là biến đổi những vùng thể hiện dùng biến đổi cosin rời rạc

(thông thường là những vùng 8x8 pixel). Khi đó thơng tin về 64 pixel ban đầu sẽ biến đổi

thành ma trận có 64 hệ số thể hiện "thực trạng" các pixel. Điều quan trọng là ở đây hệ số

đầu tiên có khả năng thể hiện "thực trạng" cao nhất, khả năng đó giảm rất nhanh với các

hệ số khác. Nói cách khác thì lượng thơng tin của 64 pixel tập trung chủ yếu ở một số hệ

số ma trận theo biến đổi trên. Trong giai đoạn này có sự mất mát thơng tin, bởi khơng có

biến đổi ngược chính xác. Nhưng lượng thơng tin bị mất này chưa đáng kể so với giai

đoạn tiếp theo. Ma trận nhận được sau biến đổi cosin rời rạc được lược bớt sự khác nhau

giữa các hệ số. Đây chính là lúc mất nhiều thơng tin vì người ta sẽ vứt bỏ những thay đổi

nhỏ của các hệ số. Như thế khi bung ảnh đã nén bạn sẽ có được những tham số khác của

các pixel. Các biến đổi trên áp dụng cho thành phần U và V của ảnh với mực độ cao hơn

so với Y (mất nhiều thông tin của U và V hơn).



DCT



Các giá trị mức xám của 1 khối 64 điểm ảnh



18



Báo Cáo Tốt Nghiệp



Hình 2.1 Các bước của q trình mã hóa biến đổi DCT đối với 1 khối



2.2.3 Lượng tử và giải lượng tử

Sau khi thực hiện biến đổi DCT, 64 hệ số sẽ được lượng tử hóa dựa trên một bảng lượng

tử gồm 64 phần tử Q(u,v) với 0 ≤ u, v ≤ 7. Bảng này được định nghĩa bởi từng ứng dụng

cụ thể. Các phần tử trong bảng lượng tử có giá trị 1Các

đếnhệ255

đượcđổi

gọiDCT

là các

bước nhảy

số biến

thuận

Các hệ số sau lượng tử hóa

cho các hệ số DCT. Q trình này sau đó sẽ được làm tròn xuống số ngun gần nhất.

Cơng thức 3 thể hiện lượng tử với F(u,v) là các hệ số DCT, F Q(u,v) là các hệ số sau lượng

tử, các hệ số này sẽ được đưa vào bộ mã hóa Entropy.



Cơng thức (3)

Mục đích của việc lượng tử hóa là giảm số lượng bit cần để lưu trữ các hệ số biến đổi

bằng việc giảm độ chính xác của các hệ số này cho nên lượng tử là q trình xử lý có mất

thơng tin.

Q trình giải lượng tử ở phía bộ giải mã được thực hiện ngược lại. Các hệ số sau bộ giải

mã entropy sẽ nhân với các bước nhảy trong bảng lượng tử (bảng lượng tử được đặt trong

phần header của ảnh JPEG). Kết quả này sau đó được đưa vào biến đổi DCT ngược.

Các bước đầu tiên của q trình này là khơi phục các bảng Huffman từ hình ảnh & giải

nén. Ở phần tiếp theo, giá trị DCT của mỗi khối sẽ giải nén một khối. JPEG sẽ giúp giải

nén 63 giá trị còn lại trong mỗi khối bằng cách điền vào số 0 yêu cầu. Ở bước cuối cùng,

thứ tự zigzag kết hợp sẽ được giải mã và các khối có kích thước 8x8 được hình thành.

[10]



2.2.4 Khái niệm về Matlab

Matlab (MATrix LABoratory) là một ngơn ngữ lập trình thực hành bậc cao sử dụng để

giải các bài toán kỹ thuật. Matlab tích hợp được việc tính tốn, thể hiện hiểu quả, cho

phép lập trình, giao diện làm việc dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện

được lập trình sẵn cho phép người sử dụng có thể sử dụng được những ứng dụng sau đây:

-



Sử dụng các hàm có sẵn trong thư viện, các phép tính tốn học thơng thường.

Cho phép lập trình tạo ra ứng dụng mới.

Cho phép mơ phỏng các mơ hình thực tế.

Phân tích, khảo sát, hiển thị dữ liệu.

Với phần mềm đồ họa mạnh.

19



Báo Cáo Tốt Nghiệp



-



Cho phép phát triển, giao tiếp với một số phần mềm như C++, Fortran. [9]



2.2.5 Cấu trúc dữ liệu của Matlab và các ứng dụng

Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (khơng đòi hỏi kích

thước). Chúng cho phép giải quyết vấn đề liên quan đến lập trình bằng máy tính, đặc biệt

sử dụng các phép tính về ma trận, vector và có thể sử dụng ngơn ngữ C hoặc Fortran lập

trình, thực hiện ứng dụng lập trình đó bằng các câu lệnh từ Matlab.

Matrix laboratory tức là thư viện về ma trận, từ đó phần mềm Matlab được viết nhằm

cung cấp cho việc truy cập vào phần mềm ma trận dễ dàng, phần mềm ma trận này còn

được phát triển bởi các cơng trình Linpack và Eispack. Hiện nay, Matlab được phát triển

bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận.



2.2.5.1 Dữ liệu trong Matlab

Dữ liệu trong Matlab được thể hiện dưới dạng ma trận và có các kiểu dữ liệu được liệt kê

sau đây:

-



Kiểu đơn single: kiểu này có lợi cho bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn.

Khơng được sử dụng trong các phép tính tốn học, độ chính xác kém.

Kiểu double: kiểu này là kiểu thông dụng nhất trong các biến của Matlab.

Kiểu Sparse

Kiểu uint 8, uint 16 …

Kiểu char

Kiểu cell

Kiểu Structure



Trong Matlab kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép tính tốn học.



2.2.5.2 Ứng dụng

-



Các khóa học về tốn học.

Các kỹ sư, các nhà nghiên cứu khoa học.

Dùng Matlab để tính tốn, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất.



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

Với các thao tác nhất định, thuận tiện khi chuyển đổi ảnh từ dạng này sang dạng khác.

Nếu ta muốn lọc một ảnh màu được lưu trữ dưới dạng ảnh số, ta phải chuyển đổi nó

thành dạng ảnh RGB. Khi áp dụng phép lọc tới ảnh RGB, Matlab sẽ lọc giá trị cường độ

tương ứng trong ảnh. Nếu Lọc ảnh số Matlab đơn giản chỉ áp đặt phép lọc tới ma trận ảnh

số.

Các hàm được sử dụng trong chuyển đổi ảnh:

20



Báo Cáo Tốt Nghiệp



-



dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng bằng cách trộn, tạo

một ảnh từ một ảnh RGB.

gray2id: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng.

grayslice: Tạo một ảnh từ một ảnh cường độ đen trắng bằng cách đặt ngưỡng.

im2bw: Tạo một ảnh nhị phân tử từ một một ảnh cường độ, ảnh chỉ số hay ảnh

RGB trên cơ cở ngưỡng ánh sáng.

ind2gray: Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số.

ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số.

mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận bằng

cách lấy tỉ lệ dữ liệu.

rgb2gray: Tạo một ảnh cường độ đen trắng từ ảnh RGB.

rgb2ind: Tạo một ảnh chỉ số từ ảnh RGB. [9]



2.3 Cơ sở lý thuyết GUI

2.3.1 Sơ lược về lập trình giao diện người dùng GUIDE trong MATLAB

2.3.1.1 Khái niệm GUI

Để thuận tiện cho việc sử dụng các ứng dụng hay chương trình mà ta đã viết chúng ta có

thể tạo ra giao diện đồ họa GUI (Graphic User Interface) giữa ngưới dùng và Matlab.

Trong giao diện này ta có thể xuất dữ liệu dưới hai dạng văn bản và đồ họa. Mỗi một GUI

có thể có một hay nhiều giao diện. Việc tạo GUI tạo nên một công cụ nhập xuất dữ liệu

một cách trực quan, nhanh chóng và rất thuận tiện. Ngồi ra có thể dùng GUI để giám sát

các quá trình, hiển thị các đối tượng.

Ứng dụng của Matlab lập trình giao diện rất mạnh và dễ thực hiện, nó có thể tạo ra giao

diện người dùng tương tự VBB, C++.

GUI bao gồm đầy đủ các chương trình hỗ trợ như thực hiện phép tốn LOGIC, mơ phỏng

không gian 2D, 3D, đọc hiển thị dữ liệu... Giao tiếp với người dùng thơng qua hình ảnh,

các nút nhấn thực thi.

Hầu hết GUI chỉ thực hiện (trả lời) lệnh người dùng thông qua các tác động của người

dùng lên giao diện, người sử dụng không cần biết cấu trúc chương trình vẫn có thể thực

hiện được. GUI được thực hiện thông qua các hàm CALLBACK, khi người dùng tác

động lên giao diện bằng các cách khác nhau, hàm CALLBACK sẽ được gọi để thực thi. [5]



2.3.1.2 Bắt đầu với GUI

Có 2 phương pháp để lập trình GUI:

-



Cách đơn giản nhất là sử dụng cơng cụ có sẵn trong GUI Matlab để lập trình. Ưu

điểm của cách này là dễ thực hiện và các hàm FUNCTION được GUI tự tạo sẵn.

Cách khác được lập trình từ siêu tệp Mfile bằng các hàm FUNCTION do người

lập trình tự viết, nó có ưu điểm là tùy biến cao. Tuy nhiên cách này khó hơn và đòi

hỏi người lập trình phải có hiểu biết sâu và trình độ. [8]

21



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

1 Sơ lược về nén ảnh

Tải bản đầy đủ ngay(0 tr)

×