1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ỨNG DỤNG MATLAB TRONG xử lý ẢNH số

27 1,5K 10

Đ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 27
Dung lượng 588,02 KB

Nội dung

có sơ đồ nguyên lý, sơ đồ khối, sơ đồ thuật toán và hướng dẫn chi tiết về ỨNG DỤNG MATLAB TRONG xử lý ẢNH số dùng MATLAB .................................................................................................................................................................................

Trang 1

1.1 Tổng quan về Matlab

1.1.a Khái niệm về Matlab

Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bàitoán về kỹ thuật Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lậptrình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệu cùng với thư viện đượclập trình sẵn cho phép người sử dụng có thể có đượ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 toán học thông thường

 Cho phép lập trình tạo ra những ứ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 và hiển thị dữ liệu

 Với phần mềm đồ hoạ cực mạnh

 Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran

1.1.b Tổng quan về cấu trúc hoạt động của Matlab và các ứng dụng liên quan.

Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng nàykhông đòi hỏi về kích thước) Chúng cho phép giải quyết các vấn đề liên quan đến lậptrình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vector và có thể sửdụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng cáccâu lệnh gọi từ Matlab Matlab được viết tắt từ chữ “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ậpvào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này được phát triển bởicác công trình Linpack và Eispack Ngày 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

+ Dữ liệu

Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng–tổng quát), và có cáckiểu dữ liệu được liệt kê sau đây:

Trang 2

 Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn,kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chínhxác kém hơn

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

 Kiểu Sparse

 Kiểu uint8, uint16

 Kiểu char ví dụ ‘Hello’

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

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

+ Toolbox là một công cụ quan trọng trong Matlab

Công cụ này được Matlab cung cấp cho phép bạn ứng dụng các kỹ thuật để phântích, thiết kế, mô phỏng các mô hình

Ta có thể tìm thấy toolbox ở trong mô trường làm việc của

 Mạng nơron

 Logic mờ

 Simulink

1.1.c Hệ thống Matlab

Hệ thống giao diện của Matlab được chia thành 5 phần:

• Môi trường phát triển

Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh vàcác file, ta có thể liệt kê một số như sau

+ Desktop

+ Command Window

+ Command History

Trang 3

+ Browsers for viewinghelp

• Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin, atan,atan2 etc , các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghịchđảo, trị riêng, chuyển đổi fourier, laplace, symbolic library

• Ngôn ngữ Matlab Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng lệnh,các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng

• Đồ họa trong Matlab Bao gồm các câu lệnh thể hiện đồ hạo trong môi trường 2D và3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa người sử dụng

và máy tính

• Giao tiếp với các ngôn ngữ khác Matlab cho phép tương tác với các ngôn ngữ khácnhư C, Fortran …

1.1.d Làm quen với matlab

Hình 1.1.d Cửa sổ desktop (cửa sổ lớn nhất), và các cửa sổ phụ của nó

Trước tiên để khởi động Matlab bạn click vào biểu tượng Matlab.exe, trên màn hìnhxuất hiện cửa sổ sau (Xem hình vẽ 1.1) Cửa sổ đó chứa các thanh công cụ (Giao diệnngười và máy) cần thiết cho việc quản lý các files, các biến, cửa sổ lệnh, có thể coidesktop là các panel gồm các ô, vùng, quản lý và tác dụng của từng cửa sổ nhỏ đượcquản lý bởi desktop

1.1.e Các cửa sổ Làm việc của Matlab

+ Cửa sổ Command window

Trang 4

Là cửa sổ giao tiếp chính của Matlab bởi đây là nơi nhập giá trị các biến, hiểnthị giá trị, tính toán giá trị của biểu thức, thực thi các hàm có sẵn trong thư viện (dạnglệnh), hoặc các hàm (dạng function) do người dùng lập trình ra trong M_files

Các lệnh được nhập sau dấu nhắc ‘ >> ‘, và nếu có sai sót trong quá trình gõ(nhập) lệnh thì hãy nhấn phím Enter cho đến khi nhận được dấu nhắc >> Thực thi lệnhbằng nhấn phím Enter

Gõ các lệnh sau:

>> A= pi/2 ;

>> B= sin(A)

B=1

Hình 1.1.e1 Hình cửa sổ Comman window

Hoặc chương trình soạn thảo trong M-file dưới đây:

% Chuong trinh trong M-file

x= 0:pi/6:2*pi;

y=sin(x);

plot(x, y);

% chuong trinh được lưu với tên file là “ve_sin.m”

+ Cửa sổ command History

Các dòng mà bạn nhập vào trong cửa sổ Command window (các dòng này có thể

là dòng nhập biến, hoặc có thể là dòng lệnh thực hiện hàm nào đó) được giữ lại trongcửa sổ Command History, và cửa sổ này cho phép ta sử dụng lại những lệnh đó bằngcách click chuột lên các lệnh đó hoặc các biến, nếu như bạn muốn sử dụng lại biến đó

Trang 5

Khi một chương trình viết trong M-file, thì tuỳ theo ứng dụng cụ thể, tuỳ theongười lập trình mà chương trình có thể viết dưới dạng sau:

Trang 6

 Dạng Script file: Tức là chương trình gồm tập hợp các câu lệnh viết dướidạng liệt kê, không có biến dữ liệu vào và biến lấy giá trị ra.

 Dạng hàm function: có biến dữ liệu vào và biến ra

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

Với các thao tác nhất định, sẽ thật hữu ích khi có thể chuyển đổi ảnh từ dạng nàysang dạng khác Chẳng hạn, nếu ta muốn lọc một ảnh màu được lưu trữ dưới dạng ảnh

số, đầu tiên ta nên chuyển đổi nó thành dạng ảnh RGB Khi ta áp dụng phép lọc tới ảnhRGB, Matlab sẽ lọc giá trị cường độ tương ứng trong ảnh Nếu ta lọc ảnh số Matlab đơngiản chỉ áp đặt phép lọc tới ma trận ảnh số và kết quả sẽ không có ý nghĩa

Chú ý: Khi chuyển đổi một ảnh từ dạng này sang dạng khác, ảnh kết quả có thể khác

ảnh ban đầu Chẳng hạn, nếu ta chuyển đổi một ảnh màu chỉ số sang một ảnh cường độ,kết quả ta sẽ thu được một ảnh đen trắng

Danh sách sau đây sẽ liệt kê các hàm được sử dụng trong việc chuyển đổi ảnh:

+ 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 chỉ số từ một ảnh RGB bằng cách trộng (dither)

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

+ grayslice: Tạo một ảnh chỉ số 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ừ một ảnh cường độ, ảnh chỉ số hay ảnh RGB trên cơ

sở của 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ố

Trang 7

+ 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ệ giữ liệu

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

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

Ta cũng có thể thực hiện các phép chuyển đổi kiểu chỉ sử dụng cú pháp củaMatlab Chẳng hạn , ta có thể convert một ảnh cường độ sang ảnh RGB bằng cáchghép nối 3 phần copy của ma trận ảnh gốc giữa 3 chiều:

RGB=cat(3,I,I,I );

Ảnh RGB thu được có các ma trận đồng nhất cho các mặt phẳng R,G,B vì vậyảnh hiển thị giống như bóng xám

1.3 Giao diện đồ hoạ GUI

1.3.a Khái niệm

Để 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ộtGUI 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 Ngoài ra có thể dùng GUI đểgiám sát các quá trình, hiển thị các đối tượng…

1.3.b Cách tạo GUI

Có 2 cách để tạo GUI:

+Tạo GUI bằng cách gõ lệnh trực tiếp

+Tạo GUI bằng cách dùng công cụ có sẵn trên Matlab

1.3.c Tạo GUI bằng cách gõ lệnh trực tiếp

Ta gõ lệnh như sau:

Trang 8

Hình 1.3.c1: Hình ảnh lệnh tạo GUI

Ta sẽ thu được khung GUI sau:

Hình 1.3.c2: Hình ảnh thu được sau khi dùng lệnh tạo GUI

Trang 9

1.3.d Tạo GUI bằng cách sử dụng công cụ có sẵn trên Matlab.

Ta gõ guide trong cửa sổ chính của Matlab, sau đó trên cửa sổ chính sẽ xuất hiệntab

Hình 1.3.d: Cửa sổ thiết kế GUISau đó ta tiến hành thiết kế GUI theo ý muốn

Trang 10

CHƯƠNG 2:

NÉN ẢNH SỐ,KHÔI PHỤC ẢNH SỐ VÀ

NHẬN DẠNG CẠNH GÓC ẢNH SỐ2.1 NÉN ẢNH SỐ

2.1.1 Các khái niệm về ảnh

+ Điểm ảnh (Picture Element)

Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử lýbằng máy tính (số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng mộtảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng(mức xám) Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt ngườikhông phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh(PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixelứng với cặp tọa độ (x, y)

Hình 2.1 Hình minh họa của pixelĐịnh nghĩa:

Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặcmàu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợpsao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh

số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh

+ Mức xám của ảnh

Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độxám của nó Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùngtrong xử lý ảnh

1 pixel

Trang 11

a) Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằnggiá trị số tại điểm đó

Hình 2.2 Hình biểu diễn mức xám của ảnh sốb) Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 làmức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám:Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255)

c) Ảnh đen trắng:

Ảnh đen trắng chỉ bao gồm 2 màu: màu đen và màu trắng (không chứa màukhác) với mức xám ở các điểm ảnh có thể khác nhau Người ta phân mức đen trắng đóthành L mức Nếu sử dụng số bit B=8 bit để mã hóa mức đen trắng (hay mức xám) thì Lđược xác định :

L=2B (trong ví dụ của ta L=28= 256 mức)

Nếu L bằng 2, B=1, nghĩa là chỉ có 2 mức: mức 0 và mức 1, còn gọi là ảnh nhị phân.Mức 1 ứng với màu sáng, còn mức 0 ứng với màu tối Nếu L lớn hơn 2 ta có ảnh đa cấpxám Nói cách khác, với ảnh nhị phân mỗi điểm ảnh được mã hóa trên 1 bit, còn vớiảnh 256 mức, mỗi điểm ảnh được mã hóa trên 8 bit Như vậy, với ảnh đen trắng: nếudùng 8 bit (1 byte) để biểu diễn

mức xám, số các mức xám có thể biểu diễn được là 256 Mỗi mức xám được biểu diễndưới dạng là một số nguyên nằm trong khoảng từ 0 đến 255, với mức 0 biểu diễn chomức cường độ đen nhất và 255 biểu diễn cho mức cường độ sáng nhất

Ảnh nhị phân khá đơn giản, các phần tử ảnh có thể coi như các phần tử logic.Ứng dụng chính của nó được dùng theo tính logic để phân biệt đối tượng ảnh với nềnhay để phân biệt điểm biên với điểm khác

Trang 12

d) Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên thếgiới màu) trong đó R, G, B là một giá trị xám và được biểu biểu diễn bằng 1 byte, khi

đó các giá trị màu: 28*3=224≈ 16,7 triệu màu

Mỗi màu cũng phân thành L cấp màu khác nhau (thường L=256) Mỗi khoảngnày biểu diễn cho cường độ sáng của một trong các màu chính Do đó, để lưu trữ ảnhmàu người ta có thể lưu trữ từng màu riêng biệt, mỗi màu lưu trữ như một ảnh đa cấpxám Do đó, không gian nhớ dành cho một ảnh màu lớn gấp 3 lần một ảnh đa cấp xámcùng kích cỡ

P(x, y) = (R, G, B)

- Hệ màu CMY: là phần bù của hệ màu

RGB (C, M, Y)=(1, 1, 1)-(R, G, B)Hay

C+R=M+G=Y+B=1

=> Hệ màu này thường được dùng trong máy in

- Hệ màu CMYK: trong đó K là độ đậm nhạt của màu K= min (C, M, Y)

P(x, y) = (C-K, M-K, V-K, K)

+ Ví dụ:

Với (C1, M1, Y1) ta sẽ có K=min (C1, M1, Y1)

vậy CMYK = (C1-K, M1-K, Y1-K, K)

Hình 2.3 Hệ tọa độ RGB

+ Định nghĩa ảnh số

Ảnh số là tập hợp các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gầnvới ảnh thật

Trang 13

Một ảnh số giả sử được biểu diễn bằng hàm f(x, y) Tập con các điểm ảnh là S;cặp điểm ảnh có quan hệ với nhau ký hiệu là p, q.

Một số khái niệm nén ảnh số

+Nén dữ liệu (Data Compression)

Nén dữ liệu là quá trình làm giảm lượng thông tin "dư thừa" trong dữ liệu gốc và

do vậy, lượng thông tin thu được sau nén thường nhỏ hơn dữ liệu gốc rất nhiều Với dữliệu ảnh, kết quả thường là 10 : 1 Một số phương pháp còn cho kết quả cao hơn Theokết quả nghiên cứu được công bố gần đây tại viện kỹ thuật Georgie, kỹ thuật nénfractal cho tỉ số nén là 30 trên 1

Ngoài thuật ngữ "nén dữ liệu”, do bản chất của kỹ thuật này nó còn có một sốtên gọi khác như: giảm độ dư thừa, mã hoá ảnh gốc

Từ hơn hai thập kỷ nay, có rất nhiều kỹ thuật nén đã được công bố trên các tàiliệu về nén và các phần mềm nén dữ liệu đã xuất hiện ngày càng nhiều trên thươngtrường Tuy nhiên, chưa có phương pháp nén nào được coi là phương pháp vạn năng(Universel) vì nó phụ thuộc vào nhiều yếu tố và bản chất của dữ liệu gốc Trong chươngnày, chúng ta không thể hy vọng xem xét tất cả các phương pháp nén Hơn nữa, các kỹthuật nén dữ liệu chung đã được trình bày trong nhiều tài liệu chuyên ngành Ở đây,chúng ta chỉ đề cập các phương pháp nén có đặc thù riêng cho dữ liệu ảnh

+Tỷ lệ nén (Compression rate)

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 đượcquan tâm xem xét Nhìn chung, người ta định nghĩa tỷ lệ nén như sau:

Tỷ lệ nén =

1

r 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à: (1-tỷ lệ nén) x %

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 phần 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 Tỷ lệ nén cũng chỉ là một trong các đặc trưng cơ bản của phương pháp 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

Trang 14

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 toá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

Cũng cần phân biệt nén dữ liệu với nén băng truyền Mục đích chính của nén làgiảm lượng thông tin dư thừa và dẫn tới giảm kích thước dữ liệu Tuy vậy, đôi khi quátrình nén cũng làm giảm băng truyền tín hiệu số hoá thấp hơn so với truyền tín hiệutương tự

+ Các loại dư thừa dữ liệu

Như trên đã nói, nén nhằm mục đích giảm kích thước dữ liệu bằng cách loại bỏ

dư thừa dữ liệu Việc xác định bản chất các kiểu dư thừa dữ liệu rất có ích cho việc xâydựng các phương pháp nén dữ liệu khác nhau Nói một cách khác, các phương pháp nén

dữ liệu khác nhau là do sử dụng các kiểu dư thừa dữ liệu khác nhau Nên có 4 kiểu dưthừa chính:

a Sự phân bố ký tự

Trong một dãy ký tự, có một số ký tự có tần suất xuất hiện nhiều hơn một số dãykhác Do vậy, ta có thể mã hoá dữ liệu một cách cô đọng hơn Các dãy ký tự có tần suấtcao được thay bởi một từ mã nhị phân với số bít nhỏ; ngược lại các dãy có tần suất thấp

sẽ được mã hoá bởi từ mã có nhiều bít hơn Đây chính là bản chất của phương pháp mãhoá Huffman

b Sự lặp lại của các ký tự

Trong một số tình huống như trong ảnh, 1 ký hiệu (bit "0" hay bit "1") được lặp

đi lặp lại nhiều lần Kỹ thuật nén dùng trong trường hợp này là thay dãy lặp đó bởi dãymới gồm 2 thành phần: số lần lặp và kí hiệu dùng để mã Phương pháp mã hoá kiểu này

có tên là mã hoá loạt dài RLC (Run Length Coding)

c Những mẫu sử dụng tần suất

Có thể có dãy ký hiệu nào đó xuất hiện với tần suất tương đối cao Do vậy, cóthể mã hoá bởi ít bit hơn Đây là cơ sở của phương pháp mã hoá kiểu từ điển doLempel-Ziv đưa ra và có cải tiến vào năm 1977, 1978 và do đó có tên gọi là phươngpháp nén LZ77, LZ78 Năm 1984, Terry Welch đã cải tiến hiệu quả hơn và đặt tên làLZW (Lempel-Ziv- Welch)

d Độ dư thừa vị trí

Ngày đăng: 11/03/2017, 19:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w