Presentation is loading. Please wait.

Presentation is loading. Please wait.

Matlab Image Processing

Similar presentations


Presentation on theme: "Matlab Image Processing"— Presentation transcript:

1 Matlab Image Processing
046746

2 Topics Data Types Image Representation Image/Video I/O Matrix access
Image Manipulation MEX - MATLAB Executable Data Visualization General Tips Tricks Topics

3 Data Types Relevant data types Simple casting: double(), uint8().
double – default in most cases single uint8 – [0 255] uint16 – [0 65,535] Logical – [0 1] Simple casting: double(), uint8(). Useful when displaying images with a dynamic range not corresponding to its actual type. Conversion: im2double(),im2uint8(),lab2double(),lab2uint8() Data Types

4 Common problem I = imread('world.jpg'); I2 = I-1.4; diffI = I-I2;
fprintf('Max difference between images: %d\n',max(diffI(:))); figure(1); subplot(1,2,1); imshow(I); title('I'); subplot(1,2,2); imshow(I2); title('I2'); Max difference between images: 1 Common problem

5 Common problem I = double(imread('world.jpg')); I2 = I-1.4;
diffI = I-I2; fprintf('Max difference between images: %2.1f\n',max(diffI(:))); figure(1); subplot(1,2,1); imshow(I); title('I'); subplot(1,2,2); imshow(I2); title('I2'); Max difference between images: 1.4 Common problem

6 Image Representation 2D Matrix
Intensity: Each pixel value in the dynamic range [minP, maxP]. Can represent a grayscale image, results of a 2d function, fuzzy ground truth, etc. Useful commands: imagesc(), axis, colormap(). Binary: a.k.a masks. Can represent absolute ground truth, etc. Useful commands: bwlabel(),bwmorph(),bwdist(),im2bw(),bwperim(). Image Representation

7 Image Representation 2D Matrix
Indexed: Each pixel value in the range [minP, maxP]. Can represent segmentation. Useful commands: regionprops(),label2rgb() Image Representation

8 Image Representation 3D Matrix
True Color: Three 2D matrices stacked. Each represents a color component. (e.g. RGB) Can represent an RGB color image,LAB image, etc. Useful commands: imshow(),rgb2gray(),rgb2ind(). Image Representation

9 Image/Video I/O Useful Commands imread() – read image
imwrite() – write image im2fram() – convert image to movie frame movie2avi() – write avi file aviread() – read avi file mmreader()/VideoReader() – read video (better) movie() – show movie Image/Video I/O

10 Matrix access Useful Commands:
sub2ind()– convert subscript (e.g. (r,c,clr)) to index (n). Ind2sub() – convert index (n) to subscipt (e.g. (r,c,clr)). meshgrid() – generate X,Y grids. Matrix access

11 Image Manipulation Useful Commands:
imcrop()– Useful for interactive cropping. imrotate()– Rotate image. imfilter() – Use kernal to convolve/correlation. nlfilter() – Sliding neighborhood operation. blkproc() – Perform function on (semi-)destinct blocks. fspecial() – Create common image filter kernals. imresize() – Resize image using defined interpolation. kron() – Kronecker tensor product padarray() – Pad image. colfilt() – Colum-stack filtering (faster) imfreehand()- Select region with mouse Image Manipulation

12 MEX - MATLAB Executable
Dynamically linked subroutines produced from C, C++ or Fortran source code. Useful when dealing with non efficient-Matlab algorithms (e.g. iterative algorithm implemented as loops). mex –setup : Setup mex compiling configurations. MEX - MATLAB Executable

13 Data Visualization Useful Commands:
scatter() – Useful to plot points on image. Imagesc() – Useful for 2D data. print() – Save figure as image on disk (careful with lossy compressions) Data Visualization

14 General Tips Avoid loops Manage memory (Clear unused variables)
Useful command: clearvars() Avoid memory duplication – use nested functions function myfun A = magic(500); function setrowval(row, value) A(row,:) = value; end setrowval(400, 0); disp('The new value of A(399:401,1:10) is') A(399:401,1:10) General Tips

15 General Tips Long-Term Usage (Windows Systems Only)
On 32-bit Microsoft Windows, the workspace of MATLAB can fragment over time due to the fact that the Windows memory manager does not return blocks of certain types and sizes to the operating system. Clearing the MATLAB workspace does not fix this problem. You can minimize the problem by allocating the largest variables first. This cannot address, however, the eventual fragmentation of the workspace that occurs from continual use of MATLAB over many days and weeks, for example. The only solution to this is to save your work and restart MATLAB. The pack command, which saves all variables to disk and loads them back, does not help with this situation. General Tips

16 ? Tricks Stenography (Wikipedia)
The art of hiding a message within another larger message ? Tricks

17 Tricks Stenography (Wikipedia) I= imread('StenographyOriginal.png');
The art of hiding a message within another larger message I= imread('StenographyOriginal.png'); I4=85*mod(I,4); figure; subplot(1,2,1) imshow(I); title('Original'); subplot(1,2,2) imshow(I4);title('Result'); Tricks

18 Almost Connected (Steve Eddins’ Blog)
Tricks

19 Tricks Almost Connected (Steve Eddins’ Blog)
url = ' bw = imread(url); lbl = bwlabel(bw); figure; imagesc(lbl); axis image; Tricks

20 Tricks Almost Connected (Steve Eddins’ Blog)
bw2 = bwdist(bw) <= 12.5; lbl2 = bwlabel(bw2); figure; imshow(bw2); figure; imagesc(lbl2); axis image; Tricks

21 Tricks Almost Connected (Steve Eddins’ Blog) lbl3 = lbl2.*bw; figure;
imagesc(lbl3); axis image; Tricks

22 Tricks Feature AND (Steve Eddins’ Blog) bw = imread('text.png');
dots = rand(size(bw))>0.99; Tricks

23 Feature AND (Steve Eddins’ Blog)
touching_pixels = bw & dots; Tricks

24 Tricks Feature AND (Steve Eddins’ Blog)
out = imreconstruct(touching_pixels, bw); Tricks


Download ppt "Matlab Image Processing"

Similar presentations


Ads by Google