0
Tải bản đầy đủ (.doc) (43 trang)

Chương 3 MATLAB CHO XỬ Lí ẢNH

Một phần của tài liệu KHỬ NHIỄU ẢNH BẰNG BIẾN ĐỔI WAVELET (Trang 28 -36 )

3.1 Tỡm hiểu cơ bản về MATLAB 3.1.1 Giới thiệu chung về MATLAB

• Matlab là một cụng cụ tớnh toỏn trong kỹ thuật, chủ yếu là cỏc bài toỏn về ma trận.

• Matlab cũn cung cấp cỏc toolboxes chuyờn dụng để giải quyết những vấn đề cụ thể như xử lý ảnh, xử lý số tớn hiệu, neuron, mụ phỏng…

• Matlab cung cấp Image Processing toobox, chuyờn về xử lý ảnh. Cú thể núi Matlab là một cụng cụ mạnh giỳp cho việc thực hiện cỏc giải thuật xử lý ảnh nhanh chúng và dễ hiểu.

3.1.2 Sử dụng cụng cụ giỳp đỡ

Đỏnh lệnh help tờn_lệnh để biết được cỏch sử dụng và cụng dụng của tờn_lệnh.

Vớ dụ: Help convert

Nếu khụng biết chớnh xỏc tờn lệnh là gỡ ta cú thể dựng lệnh lookfor

Vớ dụ: lookfor convert sẽ cho ta danh sỏch cỏc lệnh cú từ convert trong phần trợ giỳp.

3.1.3 Lập trỡnh trong MATLAB

3.1.3.1 Biểu thức điều kiện: Gần giống trong C

• If else elseif.

• Swith: chỉ thực thi duy nhất một nhúm lệnh. 3.1.3.2 Vũng lặp

• For

3.1.3.3 Hàm m-file

Hàm m-file là một chương trỡnh con do chỳng ta yờu cầu cỏc đối số ngừ vào và cú thể trả về đối số ngừ ra.

• Cỳ phỏp:

Function[outputArgs]= function_name[inputArgs]

• Phần chỳ thớch đặt sau dấu ‘%’. Vẽ hỡnh trong MATLAB

Matlab cung cấp nhiều hàm để biểu diễn đồ thị 2D hoặc 3D.

• Plot: Vẽ đồ thị 2D

• Plot3: Vẽ đồ thị 3D

• Loglog: Vẽ đồ thị cỏc trục là logarit

• Sử dụng hàm figure để tạo nhiều cửa sổ hỡnh vẽ

• Sử dụng hàm supplot để vẽ nhiều hỡnh trờn cựng một của sổ

• Hàm chỳ thớch vẽ Title: Nhón hỡnh vẽ

Xlable, ylable, zlable: Nhón cỏc trục Legend: thờm chỳ thớch vào hỡnh vẽ

3.2 Tỡm hiểu về giao diện chương trỡnh 3.2.1 Giới thiệu

• GUI là giao diện bằng hỡnh ảnh của chương trỡnh.

• Giao diện người dựng trong tiếng Anh gọi tắt là GUI (Graphic User Interface) bao gồm cỏc điều khiển hay gọi là Components hoặc controls như cỏc nỳt bấm, cỏc hộp thoại nhập dữ liệu, … , cho phộp người dựng dễ dàng thao tỏc nhất, để đạt được một hoặc nhiều yờu cầu nhất định đặt ra. Khi đú người sử dụng khụng cần biết trong chương trỡnh đú thực hiện gỡ cả, chỉ quan tõm đến vẻ bờn ngoài của nú.

Điểm mạnh của việc lập trỡnh giao diện GUI trong Matlab là sử dụng được cỏc thư viện tớnh toỏn liờn quan đến ma trận, vector, … mà cỏc chương trỡnh tạo GUI khỏc như Visual Basic, Visual C++, … phải tốn thời gian lập trỡnh hơn rất nhiều.

• Để mở cụng cụ vừa tạo GUI: File/ New/ GUI

• Khi muốn lưu giao diện vừa tạo: Matlab sẽ tạo ra hai file cú cựng tờn nhưng khỏc phần mở rộng:

-File cú phần mở rộng .fig chứa nội dung của giao diện

• Khi thiết kế bất kỡ thành phần nào của GUI ta cần thiết lập thuộc tớnh cho thành phần đú.

• Để thiết lập cỏc thuộc tớnh ta cú thể chọn mục “property Inspector” trờn thanh cụng cụ hoặc click phải chuột lờn đối tượng.

• Hai thuộc tớnh quan trọng mà ta cần xỏc lập là “string property” và “tag property”.

• String property: là dũng ký tự xuất hiện trờn đối tượng

• Tag property: Tờn của đối tượng

• Khi click chuột vào một đối tượng, Matlab sẽ gọi hàm tương ứng của đối tượng đú. Tờn của hàm chớnh là tờn của đối tượng cộng với “_Callback”.

3.2.2 Cỏc hàm thường được sử dụng trong GUI

• Set: Thay đổi giỏ trị của cỏc thuộc tớnh của một đối tượng giao diện Set(handles.TextBox,‟String‟,str)

• Get: Truy xuất giỏ trị của thuộc tớnh của một đối tượng giao diện Get(handles.EditBox,’String’)

• Ngoài ra cũn cú cỏc hàm khỏc như axes, guide, num2str(), str2num()…

3.3 Cỏc hàm xủ lý cơ bản 3.3.1 Đọc và ghi dữ liệu ảnh

• Hàm imread đọc cỏc file ảnh với bất kỳ đị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.

Cỳ phỏp: A= imread(filename, fmt)

• Hàm imwrite cho phộp lưu một ảnh biểu diễn bằng một ma trận trong matlab thành một file ảnh dưới một trong cỏc định dạng đó biết.

Cỳ phỏp: imwrite(A, filename, fmt)

• Hàm imfinfo dựng để xem cỏc thụng số của một file ảnh nào đú. Cỳ phỏp: imfinfo(filename, fmt)

3.3.2 Chuyển đổi giữa cỏc kiểu dữ liệu, kiểu ảnh 3.3.2.1 Chuyển đổi giữa cỏc kiểu dữ liệu ảnh

Matlab cung cấp sẵn cỏc hàm thực hiện chuyển kiểu cho cỏc ma trận biểu diễn ảnh bao gồm: im2double, im2uint8, im2uint16.

Tuy nhiờn: Khi thực hiện chuyển kiểu giữa cỏc dữ liệu ảnh cõn lưu ý một số điểm sau:

• Khi chuyển từ một kiểu dữ liệu dựng nhiều bit sang một kiểu dữ liệu dựng ớt bit hơn thỡ một số thụng tin chi tiết của bức ảnh ban đầu sẽ bị mất.

• Khụng phải lỳc nào cũng cú thể chuyển đổi kiểu dữ liệu với kiểu ảnh indexed, vỡ cỏc giỏ trị của ma trận ảnh xỏc định một địa chỉ trong bản đồ màu chứ khụng phải là giỏ trị màu, do đú khụng thể lượng tử húa được.

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

Dither: dither(RGB,map)

dither(I)

Gray2ind : [X,Map] = gray2ind(I,N)

[X,Map] = gray2ind(BW,N) • Grayslice : x=grayslice(I,N) x=grayslice(I,V) • Im2bw: bw=im2bw(I,level) bw=im2bw(x,map,level) bw=im2bw(rgb,level) • Ind2gray : i=ind2gray(x,map) • Ind2rgb : rgb=ind2rgb(x,map)

Mat2gray : i=mat2gray(a,[amin amax])

Rgb2gray : i=rgb2gray(rgb)

Rgb2ind : [x, map]=rgb2ind(rgb,n) x=rgb2ind(rgb,map) [x,map]=rgb2ind(rgb,tol)

3.3.2.3 Cỏc hàm hiển thị ảnh trong Matlab

Matlab cung cấp hai hàm hiển thị cơ bản là image và imagesc. Ngoài ra trong IPT cũng cú

hai hàm hiển thị ảnh khỏc, đú là imview và imshow.

• Hàm image(X,Y,C) hiển thị hỡnh ảnh biểu diễn bởi ma trận C kớch thước M x N lờn trục tọa độ hiện hành. X, Y là cỏc vector xỏc định vị trớ cỏc pixel

C(1,1) và C(M,N) trong hệ trục hiện hành.

• 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 để sử dụng toàn bộ bản đồ màu hiện hành.

• Hàm imview cho phộp hiển thị hỡnh ảnh trờn một cửa sổ riờng, nền Java, gọi là image Viewer. Image Viewer cung cấp cỏc cụng cụ dũ tỡm và xỏc định cỏc giỏ trị pixel một cỏch linh hoạt.

• Hàm imshow cũng tạo một đối tượng đồ họa thuộc loại image và hiển thị ảnh trờn một figure. Hàm imshow sẽ 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.

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

Hàm imresize cho phộp người sử dụng thay đổi kớch thước ảnh. Ngoài kớch thước ảnh mới, người sử dụng cũn cú thể xỏc định phương phỏp nội suy sẽ dựng và loại bộ lọc dựng để chống aliasing.

Cỳ phỏp : b=imresize(a,m, method) :tạo ảnh gấp m lần ảnh a. b=imresize(a,[mrows mcols],method)

b=imresize(a,[mrows mcols],method,N) b=imresize(a,[mrows mcols],method,h)

3.3.2.5 Hàm sinh nhiễu cho ảnh

Sử dụng hàm imnoise để thờm nhiễu vào một ảnh. Hàm này cú cỳ phỏp cơ bản như sau:

g = imnoise(f, type, parameters) Trong đú:

f: là ảnh ở ngừ vào

type: là loại nhiễu sẽ được cộng vào ảnh f

3.3.2.6 Hàm khử nhiễu ảnh [thr,sorh,keepapp] = ddencmp('den','wv',noiseimage); dy = wdencmp('gbl',noiseimage,'sym4',2,thr,sorh,keepapp); axes(handles.axes3_denoiseimage); imshow(dy); Trong đú: Thr: Giỏ trị ngưỡng Sorh: Loại ngưỡng mềm Keepapp: Hệ số xấp xỉ

Chương 4

Một phần của tài liệu KHỬ NHIỄU ẢNH BẰNG BIẾN ĐỔI WAVELET (Trang 28 -36 )

×