Laboratory of Image Processing Pier Luigi Mazzeo November 4 th, 2014.

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

Matlab Intro Simple introduction to some basic Matlab syntax. Declaration of a variable [ ] Matrices or vectors Some special (useful) syntax. Control statements.
Introduction to MATLAB The language of Technical Computing.
Matlab Tutorial. Session 1 Basics, Filters, Color Space, Derivatives, Pyramids, Optical Flow Gonzalo Vaca-Castano.
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.
Laboratory of Image Processing Pier Luigi Mazzeo
Image Display MATLAB functions for displaying image Bit Planes
Image Data Representations and Standards
Computational Biology, Part 23 Biological Imaging II Robert F. Murphy Copyright  1996, 1999, All rights reserved.
MATLAB Image Processing Toolbox. Introduction  Collection of functions (MATLAB files) that supports a wide range of image processing operations  Documentation.
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.
Introduction to Matlab By: Dr. Maher O. EL-Ghossain.
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.
Image Analysis Preprocessing Arithmetic and Logic Operations Spatial Filters Image Quantization.
SCCS 4761 Introduction What is Image Processing? Fundamental of Image Processing.
MATLAB for Image Processing CS638-1 TA: Tuo Wang Feb 12 th, 2010.
MATLAB and SimulinkLecture 11 To days Outline  Introduction  MATLAB Desktop  Basic Features  Branching Statements  Loops  Script file / Commando.
Introduction to Matlab 1. Outline: What is Matlab? Matlab Screen Variables, array, matrix, indexing Operators Plotting Flow Control Using of M-File Writing.
Introduction to MATLAB
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
INTRODUCTION TO MATLAB LAB# 01
Gulsah Tumuklu Ozyer MATLAB IMAGE PROCESSING TOOLBOX.
Digital Cameras And Digital Information. How a Camera works Light passes through the lens Shutter opens for an instant Film is exposed to light Film is.
1 Chapter 1: Introduction 1.1 Images and Pictures Human have evolved very precise visual skills: We can identify a face in an instant We can differentiate.
1 © 2010 Cengage Learning Engineering. All Rights Reserved. 1 Introduction to Digital Image Processing with MATLAB ® Asia Edition McAndrew ‧ Wang ‧ Tseng.
Graphics. Graphic is the important media used to show the appearance of integrative media applications. According to DBP dictionary, graphics mean drawing.
CS112 Scientific Computation Department of Computer Science Wellesley College Numb3rs Number and image types.
Matlab The language of Technical computing Mr. D. Suresh Assistant Professor, Dept. of CSE, PSNA CET, Dindigul.
Presented By: ROLL No IMTIAZ HUSSAIN048 M.EHSAN ULLAH012 MUHAMMAD IDREES027 HAFIZ ABU BAKKAR096(06)
Getting Started with MATLAB CS534 TA: Matt McDaniel Sep 17 th, 2012 Slides by Chunhui Zhu – Fall 2011 Thanks to the help from Tuo.
Introduction MATLAB stands for MATrix LABoratory.  Basics  Matrix Manipulations  MATLAB Programming  Graphics  Image types  Image Processing  Useful.
1 © 2010 Cengage Learning Engineering. All Rights Reserved. 1 Introduction to Digital Image Processing with MATLAB ® Asia Edition McAndrew ‧ Wang ‧ Tseng.
Digital Image Processing Lecture4: Fundamentals. Digital Image Representation An image can be defined as a two- dimensional function, f(x,y), where x.
Matlab Screen  Command Window  type commands  Current Directory  View folders and m-files  Workspace  View program variables  Double click on a.
Computer Simulation Lab Electrical and Computer Engineering Department SUNY – New Paltz SUNY-New Paltz “Lecture 2”
Digital Image Processing Lecture 6: Introduction to M- function Programming.
Digital Image Processing Introduction to M-function Programming.
Introduction to Matlab
Image File Formats. What is an Image File Format? Image file formats are standard way of organizing and storing of image files. Image files are composed.
CMPS1371 Introduction to Computing for Engineers IMAGES.
Outline Introduction to MATLAB Image Processing with MATLAB
Digital Image Processing Introduction to MATLAB. Background on MATLAB (Definition) MATLAB is a high-performance language for technical computing. The.
Introduction to MATLAB 1.Basic functions 2.Vectors, matrices, and arithmetic 3.Flow Constructs (Loops, If, etc) 4.Create M-files 5.Plotting.
Lecture 27: Image Processing
Digital Image Processing
Introduction to MATLAB Ehsan Adeli M. Iran University of Science and Technology, E-Learing Center, Fall 2008 (1387)
Graphics and Image Data Representations 1. Q1 How images are represented in a computer system? 2.
CS100A, Fall 1998, Lecture 201 CS100A, Fall 1998 Lecture 20, Tuesday Nov 10 More Matlab Concepts: plotting (cont.) 2-D arrays Control structures: while,
An Introduction to Digital Image Processing Dr.Amnach Khawne Department of Computer Engineering, KMITL.
การใช้งานโปรแกรม MATLAB ดร. อำนาจ ขาวเน. BASIC ELEMENTS OF MATLAB MATLAB Desktop MATLAB Editor Help System MATLAB (MATrix LABoratory)
Basics of MATLAB 2- Programming in MATLAB By DR. Wafaa Shabana
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
(Project) by:- ROHAN HIMANSHU ANUP 70282
Getting Started with MATLAB
MATLAB DENC 2533 ECADD LAB 9.
Matlab Workshop 9/22/2018.
StatLab Matlab Workshop
Digital Image Processing using MATLAB
StatLab Workshop: Intro to Matlab for Data Analysis and Statistical Modeling 11/29/2018.
CSE 307 Basics of Image Processing
© 2010 Cengage Learning Engineering. All Rights Reserved.
Fundamentals of Image Processing Digital Image Representation
MATLAB stands for MATrix LABoratory.
Introduction to Image Processing with MATLAB
Presentation transcript:

Laboratory of Image Processing Pier Luigi Mazzeo November 4 th, 2014

Outline Introduction to MATLAB Image Processing with MATLAB  Simple operations with images 2

Reference An Introduction to Digital Image Processing with MATLAB by Alasdair MacAndrew. (download from Digital Image Processing using MATLAB. 2° Edition Rafael C. Gonzales, Richard E. Woods, Steven L. Eddins. Gatesmark Publishing. 3

What is MATLAB? MATLAB = Matrix Laboratory “MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++ and Fortran.” ( MATLAB is an interactive, interpreted language that is designed for fast numerical matrix calculations 4

The MATLAB Environment MATLAB window components: Workspace > Displays all the defined variables Command Window > To execute commands in the MATLAB environment Command History > Displays record of the commands used File Editor Window > Define your functions 5

MATLAB Help MATLAB Help is an extremely powerful assistance to learning MATLAB Help not only contains the theoretical background, but also shows demos for implementation MATLAB Help can be opened by using the HELP pull-down menu 6

MATLAB Help (cont.) Any command description can be found by typing the command in the search field As shown above, the command to take square root ( sqrt ) is searched We can also utilize MATLAB Help from the command window as shown 7

More about the Workspace who, whos – current variables in the workspace save – save workspace variables to *.mat file load – load variables from *.mat file clear – clear workspace variables 8

Matrices in MATLAB Matrix is the main MATLAB data type How to build a matrix? – A=[1 2 3; 4 5 6; 7 8 9] ; – Creates matrix A of size 3 x 3 Special matrices: – zeros(n,m), ones(n,m), eye(n,m), rand(), randn() 9

Basic Operations on Matrices All operators in MATLAB are defined on matrices: +, -, *, /, ^, sqrt, sin, cos, etc. Element-wise operators defined with a preceding dot :.*,./,.^ size(A) – size vector sum(A) – columns sums vector sum(sum(A)) – sum of all the elements 10

Variable Name in Matlab Variable naming rules - must be unique in the first 63 characters - must begin with a letter - may not contain blank spaces or other types of punctuation - may contain any combination of letters, digits, and underscores - are case-sensitive - should not use Matlab keyword Pre-defined variable names pi 11

Logical Operators ==,, (not equal) ~=, (not) ~ find(‘condition’) – Returns indexes of A’s elements that satisfy the condition 12

Logical Operators (cont.) Example: >>A=[7 3 5; 6 2 1], Idx=find(A<4) A= Idx=

Flow Control MATLAB has five flow control constructs: – if statement – switch statement – for loop – while loop – break statement 14

if IF statement condition – The general form of the IF statement is IF expression statements ELSEIF expression statements ELSE statements END 15

switch SWITCH – Switch among several cases based on expression The general form of SWITCH statement is: SWITCH switch_expr CASE case_expr, statement, …, statement CASE {case_expr1, case_expr2, case_expr3, …} statement, …, statement … OTHERWISE statement, …, statement END 16

switch (cont.) Note: – Only the statements between the matching CASE and the next CASE, OTHERWISE, or END are executed – Unlike C, the SWITCH statement does not fall through (so BREAK s are unnecessary) 17

for FOR repeats statements a specific number of times The general form of a FOR statement is: FOR variable=expr statements END 18

while WHILE repeats statements an indefinite number of times The general form of a WHILE statement is : WHILE expression statements END 19

Scripts and Functions There are two kinds of M-files: – Scripts, which do not accept input arguments or return output arguments. They operate on data in the workspace – Functions, which can accept input arguments and return output arguments. Internal variables are local to the function 20

Functions in MATLAB (cont.) Example: – A file called STAT.M: function [mean, stdev]=stat(x) %STAT Interesting statistics. n=length(x); mean=sum(x)/n; stdev=sqrt(sum((x-mean).^2)/n); – Defines a new function called STAT that calculates the mean and standard deviation of a vector. Function name and file name should be the SAME! 21

Visualization and Graphics plot(x,y),plot(x,sin(x)) – plot 1D function figure, figure(k) – open a new figure hold on, hold off – refreshing axis([xmin xmax ymin ymax]) – change axes title(‘figure titile’) – add title to figure mesh(x_ax,y_ax,z_mat) – view surface contour(z_mat) – view z as topo map subplot(3,1,2) – locate several plots in figure 22

Saving your Work save mysession % creates mysession.mat with all variables save mysession a b % save only variables a and b clear all % clear all variables clear a b % clear variables a and b load mysession % load session 23

Outline Introduction to MATLAB Image Processing with MATLAB  Simple operations with images 24

A digital image differs from a photo in that the values are all discrete. Usually they take on only integer values. A digital image can be considered as a large array of discrete dots, each of which has a brightness associated with it. These dots are called picture elements, or more simply pixels. The pixels surrounding a given pixel constitute its neighborhood A neighborhood can be characterized by its shape in the same way as a matrix: we can speak of a 3x3 neighborhood, or of a 5x7 neighborhood. Image and digital images 25

Pixel neighbourhood 26

Aspects of image processing Image Enhancement: Processing an image so that the result is more suitable for a particular application. (sharpening or deblurring an out of focus image, highlighting edges, improving image contrast, or brightening an image, removing noise). Image Restoration: This may be considered as reversing the damage done to an image by a known cause. (removing of blur caused by linear motion, removal of optical distortions). Image Segmentation: This involves subdividing an image intoconstituent parts, or isolating certain aspects of an image.(finding lines, circles, or particular shapes in an image, in an aerial photograph, identifying cars, trees, buildings, or roads. 27

Binary: Each pixel is just black or white. Since there are only two possible values for each pixel (0,1), we only need one bit per pixel. Grayscale: Each pixel is a shade of gray, normally from 0 (black) to 255 (white). This range means that each pixel can be represented by eight bits, or exactly one byte. Other greyscale ranges are used, but generally they are a power of 2. True Color, or RGB: Each pixel has a particular color; that color is described by the amount of red, green and blue in it. If each of these components has a range 0–255, this gives a total of different possible colors. Such an image is a “stack” of three matrices; representing the red, green and blue values for each pixel. This means that for every pixel there correspond 3 values. Types of digital image 28

Binary Image 29

Greyscale Image 30

Color Image 31

General commands imread : Read an image figure : creates a figure on the screen. imshow(g) : which displays the matrix g as an image. impixel(i,j) : the command returns the value of the pixel (i,j) iminfo : Information about the image. 32

Data types 33

Image Information 34

Converting between different data type gray2ind - intensity image to index image im2bw - image to binary im2double - image to double precision im2uint8 - image to 8-bit unsigned integers im2uint16 - image to 16-bit unsigned integers ind2gray - indexed image to intensity image mat2gray - matrix to intensity image rgb2gray - RGB image to grayscale rgb2ind - RGB image to indexed image 35

Greyscale images can be transformed into a sequence of binary images by breaking them up into their bit-planes. We consider the grey value of each pixel of an 8-bit image as an 8-bit binary word. The 0th bit plane consists of the last bit of each grey value. Since this bit has the least effect (least significant bit plane). The 7th bit plane consists of the first bit in each value (most significant bit plane). Bit planes 36

Initial Image 37

Bit plane 0 38

Bit plane 4 39

Bit plane 7 40

Spatial resolution is the density of pixels over the image: the greater the spatial resolution, the more pixels are used to display the image. Halve the size of the image: It does this by taking out every other row and every other column, thus leaving only those matrix elements whose row and column indices are even. Double the size of the image: all the pixels are repeated to produce an image with the same size as the original, but with half the resolution in each direction. Spatial Resolution 41

Interpolation 42

Extrapolation 43

These operations act by applying a simple function y=f(x) to each gray value in the image. Simple functions include adding or subtract a constant value to each pixel: y = x±C ( imadd, imsubtract ) Multiplying each pixel by a constant: y = C·x ( immultiply, imdivide ) Complement: For a grayscale image is its photographic negative. Point Processing: Arithmetic operations 44

Arithmetic operations: Addition, subtraction 45

Arithmetic operations: Multiplication, division 46

Complement 47

Addition Image: IImage: I+50 48

Subtraction Image: IImage: I-80 49

Multiplication Image: IImage: I*3 50

Division Image: IImage: I/2 51

Complement Image: IImage: 255-I 52

What is the Image Processing Toolbox? The Image Processing Toolbox is a collection of functions that extend the capabilities of the MATLAB’s numeric computing environment. The toolbox supports a wide range of image processing operations, including: – Geometric operations – Neighborhood and block operations – Linear filtering and filter design – Transforms – Image analysis and enhancement – Binary image operations – Region of interest operations 53

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) –raw-data and 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) 54

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

Image Import and Export Read and write images in Matlab img = imread('apple.jpg'); dim = size(img); figure; imshow(img); imwrite(img, 'output.bmp', 'bmp'); Alternatives to imshow imagesc(I) imtool(I) image(I) 56

Images and Matrices Column 1 to 256 Row 1 to 256 o [0, 0] o [256, 256] How to build a matrix (or image)? Intensity Image: row = 256; col = 256; img = zeros(row, col); img(100:105, :) = 0.5; img(:, 100:105) = 1; figure; imshow(img); 57

Images and Matrices Binary Image: row = 256; col = 256; img = rand(row, col); img = round(img); figure; imshow(img); 58

Image Display image - create and display image object imagesc - scale and display as image imshow - display image colorbar - display colorbar getimage - get image data from axes truesize - adjust display size of image zoom - zoom in and zoom out of 2D plot 59

Image Conversion gray2ind - intensity image to index image im2bw - image to binary im2double - image to double precision im2uint8 - image to 8-bit unsigned integers im2uint16 - image to 16-bit unsigned integers ind2gray - indexed image to intensity image mat2gray - matrix to intensity image rgb2gray - RGB image to grayscale rgb2ind - RGB image to indexed image 60

Image Operations RGB image to gray image Image resize Image crop Image rotate Image histogram Image histogram equalization Image DCT/IDCT Convolution 61

Outline Introduction to MATLAB –Basics & Examples Image Processing with MATLAB –Basics & Examples 62

Examples working with Images (2/3) Blending two images 63

Examples working with Images (3/3) Sobel descriptor to detect object edge 64

Performance Issues The idea: MATLAB is –very fast on vector and matrix operations –Correspondingly slow with loops Try to avoid loops Try to vectorize your code notes/1100/1109.html 65

Vectorize Loops Example –Given image matrices, A and B, of the same size (540*380), blend these two images apple = imread(‘apple.jpg'); orange = imread(‘orange.jpg’); Poor Style % measure performance using stopwatch timer tic for i = 1 : size(apple, 1) for j = 1 : size(apple, 2) for k = 1 : size(apple, 3) output(i, j, k) = (apple(i, j, k) + orange(i, j, k))/2; end toc Elapsed time is seconds

Vectorize Loops (cont.) Example –Given image matrices, A and B, of the same size (600*400), blend these two images apple = imread(‘apple.jpg'); orange = imread(‘orange.jpg’); Better Style tic % measure performance using stopwatch timer Output = (apple + orange)/2; toc Elapsed time is seconds Computation is faster! 67