Top Banner
Matlab Tutorial. Session 1 Basics, Filters, Color Space, Derivatives, Pyramids, Optical Flow Gonzalo Vaca-Castano
34

Matlab Tutorial. Session 1 Basics, Filters, Color Space, Derivatives, Pyramids, Optical Flow

Feb 24, 2016

Download

Documents

gaenor

Matlab Tutorial. Session 1 Basics, Filters, Color Space, Derivatives, Pyramids, Optical Flow. Gonzalo Vaca-Castano. Matlab Tutorial. Session 1. BASICS. Introduction to mathematical programming. Commonly used coding/computing environment in research: MATLAB (Matrix laboratory) - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Introduction to mathematical programming

Matlab Tutorial.Session 1Basics, Filters, Color Space, Derivatives, Pyramids, Optical FlowGonzalo Vaca-CastanoBASICSMatlab Tutorial. Session 1Introduction to mathematical programmingCommonly used coding/computing environment in research: MATLAB (Matrix laboratory)

Ideal for numerical computationEasy to learnNo compiling hasslesQuick testing of ideas!Helpful tools and tricks for engineers/researchersExecution of tasks on command prompt

Matlab LayoutCurrent directoryBasic math operationsDMAS : / * + -

Exponents: ^

Trigonometric operations sin, asincos, acostan, atan

MatricesCreating a matrix: Example: >> [1 1; 0 1]

Matrix operationsAddition, multiplication, inverse, transpose + , * , inv() , VectorsCreating vectors: example: >> [1 2 3 4 5]

Vector operations:Dot product: .Sum all elements: sum()Sort elements: sort()Find histogram of elements: hist()Find average of elements: mean()Solving a system of linear equationsSolving a system of linear equationsa=[3 2 1; -1/2 2/3 -1; 1 -2 1]b=[0;1/2;-1]c=inv(a)*b;

Output: c= [-0.1429; 0.3214; -0.2143]

Processing images in MatlabImage2-D array of numbers (intensity values, gray levels)

Gray levels 0 (black) to 255 (white)

Color image is 3 2-D arrays of numbersRedGreenBlue11

12Example: Removing noise% Create a noisy imageI = imread('eight.tif');imshow(I)J = imnoise(I,'salt & pepper',0.02);figure, imshow(J)

% Mean filterK = filter2(fspecial('average',3),J)/255;figure, imshow(K)

%Median filterL = medfilt2(J,[3 3]);figure, imshow(L)Convolution

Color spaces: Rgb,HSV, etcMatlab Tutorial. Session 1

Image ArchitectureRaster Images (RGB, Gray Scale, Logical)

RGB(0 255)(0 255)(0 255)3 depths(0 255)Gray ScaleRowColSingle depthRow 1Logical (0 0r 1)Row 2Row 3(8-bit representation of colors)(8-bit representation of gray scale)(1-bit representation of black or white saturation)

RGB space>> I = imread('board.tif')

Displaying image:>> imshow(I)

Check image size>> size(I)

Convert color image to black and white image:>> rgb2gray(I)% Gray= 0.2989 * R + 0.5870 * G + 0.1140 * B Other Color spacesrgb2hsv(I)rgb2ycbcr(I)rgb2ntsc (I)

CIELAB or CIECAM02http://en.wikipedia.org/wiki/HSL_and_HSV

DerivativesDerivatives (Filters)In a continuos 1d Signal, derivative is:lim dx->0 f(x+dx)-f(x)/dxIn a discrete 1d signal, derivative is:f(x+1)-f(x)It is a convolution with the filter:

Other popular filter is:

Sobel FilterDerivatives in 2D

------------

[1 -1]KERNEL--[1 -2 1][1 -2 1] -- 0 1 0 1 -4 1 0 1 0Filtering in 2D Arrays (Convolution)

Alternative derivatives in 2D

Derivatives in MatlabI = imread('trees.tif');imshow(I)k1=[ 1 0 -1;2 0 -2; 1 0 -1]o=imfilter(double(I),k1,'same');figure; imagesc(o)colormap gray

QUESTION:Why imagesc instead of imshow ?PyramidsPyramidDefinition: is a type of multi-scale signal representation in which a signal or an image is subject to repeated smoothing and subsampling

Smoothing

L is a blurred image- G is the Gaussian Blur operator- I is an image- x,y are the location coordinates- is the scale parameter. Think of it as the amount of blur. Greater the value, greater the blur.- The * is the convolution operation in x and y. It applies gaussian blur G onto the image ISmoothing function% gauss_filter: Obtains a smoothed gaussian filter image% - Output: % smooth: image filter by a gaussian filter% - Input:% image: Matrix containing single band image.% sigma: Value of the sigma for the Gaussian filter% kernel_size: Size of the gaussian kernel (default: 6*sigma)function [smooth]= gauss_filter(image,sigma,kernel_size)if nargin < 2 sigma=1; endif nargin < 3 kernel_size=6*sigma;endgaussian_radio=floor(kernel_size/2); %radio of the gaussianx=[-gaussian_radio : gaussian_radio]; % x values (gaussian kernel size)gaussiano= exp(-x.^2/(2*sigma^2))/(sigma*sqrt(2*pi) ); %calculate the unidimensional gaussian temp=conv2(double(image),double(gaussiano),'same');smooth=conv2(double(temp),double(gaussiano'),'same');end

Example smoothingI = imread('eight.tif'); imagesc(I); colormap gray;antialiassigma=2;Ismooth=gauss_filter(I,antialiassigma,11);figure; imagesc(Ismooth); colormap gray;

SubsamplingI0 = imread('cameraman.tif');I1 = impyramid(I0, 'reduce');I2 = impyramid(I1, 'reduce');I3 = impyramid(I2, 'reduce'); imshow(I0)figure, imshow(I1)figure, imshow(I2)figure, imshow(I3)

See also: imresizeOptical FlowOptical flowDefinitionOptical floworoptic flowis the pattern of apparentmotionof objects, surfaces, and edges in a visual scene caused by the relative motion between an observer (aneyeor acamera) and the scene

Optical Flow code (Download it from webpage)i1=imread('view1.png');i2=imread('view5.png');[u,v,cert] =HierarchicalLK(rgb2gray(i1),rgb2gray(i2),3,2,2,1)flowtocolor(u,v)

Optical Flow Results