Professional Documents
Culture Documents
CHƢƠNG I:
TÌM HIỂU CƠ BẢN VỀ MATLAB VÀ GUI
I) Cơ bản về Matlab:
1) Giới thiệu chung về Matlab:
Matlab là một công cụ tính toán trong kỹ thuật, đặc biệt 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ụ lợi hại 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.
ans =
8
- Trong nhiều trường hợp ta không muốn thể hiện kết quả thì sau khi gõ lệnh phải thêm
dấu “;”.
a=
5 10 2
10 2 4
2 4 5
-Chỉ số : Phần tử ở hàng i cột j của ma trận có kí hiệu là A(i,j). Tuy nhiên ta cũng có thể
tham chiếu tới phần tử của mảng nhờ một chỉ số A(k). Ví dụ: A(6) là tham chiếu của
A(3,2).
-Toán tử “:” là một toán tử quan trọng, xuất hiện ở nhiều dạng khác nhau
Ví dụ: >> 5:10
Trang 2
Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành
ans =
5 6 7 8 9 10
>> 1:2:10
ans=
1 3 5 7 9
A(:,j) để trích ra cột thứ j của A
A(i,:) để trích ra hàng thứ i
A(k:l,m:n) trích ra ma trận con của A
V(i:j) trích ra một phần vector V
Ví dụ: >> A=[2 4 6; 1 3 5; 3 1 4];
>> A(3,:)
ans =
3 1 4
-Chuyển vị: Dùng dấu „ để tạo ma trận chuyển vị
Ví dụ: >>a=[1 3; 2 4]
a=
1 3
2 4
>> a„
ans =
1 2
3 4
Trang 3
Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành
2 6
Chia các thành phần của ma trận này cho một ma trận khác:
>> a./b
ans =
2.0000 1.5000
4 9
>> c=[1 2; 3 4];
>> c^2
ans =
7 10
15 22
5)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)
-Chú thích(đặt sau dấu %, chú thích sẽ hiện ra khi dùng lệnh help)
-Các lệnh.
-return;
Phải lưu lại với tên giống tên hàm.
Ví dụ:Vẽ hàm sau trong khoảng [-10,10]
Giải:
function f = function1(x)
y = 1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6 ;
Trang 5
Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành
PQ=paddedsize(size(image1));
D0=str2num(get(handles.cutoff,'String'));
if D0<=0
msgbox('Please input meaningful cut off frequency')
return
end
n=str2num(get(handles.order,'String'));
if n<=0
msgbox('Invalid order number for Butterworth Filter!')
return
end
W=str2num(get(handles.bandwidth,'String'));
if W<=0
msgbox('Please input meaningful width of band-reject')
end
filsize=get(handles.size,'Value');
switch filsize
case 1
m=3;
n=3;
case 2
m=5;
n=5;
case 3
m=7;
n=7;
end
value=get(handles.filtertype,'Value');
switch value
case 1 %Arithmetic Mean Filter
H=fspecial('average',[m n]);
filimage=imfilter(noiseimage,H);
case 2 %Geometric Mean Filter
filimage=gmean(noiseimage,m,n);
case 3 %Median Filter
filimage=medfilt2(noiseimage,[m n],'symmetric');
case 4 %Harmonic Filter
filimage=harmean(noiseimage,m,n);
case 5 %Max Filter
filimage=ordfilt2(noiseimage,m*n,ones(m,n),'symmetric');
case 6 %Min Filter
filimage=ordfilt2(noiseimage,1,ones(m,n),'symmetric');
case 7 %Adaptive Filter (Weiner)
filimage=wiener2(noiseimage,[m n]);
Trang 98
Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành
Trang 99