Sunteți pe pagina 1din 140

# Two day Workshop on Matlab

Introduction
Cleve molar in 1984, Mathworks inc Introduced as a simulation tool Supports Graphical Programming Can be interfaced with other High Level languages

## Copyright 2006 Pantech Solutions Pvt Ltd.

Applications

Aerospace Biometrics Medical Finance Control System Signal,Image,Audio and Video Neural networks,Fuzzy logic Animation
Copyright 2006 Pantech Solutions Pvt Ltd.

## Technology beyond the Dreams

List of Companies

ADOBE (Photoshop) NASA GE L&T ROBERT BOSCH PEPSI , COCACOLA (Neuro Marketing)

## Copyright 2006 Pantech Solutions Pvt Ltd.

File Extensions
.fig

MATLAB Figure
.m MATLAB function, script, or class .mat MATLAB binary file for storing variables .mex MATLAB executable (platform specific, e.g. ".mexmac" for the Mac, ".mexglx" for Linux, etc.) .p MATLAB content-obscured .m file (result of pcode() )
Technology beyond the Dreams
Copyright 2006 Pantech Solutions Pvt Ltd.

## Difference between C and Matlab

Matlab is Proprietary compiler,C has open source. Inbuilt Functions in Matlab(Application Oriented). User friendly syntax. Fourth generation Programming Language tool.

## Copyright 2006 Pantech Solutions Pvt Ltd.

Desktop Tools

Command Window type commands Workspace view program variables clear to clear double click on a variable to see it in the Array Editor Command History view past commands save a whole session using diary Launch Pad access tools, demos and documentation

Command window

## Copyright 2006 Pantech Solutions Pvt Ltd.

Arithmetic operators
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12)
plus - Plus + uplus - Unary plus + minus - Minus uminus - Unary minus mtimes - Matrix multiply * times - Array multiply .* mpower - Matrix power ^ power - Array power .^ mldivide - Backslash or left matrix divide \ mrdivide - Slash or right matrix divide / ldivide - Left array divide .\ rdivide - Right array divide ./

## Copyright 2006 Pantech Solutions Pvt Ltd.

Relational operators
1) 2) 3) 4) 5) 6)
eq ne lt gt le ge - Equal - Not equal - Less than - Greater than - Less than or equal - Greater than or equal == ~= < > <= >=

## Copyright 2006 Pantech Solutions Pvt Ltd.

Logical operators
1) Short-circuit logical AND && 2) Short-circuit logical OR || 3) and - Element-wise logical AND & 4) or - Element-wise logical OR | 5) not - Logical NOT ~ 6) xor - Logical EXCLUSIVE OR 7) any - True if any element of vector is nonzero 8) all - True if all elements of vector are nonzero

## Copyright 2006 Pantech Solutions Pvt Ltd.

BITWISE OPERATORS
1) 2) 3) 4)
5) 6) 7) 8)
bitand bitcmp bitor bitmax - Bit-wise AND. - Complement bits. - Bit-wise OR. - Maximum floating point integer. bitxor - Bit-wise XOR. bitset - Set bit. bitget - Get bit. bitshift - Bit-wise shift.

## Copyright 2006 Pantech Solutions Pvt Ltd.

Vectors
a = [1 2 3 4 5 6 9 8 7] ; t = 0:2:20 t = 0 2 4 6 8 10 12 14 16 18 20

b=a+2
b = 3 4 5 6 7 8 11 10 9

c=a+b c = 4 6 8 10 12 14 20 18 16

## Copyright 2006 Pantech Solutions Pvt Ltd.

Matrices
B = [1 2 3 4;5 6 7 8;9 10 11 12] ;

B=1234 5678 9 10 11 12
C = B'

C=159 2 6 10 3 7 11 4 8 12

## Basic matrix operators

X = inv(E) ;%INVERSE OF THE MATRIX [A,H] = eig(E) %eigen value &vector p = poly(E) %polynomial c = abs(y) ; D=min(a); D=max(a);

Convolution
x = [1 2]; y = [1 4 8]; z = conv(x,y) [xx, R] = deconv(z,y)

## Copyright 2006 Pantech Solutions Pvt Ltd.

PLOT
t=0:0.25:7; y = sin(t); plot(t,y) ; xlabel('x axis'); ylabel('y axis'); title('Heading'); grid on; gtext('text');

## Copyright 2006 Pantech Solutions Pvt Ltd.

IF LOOP
a=6; if a > 6 disp('a is greater'); elseif a==0 disp('a is zero');

else
disp('a is smaller'); end
Technology beyond the Dreams
Copyright 2006 Pantech Solutions Pvt Ltd.

FOR LOOP
a=5; for i=1:5 a=a+1 end disp(a); ANS a =10

## Copyright 2006 Pantech Solutions Pvt Ltd.

While Loop
a=5; while a < 10 a=a+1; end disp(a);

Ans a =10

Function

## Copyright 2006 Pantech Solutions Pvt Ltd.

SWITCH CASE
method = 'Bilinear'; switch lower(METHOD) case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') end Ans Method is linear
Technology beyond the Dreams
Copyright 2006 Pantech Solutions Pvt Ltd.

SWITCH (NUMERICAL)
a=input('enter---->'); switch a case 1 fprintf('one'); case 2 fprintf('two'); case 3 fprintf('three'); case 4 fprintf('four'); otherwise fprintf('otherwise'); end

## Subtract two images

I = imread('rice.tif'); Iq = imsubtract(I,50); subplot(1,2,1), imshow(I) subplot(1,2,2), imshow(Iq)

## Convert image to gray and binary

clc; clear; close all a= imread('flowers.tif'); subplot(2,2,1); imshow(a); subplot(2,2,2); b=imresize(a,[256 256]); imshow(b); subplot(2,2,3); c=rgb2gray(b); imshow(c); subplot(2,2,4); d=im2bw(c); imshow(d);

## Copyright 2006 Pantech Solutions Pvt Ltd.

RGB component
a=imread('flowers.tif'); subplot(2,2,1); imshow(a); R=a; G=a; B=a; R(:,:,2:3)=0; subplot(2,2,2); imshow(R); G(:,:,1)=0; G(:,:,3)=0; subplot(2,2,3); imshow(G); B(:,:,1)=0; B(:,:,2)=0; subplot(2,2,4); imshow(B);

## Convert Image into One dimensional

[r c]=size(a); Len=r*c; b=reshape(a,[1 Len]);
Technology beyond the Dreams
Copyright 2006 Pantech Solutions Pvt Ltd.

## CONVER MOVIE TO FRAMES

file=aviinfo('movie1.avi'); % to get inforamtaion abt video file frm_cnt=file.NumFrames % No.of frames in the video file str2='.bmp' h = waitbar(0,'Please wait...'); for i=1:frm_cnt frm(i)=aviread(filename,i); % read the Video file frm_name=frame2im(frm(i)); % Convert Frame to image file frm_name=rgb2gray(frm_name);%convert gray filename1=strcat(strcat(num2str(i)),str2); imwrite(frm_name,filename1); % Write image file waitbar(i/frm_cnt,h) end close(h)

## CONVERT FRAMES TO MOVIES

frm_cnt=5; number_of_frames=frm_cnt; filetype='.bmp'; display_time_of_frame=1; mov = avifile('MOVIE.avi'); count=0; for i=1:number_of_frames name1=strcat(num2str(i),filetype); a=imread(name1); while count<display_time_of_frame count=count+1; imshow(a); F=getframe(gca); mov=addframe(mov,F); end count=0; end mov=close(mov);

## How to read a text file

fid = fopen('message.txt','r'); ice1= fread(fid); s = char(ice1'); fclose(fid); disp(s); Ans

hello

## How to write a text file

txt=[65 67 68 69]; fid = fopen('output.txt','wb'); fwrite(fid,char(txt),'char'); fclose(fid); ANS =ACDE

## Copyright 2006 Pantech Solutions Pvt Ltd.

Store an Image,Audio

## SAVE AND LOAD THE VARIABLE

A=5; save A A; load A
B=1; C=A+B; disp(C);
Technology beyond the Dreams
Copyright 2006 Pantech Solutions Pvt Ltd.

Wavelet transform
a =imread('cameraman.tif'); [LL LH HL HH]=dwt2(a,'haar'); Dec=[... LL,LH HL,HH ... ]; imshow(Dec,[]);
Technology beyond the Dreams
Copyright 2006 Pantech Solutions Pvt Ltd.

DCT transform
a=imread('cameraman.tif'); subplot(1,3,1);imshow(a,[]); b=dct2(a); subplot(1,3,2);imshow(b,[]);title('DCT'); c=idct2(b); subplot(1,3,3);imshow(c,[]);title('IDCT');

GUI

## Copyright 2006 Pantech Solutions Pvt Ltd.

DIALOG BOX
warndlg('hello'); helpdlg('hello'); errordlg('hello');

msgbox('hello');

## Copyright 2006 Pantech Solutions Pvt Ltd.

ButtonName=questdlg('What is your wish?', ... 'Genie Question', ... 'Food','Clothing','Money','Money'); switch ButtonName, case 'Food', disp('Food is delivered'); case 'Clothing', disp('The Emperor''s new clothes have arrived.') case 'Money', disp('A ton of money falls out the sky.'); end % switch

## USER INTERFACE GET FILE

[filename, pathname] = uigetfile('*.m', 'Pick an M-file'); if isequal(filename,0) | isequal(pathname,0) disp('User pressed cancel') else disp(['User selected ', fullfile(pathname, filename)]) end

## USER INTERFACE PUT FILE

[filename, pathname] = uiputfile('*.m', 'Pick an M-file'); if isequal(filename,0) | isequal(pathname,0) disp('User pressed cancel') else disp(['User selected ', fullfile(pathname, filename)]) end

GUI

GUI

PUSH BUTTON

TOGGLE BUTTON

CHECKBOX

EDIT TEXT

STATIC TEXT

SLIDER

FRAME

LISTBOX

AXES

ALIGN OBJECTS

M FILE EDITOR

## Copyright 2006 Pantech Solutions Pvt Ltd.

PROPERTY INSPECTOR

RUN

EMPTY GUI

GENERATED M FILE

PUSH BUTTON

GO FOR CALLBACK

CHOOSE AXES

CHOOSE AXES

## WRITE THE CODE BELOW THE CALLBACK a =imread('cameraman.tif');

axes(handles.one); imshow(a);

CODE

TOGGLE BUTTON

## WRITE THE CODE BELOW THE CALLBACK

a=get(hObject,'Value'); if a ==1 a =imread('cameraman.tif'); axes(handles.one); imshow(a); else a =imread('greens.jpg'); axes(handles.one); imshow(a); end

## Copyright 2006 Pantech Solutions Pvt Ltd.

contents = get(hObject,'Value')

## WRITE THE CODE BELOW THE CALLBACK

switch contents
case 1 a =imread('cameraman.tif'); axes(handles.one); imshow(a); case 2 a =imread('flowers.tif'); axes(handles.one); imshow(a); case 3 a =imread('rice.tif'); axes(handles.one); imshow(a); otherwise a =imread('mri.tif'); axes(handles.one); imshow(a); end

## WRITE THE CODE

contents = get(hObject,'Value')

switch contents
case 1 a =imread('cameraman.tif'); axes(handles.one); imshow(a); case 2 a =imread('flowers.tif'); axes(handles.one); imshow(a); case 3 a =imread('rice.tif'); axes(handles.one); imshow(a); otherwise a =imread('mri.tif'); axes(handles.one); imshow(a); end

## WRITE THE CODE BELOW THE CALLBACK

a=get(hObject,'String') ; b=char(a); c=imread(b); axes(handles.one); imshow(c);

## WRITE THE CODE BELOW THE CALLBACK

a=get(hObject,'String') ; set(handles.t1,'String',a); b=char(a); c=imread(b); axes(handles.one); imshow(c);

SLIDER

GO FOR CALLBACK

## WRITE THE CODE BELOW THE CALLBACK

[filename, pathname] = uigetfile('*.bmp', 'Pick an Image'); if isequal(filename,0) | isequal(pathname,0) warndlg('User pressed cancel') else a=imread(filename); axes(handles.axes1); imshow(a); handles.filename=filename; guidata(hObject, handles); end

RUN

## Counting the Number of Objects in an Image

clc; clear; close all; InputImage=imread('eight.tif'); subplot(2,2,1); imshow(InputImage);title('InputImage'); BinaryImage=im2bw(InputImage); subplot(2,2,2); imshow(BinaryImage); ComplementImage=imcomplement(BinaryImage); subplot(2,2,3); imshow(ComplementImage); HolesClearedImage = imfill(ComplementImage,'holes'); subplot(2,2,4); imshow(HolesClearedImage);title('HolesClearedImage'); [L,Num] = bwlabel(HolesClearedImage) for i=1:Num figure; imshow(L==i); pause(1) end

## Thresholding Based SegmentationCon 1

clc; clear; close all; InputImage=imread('34.bmp'); figure; imshow(InputImage); ColourSpaceConversion=rgb2hsv(InputImage); imshow(ColourSpaceConversion); %GrayScaleImage=rgb2gray(ColourSpaceConversion); GrayScaleImage=ColourSpaceConversion(:,:,1); [rows columns planes]=size(GrayScaleImage); BinaryMask= GrayScaleImage > 0.5; figure; imshow(BinaryMask); Impixelinfo h = waitbar(0,'Please wait...'); SegmentedImage=[];
Copyright 2006 Pantech Solutions Pvt Ltd.

## Technology beyond the Dreams

Cont 2
for i=1:rows for j=1:columns if BinaryMask(i,j) == 1 SegmentedImage(i,j,1)=InputImage(i,j,1); SegmentedImage(i,j,2)=InputImage(i,j,2); SegmentedImage(i,j,3)=InputImage(i,j,3); else SegmentedImage(i,j,1)=0; SegmentedImage(i,j,2)=0; SegmentedImage(i,j,3)=0; end end waitbar(i/rows,h) end SegmentedImage=uint8(SegmentedImage); figure; imshow(SegmentedImage); impixelinfo;

## Copyright 2006 Pantech Solutions Pvt Ltd.

Image Fusion
clc; clear; close all; M1=imread('mri.jpg'); M2=imread('ct.jpg'); subplot(2,2,1);imshow(M1);title('MRI'); subplot(2,2,2);imshow(M2);title('CT'); [R C P]=size(M1); for i=1:R for j=1:C if M1(i,j)>M2(i,j) FusedImage(i,j)=M1(i,j); else FusedImage(i,j)=M2(i,j); end end end

## Copyright 2006 Pantech Solutions Pvt Ltd.

Image fusion-Cont 2
subplot(2,2,3);imshow(FusedImage);title('Max'); for i=1:R for j=1:C if M1(i,j)>M2(i,j) FusedImage(i,j)=M2(i,j); else FusedImage(i,j)=M1(i,j); end end end subplot(2,2,4);imshow(FusedImage);title('Min');