Introduction to MatLab: Image Processing

Slides:



Advertisements
Similar presentations
Tutorial on Matlab and OpenCV Rui Ma TA of CMPT 414 May 14, 2013 Office hours: Fridays 11:00-12:00, CSIL TA Office 1 (ASB 9838)
Advertisements

Introduction to MATLAB The language of Technical Computing.
1 A L L A H. Command-Window Workspace & Directory Command- History The Matlab Command window - Finding your way around.
Introduction to Matlab
Introduction to Matlab Workshop Matthew Johnson, Economics October 17, /13/20151.
Image Processing in Matlab An Introductory Approach by Sabih D. Khan
Introduction to MATLAB and image processing. MATLAB and images The help in MATLAB is very good, use it! An image in MATLAB is treated as a matrix Every.
MATLAB for Image Processing April 10 th, Outline Introduction to MATLAB –Basics & Examples Image Processing with MATLAB –Basics & Examples.
1 Introduction to MatLab: Image Processing - MatLab stands for Matrix Laboratory. - Most of the programming operations have as input or output a matrix.
Matlab The language of technical computing. Outline Introduction C++ vs. Matlab Functions Graphing Matrix Image processing toolbox Neural network toolbox.
1 Introduction to MatLab MatLab stands for Matrix Laboratory. As the name suggests most of the programming operations have as input or output a matrix.
Computational Tools for Image Processing Lecture 1, Jan 22nd, 2007 Part 2 (8:10-9:20pm) by Lexing Xie EE4830 Digital Image Processing
MATLAB for Image Processing CS638-1 TA: Tuo Wang Feb 12 th, 2010.
Martin Ellison University of Warwick and CEPR Bank of England, December 2005 Introduction to MATLAB.
Nonparametric Econometrics1 Intro to Matlab for Data Analysis and Statistical Modeling.
Introduction to MatLab: Image Processing
CIS 601 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
Introduction to MATLAB Session 1 Prepared By: Dina El Kholy Ahmed Dalal Statistics Course – Biomedical Department -year 3.
Eng Advanced Marine Vehicles Todays agenda: Lab tomorrow at 2pm (structures lab) ‏ Advanced Marine Party Introduction to Matlab.
Introduction to MATLAB
Eng Ship Structures 1 Introduction to Matlab.
INTRODUCTION TO MATLAB LAB# 01
Gulsah Tumuklu Ozyer MATLAB IMAGE PROCESSING TOOLBOX.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
AdeptSight Image Processing Tools Lee Haney January 21, 2010.
Matlab The language of Technical computing Mr. D. Suresh Assistant Professor, Dept. of CSE, PSNA CET, Dindigul.
Getting Started with MATLAB CS534 TA: Matt McDaniel Sep 17 th, 2012 Slides by Chunhui Zhu – Fall 2011 Thanks to the help from Tuo.
1 © 2010 Cengage Learning Engineering. All Rights Reserved. 1 Introduction to Digital Image Processing with MATLAB ® Asia Edition McAndrew ‧ Wang ‧ Tseng.
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Outline Introduction to MATLAB Image Processing with MATLAB
CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young.
Lecture 27: Image Processing
Introduction to MATLAB Ehsan Adeli M. Iran University of Science and Technology, E-Learing Center, Fall 2008 (1387)
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
การใช้งานโปรแกรม MATLAB ดร. อำนาจ ขาวเน. BASIC ELEMENTS OF MATLAB MATLAB Desktop MATLAB Editor Help System MATLAB (MATrix LABoratory)
Matlab Tutorial (material available at 1 Dr. Jim Martin Associate Professor School of Computing.
Intro To MATLAB CS Fall 2013 Zach Welch. Overview ●Basics ●MATLAB data structures ●Operations ●Useful functions ●Image Processing and other useful.
Computer Application in Engineering Design
Getting Started with MATLAB
Matlab.
Matlab Tutorial.
Introduction to Mat lab
Lecture: MATLAB Chapter 1 Introduction
MatLab Programming By Kishan Kathiriya.
Ch3 Graphics Overview of Plotting Editing Plots
Other Kinds of Arrays Chapter 11
Outline Matlab tutorial How to start and exit Matlab Matlab basics.
INTRODUCTION TO BASIC MATLAB
MATLAB DENC 2533 ECADD LAB 9.
Matlab Workshop 9/22/2018.
Introduction to MATLAB
StatLab Matlab Workshop
Simulation And Modeling
Digital Image Processing using MATLAB
Part I – Matlab Basics.
Matlab Tutorial.
Use of Mathematics using Technology (Maltlab)
StatLab Workshop: Intro to Matlab for Data Analysis and Statistical Modeling 11/29/2018.
Lecture 2 Introduction to MATLAB
Digital Image Processing
CSE 307 Basics of Image Processing
Matlab Basic Dr. Imtiaz Hussain
Tonga Institute of Higher Education IT 141: Information Systems
Simulation And Modeling
Tonga Institute of Higher Education IT 141: Information Systems
Matlab Basics.
Introduction to Image Processing with MATLAB
Presentation transcript:

Introduction to MatLab: Image Processing Most of the programming operations have as input or output a matrix or a vector. Images are often represented a matrices. - MatLab is a powerful tool to manipulate graphics and images.

Robot Vision Development in Practice Build your robot (you are done) Install a camera on it. Learn software that comes with camera, understand formats. JPG Install Matlab on your laptop – student version, much software for free on WWW – Octave Be able to display image from camera in one window so that you will see it and Matlab code or processing in other windows. Guide your robot through stage or labyrinth and see with your own eyes what robot sees. Think what is a good processing method for the image that you see. Protytype this in Matlab using existing functions. If necessary, use parallel Matlab on CUDA If necessary, rewrite to C++ or Python or Java.

This introduction will give MATLAB This introduction will give a brief overview, it’s not a MATLAB tutorial ! Some basic ideas Main advantages and drawbacks compared to other languages

MATLAB high-performance language for technical computing computation, visualization, and programming in an easy-to-use environment Typical uses include: Math and computation Algorithm development Modelling, simulation, and prototyping Data analysis, exploration, and visualization Scientific and engineering graphics Application development, including Graphical User Interface building

Why MATLAB A good choice for vision program development because: Easy to do very rapid prototyping Quick to learn, and good documentation A good library of image processing functions Excellent display capabilities Widely used for teaching and research in universities and industry Another language to impress your boss with !

Why not MATLAB Has some drawbacks: • Slow for some kinds of processes • Not geared to the web • Not designed for large-scale system development

MATLAB Components MATLAB consists of: The MATLAB language a high-level matrix/array language with control flow statements, functions, data structures, input/output, and object-oriented programming features. The MATLAB working environment the set of tools and facilities that you work with as the MATLAB user or programmer, including tools for developing, managing, debugging, and profiling Handle Graphics the MATLAB graphics system. It includes high-level commands for two-dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. …(cont’d)

MATLAB Components … The MATLAB function library. a vast collection of computational algorithms ranging from elementary functions like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms as well as special image processing related functions The MATLAB Application Program Interface (API) a library that allows you to write C and Fortran programs that interact with MATLAB. It include facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a computational engine, and for reading and writing MAT-files.

MATLAB Some facts for a first impression Everything in MATLAB is a matrix ! MATLAB is an interpreted language, no compilation needed (but possible) MATLAB does not need any variable declarations, no dimension statements, has no packaging, no storage allocation, no pointers Programs can be run step by step, with full access to all variables, functions etc.

What does Matlab code look like? A simple example: a = 1 while length(a) < 10 a = [0 a] + [a 0] end which prints out Pascal’s triangle: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 (with “a=” before each line).

What does Matlab code look like? Another simple example: t = 0:pi/100:2*pi; y = sin(t); plot(t,y)

What does Matlab code look like? Another simple example: t = 0:pi/100:2*pi; y = sin(t); plot(t,y) Remember: EVERYTHING IN MATLAB IS A MATRIX ! creates 1 x 200 Matrix Argument and result: 1 x 200 Matrix

jpg bmp

Formats of Images in MATLAB MATLAB can import/export several image formats BMP (Microsoft Windows Bitmap) GIF (Graphics Interchange Files) HDF (Hierarchical Data Format) JPEG (Joint Photographic Experts Group) PCX (Paintbrush) PNG (Portable Network Graphics) TIFF (Tagged Image File Format) XWD (X Window Dump) MATLAB can also load raw-data or other types of image data Data types in MATLAB Double (64-bit double-precision floating point) Single (32-bit single-precision floating point) Int32 (32-bit signed integer) Int16 (16-bit signed integer) Int8 (8-bit signed integer) Uint32 (32-bit unsigned integer) Uint16 (16-bit unsigned integer) Uint8 (8-bit unsigned integer)

Images in MATLAB • Binary images : {0,1} • Intensity images : [0,1] or uint8, double etc. • RGB images : m-by-n-by-3 • Indexed images : m-by-3 color map • Multidimensional images m-by-n-by-p (p is the number of layers)

Image import and export Read and write images in Matlab >> I=imread('cells.jpg'); >> imshow(I) >> size(I) ans = 479 600 3 (RGB image) >> Igrey=rgb2gray(I); >> imshow(Igrey) >> imwrite(lgrey, 'cell_gray.tif', 'tiff') Alternatives to imshow >>imagesc(I) >>imtool(I) >>image(I)

Images and Matrices How to build a matrix (or image)? 4 5 6 7 8 9 >> B = zeros(3,3) B = 0 0 0 0 0 0 >> C = ones(3,3) C = 1 1 1 1 1 1 >>imshow(A) (imshow(A,[]) to get automatic pixel range)

Matrices

Rows and columns are always numbered starting at 1 Matrices Rows and columns are always numbered starting at 1 Matlab matrices are of various types to hold different kinds of data (usually floats or integers) A single number is really a 1 x 1 matrix in Matlab! Matlab variables are not given a type, and do not need to be declared Any matrix can be assigned to any variable

Building matrices with [ ]: A = [2 7 4] A = [2; 7; 4] B = [ A A ] 2 7 4 2 7 4 2 7 4 3 8 9 ?

Building matrices with [ ]: A = [2 7 4] A = [2; 7; 4] B = [ A A ] 2 7 4 2 7 4 2 7 4 3 8 9 2 7 4 2 7 4 3 8 9 3 8 9

Matrices

Some operators must be handled with care: A = [1 2 ; 4 5] Matrices Some operators must be handled with care: A = [1 2 ; 4 5] B = A * A prints 9 12 24 33 B = A .* A prints 1 4 16 25 Element by element multiplication

Submatrices A matrix can be indexed using another matrix, to produce a subset of its elements: a = [100 200 300 400 500 600 700] b = [3 5 6] c = a(b): 300 500 600

This works in 2-D as well, e.g. c(2:3, 1:2) produces a Submatrices To get a subsection of a matrix, we can produce the index matrix with the colon operator: a(2:5) prints ans = 200 300 400 500 This works in 2-D as well, e.g. c(2:3, 1:2) produces a 2 x 2 submatrix. The rows and columns of the submatrix are renumbered.

‘for’ loops in MATLAB iterate over matrix elements: b = 0 for i = [ 3 9 17] b = b + i; end Result: 29 Note: The MATLAB way to write that program would have been: b = sum([ 3 9 17]); Avoid loops if possible !

The typical ‘for’ loop looks like: for i = 1:6 … end loops The typical ‘for’ loop looks like: for i = 1:6 … end Which is the same as: for i = [1 2 3 4 5 6]

loops Once again: AVOID LOOPS

So why MATLAB and IMAGE PROCESSING ? Images So why MATLAB and IMAGE PROCESSING ?

Images can be treated as matrices !

Matrix >> A=[1 2 3;3 2 1] >>b=A(1,:) A = >> B=A' b = 1 2 3 3 2 1 >>b=A(1,:) b = 1 2 3 >> B=A' B = 1 3 2 2 3 1

Images and Matrices X Y A = 2 3 5 6 7 8 9 Accesing image elements (row, column) >> A(2,1) ans = 4 : can be used to extract a whole column or row >> A(:,2) ans = 2 5 8 or a part of a column or row >> A(1:2,2) A = 2 3 5 6 7 8 9

Image Arithmetic Arithmetic operations such as addition, subtraction, multiplication and division can be applied to images in MATLAB +, -, *, / performs matrix operations >> A+A ans = 2 4 6 8 10 12 14 16 18 >> A*A ans = 30 36 42 66 81 96 102 126 150 To perform an elementwise operation use . (.*, ./, .*, .^ etc) >> A.*A ans = 1 4 9 16 25 36 49 64 81 A = 2 3 5 6 7 8 9

Logical Conditions equal (==) , less than and greater than (< and >), not equal (~=) and not (~) find(‘condition’) - Returns indexes of A’s elements that satisfies the condition. >> [row col]=find(A==7) row = 3 col = 1 >> [row col]=find(A>7) 3 col = 2 >> Indx=find(A<5) Indx = 1 2 4 7 A = 2 3 5 6 7 8 9

Flow Control Flow control in MATLAB - if, else and elseif statements (row=1,2,3 col=1,2,3) if row==col A(row, col)=1; elseif abs(row-col)==1 A(row, col)=2; else A(row, col)=0; end A = 1 2 0 2 1 2 0 2 1

Flow Control Flow control in MATLAB - for loops for row=1:3 for col=1:3 if row==col A(row, col)=1; elseif abs(row-col)==1 A(row, col)=2; else A(row, col)=0; end A = 1 2 0 2 1 2 0 2 1

Flow Control while, expression, statements, end A = 2 3 Indx=1; 5 6 while A(Indx)<6 A(Indx)=0; Indx=Indx+1; end A = 2 3 5 6 7 8 9 A = 0 2 3 0 5 6 7 8 9

Working with M-Files M-files can be scripts that simply execute a series of MATLAB statements, or they can be functions that also accept input arguments and produce output. MATLAB functions: Are useful for extending the MATLAB language for your application. Can accept input arguments and return output arguments. Store variables in a workspace internal to the function.

Working with M-Files Create a new empty m-file function B=test(I) [row col]=size(I) for r=1:row for c=1:col if r==c A(r, c)=1; elseif abs(r-c)==1 A(r, c)=2; else A(r, c)=0; end B=A;

Examples Try these MATRIX AND VECTOR OPERATIONS This is how we can define a vector >> v=[1, 2, 3] Matlab prints out the following v =     1     2     3 Similarly we can define a matrix >> M= [ 1 2 3; 4 5 6; 7 8 9] The result is: M =     1     2     3     4     5     6     7     8     9 If you want to suppress the MatLab output then you need to finish the line with semicolon as follows. >>M= [ 1 2 3; 4 5 6; 7 8 9];

Projection Say you want to extract some rows and columns of a matrix. This is called a projection. We simply give the subset of rows and columns as parameters, as follows >> M11=M(2:3 , 2:3) M11 =      5     6      8     9 To specify all elements in a given dimension one can use ':‘ So to get all rows but just columns 1 and 2, we type >> A= M( :, 1:2) A =      1     2      4     5      7     8

WORKING WITH IMAGES in MatLab Let’s talk about image files and their formats….. Color vs GrayScale Basic Image Processing functions: Reading in an image: >> img1=imread('Water lilies.jpg'); Displaying an image: >> imshow(img1); Finding out size of an image: >> size(img1); >> size(img1) ans = 600 800 3 imread imshow size

variable imgsmall Cropping an image: 4. Display resulting image WORKING WITH IMAGES in MatLab Cropping an image: >> imgsmall=img1(200:300,300:400,1:3); >> imshow(imgsmall) >> imgsmall=img1(150:250,350:450,1:3); >> size(imgsmall) ans = 101 101 3 Exercise: 1. Find 2 images online 2. Crop them to the same size 3. Add the two images together. 4. Display resulting image Advanced Exercise: Rescale images to same size then add them See next slide to see HOWTO rescale variable imgsmall

ReScaling linspace round We can rescale by changing the number of rows and columns, yet preserve the information in the image >> [rows, cols, colors]= size(img1) rows = 600 cols = 800 colors = 3 % Increase the number of rows >> stretchfactor = 1.5 >> rowVec= linspace(1,rows,stretchfactor*rows); >> newrows=round(rowVec); >> newimag=img1(newrows,:,:) >> imshow(newimg); % Decrease number of columns >> stretchfactor = 0.75; >> colVec= linspace(1,cols,stretchfactor*cols); >> newcols=round(colVec); >> newimag=newimg(:,newcols,:) >>imshow(newimg) linspace round

Example Program: Inverting an image To invert or to add two images we need to convert to double and then rescale the result back so that it looks like an image InvImg= 1 - double(IMG1)/255; NewImg = uint8(round(InvImg*255))) Imshow(NewImg); uint8

input image(v) row= input(‘which row?’); red = v(row,:,1); WORKING WITH IMAGES in MatLab Color Masking Sometimes we want to replace pixels of an image of one or more colors with pixels from another image. It is useful to use a “blue or green screen” in some instances. Find an image with a big plot of one color. First we will replace that color. And then we will find another image for pixel replacement. Let us plot the color values of one chosen row…This will tell us the pixel values of the color we want to replace. v = imread(‘myimg.jpg’) image(v) row= input(‘which row?’); red = v(row,:,1); green = v(row,:,2); blue = v(row,:,3); plot(red,’r’); hold on plot(green,’g’); plot(blue,’b’); input

v= imread(‘myimg.jpg’); thresh= 160 WORKING WITH IMAGES in MatLab Suppose we want to replace those values whose intensities exceed a threshold value of 160 in each color. v= imread(‘myimg.jpg’); thresh= 160 layer = (v(:,:,1) > thresh) & (v(:,:,2) > thresh) (v(:,:,2) > thresh) mask(:,:,1) = layer; mask(:,:,2) = layer; mask(:,:,3) = layer; If you want to only mask a portion of the image you can use something like… >> mask(700:end,:,:)= false; Which sets the mask so that we do not affect rows 700 and above To reset the color to red >>newv = v; >>newv(mask)(1) = 255 Or to replace pixels from a different image w use… >> newv(mask) = w(mask); Let us try to do this with a blue screen…..

Histograms

Images in MATLAB imread imshow

imhist

Histogram Equalization histeq

Noise

Adding Noise Filtering Noise imnoise medfilt2

Add Image to noise

Median Filtering removes noise

Median Filtering removes Gaussian noise imnoise fspecial imfliter

FSPECIAL creates special 2D filters

Imfilter – multidimensional filtering

Thresholding

IM2BW – converting to binary by thresholding

Repeated thresholding

Separating background by thresholding

Extracting features: Corner Center point

Edge Detection

Example of kernel-based filtering - Sobel edge Example of kernel-based filtering - Sobel

Edge, Sobel and Prewitt

Roberts, Laplacian, Zero-cross, Canny edge detection methods

Use of threshold in Sobel affects what is found

“Laplacian of Gaussian” filtering is often better

Canny Filter is even better – this is a major invention with many applications in robotics. Can one invent a better one?

Many variants of combining thresholding and edge detection exist

Hough Transform

Hough Transform has links to Fourier, Radon and Neural Nets. A deep concept

Camera Calibration

Calibration of Cameras Matrix/vector multiplication

Sequences of operations

Noise, filtering and histogramming

Matlab versus other languages

Help Help command Help svd

for i = 1:2:N for J = 1:N A(I,J) =(I+J-1); end C++ vs. Matlab int j; . for (j=1;j<23;j=j+2) { A[4][j]=3*j; } for i = 1:2:N for J = 1:N A(I,J) =(I+J-1); end

int j; while (j<28) { …….; } while N> 0, E = E + F; F = A*F/N; C++ vs. Matlab (cont.) int j; while (j<28) { …….; } while N> 0, E = E + F; F = A*F/N; N = N + 1; end

If (i==j) { A[i][j]=2; } else if (abs(i-j)!=1) { …….; if i == j C++ vs. Matlab (cont.) If (i==j) { A[i][j]=2; } else if (abs(i-j)!=1) { …….; if i == j A(i,j) = 2; elseif abs(i-j) ~= 1 A(i,j) = -1; else A(i,j) = 0; end

Index to an array can be zero. double, float , int… C++ vs. Matlab (cont.) Index to an array can be zero. double, float , int… “;” is very important Index into matrix can’t be negative or zero. Don’t need to worry about the data type “;” not so important

function mean = avg(x,n) mean = sum(x)/n; Functions function [mean,stdev] = stat(x) n = length(x); mean = avg(x,n); stdev =… function mean = avg(x,n) mean = sum(x)/n; double* stat(double *x) { …….; return stdev; }

void Matrix2Vector( ) { ……; } function Matrix2Vector Av=A(1,:); Functions(cont.) void Matrix2Vector( ) { ……; } function Matrix2Vector Av=A(1,:); for i=2:x Av=[Av A(i,:)]; end Av=Av';

void AddF(int i); int main() { …… Functions(cont.) addF(i); } File name testFunR.m function testFun i=2; AddF(i); i function AddF(i) i=i+1; A function declaration cannot appear within a script M-file

To make a graph of y = sin(t) on the interval t = 0 to t = 10 Graphing To make a graph of y = sin(t) on the interval t = 0 to t = 10 In file PlotTest.m t = 0:.3:10; y = sin(t); plot(t,y,’r’) ;

graphing the fuction z(x,y) = x exp( - x^2 - y^2) Graphing(cont.) graphing the fuction z(x,y) = x exp( - x^2 - y^2) In file MeshTest.m [x,y] = meshgrid (-2:.2:2, -2:.2:2); z = x .* exp(-x.^2 - y.^2); mesh(z)

Multiple windows in one figure Graphing(cont.) Multiple windows in one figure SubplotTest.m t = 0:.3:10; y = sin(t); z= cos(t); subplot(2,1,1); plot(t,y) ; subplot(2,1,2); plot(t,z);

Multiple windows in one figure Graphing(cont.) Multiple windows in one figure SubplotTest.m t = 0:.3:10; y = sin(t); z= cos(t); subplot(1,2,1); plot(t,y) ; subplot(1,2,2); plot(t,z);

Singular value decomposition---[U,S,V]=svd(A) Matrix Manipulation Singular value decomposition---[U,S,V]=svd(A) Eigenvalues and eigenvectors---[V,D] = eig(A) Orthogonal-triangular decomposition- [Q,R]=qr(A) LU factorization --[L,U] = lu(A) Matrix rank -- a=rank(A) Condition number -- a=cond(A)

Image Processing Toolbox Read an image ---- I=imread(filename) Display an image ---- imshow(I) Write an image ---- imwrite(I, filename,FMT)

Image Processing Toolbox(cont.) ImageRWD.m function ImageTest Itif=imread('image1.tif'); imwrite(Itif,'image1.bmp','bmp'); Ibmp=imread('image1.bmp'); subplot(1,2,1); imshow(Itif); subplot(1,2,2); imshow(Ibmp);

Image Processing Toolbox(cont.) EdgeTest.m function EdgeTest Itif=imread('image1.tif'); B=edge(Itif,'canny'); subplot (1,2,1); imshow(Itif); subplot(1,2,2); imshow(B);

Image Processing Toolbox(cont.) Pixel values and statistics --corr2,imhist… Image enhancement – histeq, medfilt2… Linear filter -- conv2, filter2… Image transform -- dct2, fft… Binary image Op. --- dilate, erode…

Neural Network Feed-forward backpropagatoin Hopfield Networks Self-organizing maps Radial Basis networks ………………

Neural Networks(cont.) Create feed-forward NN Net=newff([-1 2;0 5],[31],{‘tansig’,’purelin’},’traingd’); Neural Model – tansig, logsig, purelin. Training method –traingd, traingdm. Training [net,tr]=train(net,p,t) net.trainParam.????; “show”, “lr”, “epochs”, “goal” Simulation A=sim(net,q);

Menu function MenuDemo cell_list = {}; fig_number = 1; title_figure = 'Menu Demo'; cell_list{1,1} = {'Plot','PlotTest;'}; cell_list{1,2} = {'Mesh','MeshTest;'}; cell_list{1,3} = {'Image','ImageRWD;'}; cell_list{1,4} = {'Image Edge','EdgeTest;'}; cell_list{2,1} = {'????','PlotTest;'}; cell_list{2,2} = {'????','PlotTest;'}; cell_list{2,3} = {'????','PlotTest;'}; cell_list{2,4} = {'Exit',['disp(''Bye. To run again, type "menu".''); close(' num2str(fig_number) ');']}; show_window(cell_list,fig_number,title_figure,120,20,3);

cell_list{1,1} = {‘name',‘function;'}; Menu (cont.) cell_list{1,1} = {‘name',‘function;'}; show_window(cell_list,fig_number,title_figure,x,y,z);

EDGE DETECTION IN MATLAB

Fourier Transform in MATLAB

By the way… MATLAB can also handle Movies 3D objects …

MATLAB is a mighty tool to manipulate matrices Conclusion MATLAB is a mighty tool to manipulate matrices Images can be treated as matrices MATLAB is a mighty tool to manipulate images

MATLAB should be used to code software prototypes In my opinion… MATLAB should be used to code software prototypes Research is mostly about prototypes, not runtime-optimized software MATLAB should be used in research

Algorithm development time is drastically shorter in MATLAB In my opinion… MATLAB prototypes must be re-coded (e.g. in C++) if there’s need for speed Algorithm development time is drastically shorter in MATLAB

end

Introduction to MATLAB and image processing Amin Allalou amin@cb.uu.se Centre for Image Analysis Uppsala University Computer Assisted Image Analysis April 4 2008

Prepared by Fred Annexstein University of Cincinnati Some Rights Reserved

Introduction to MATLAB CIS 350 – 1 Introduction to MATLAB Dr. Rolf Lakaemper