Demonstrates image processing.
------------------------------------------------------------------------ See also CannyEnhancer, GaussianDerivative, HysteresisThreshold, NonMaxSuppression, ColorMapGrayScale, Imager, ReadImage ------------------------------------------------------------------------
Contents
------------------------------------------------------------------------- Copyright (c) 2009 Princeton Satellite Systems, Inc. All rights reserved. ------------------------------------------------------------------------- Since version 8. -------------------------------------------------------------------------
Load the image
%--------------- q = ReadImage('CalibrationPattern.jpg');
Show the derivatives
%--------------------- [dX, dY] = GaussianDerivative( q, 0.05, 0.01 ); Imager(q,[],dX,1); set(gcf,'name','|X Derivative|'); ColorMapGrayScale; Imager(q,[],dY,1); set(gcf,'name','|Y Derivative|'); ColorMapGrayScale;
Compute edge strength and direction. This takes the image derivative internally
%--------------------------------------------------------------------- sigma = 0.05; eps = 0.01; thresh = 0.01; [eS, eO] = CannyEnhancer( q, sigma, eps, thresh ); Imager(q, [], eS, 1); set(gcf,'name','Canny Enhancer : Strength'); Imager(q, [], 256*eO, 1); set(gcf,'name','Canny Enhancer : Direction');
Thin the edges
%--------------- [iN, e0K] = NonMaxSuppression( eO, eS ); Imager(q, [], iN, 1); set(gcf,'name','Non-Maximum Suppression');
This finds the curves
%---------------------- tauH = 0.9*max(max(iN)); tauL = 0.01*tauH; HysteresisThreshold( iN, e0K, tauH, tauL ) %-------------------------------------- % $Id: cef2f83e48e75cef773be80bdd5d9f4023d3a329 $
ans =
1×36 cell array
Columns 1 through 4
{2×27 double} {2×2 double} {2×30 double} {2×2 double}
Columns 5 through 8
{2×29 double} {2×2 double} {2×2 double} {2×3 double}
Columns 9 through 12
{2×2 double} {2×2 double} {2×2 double} {2×2 double}
Columns 13 through 16
{2×27 double} {2×2 double} {2×30 double} {2×2 double}
Columns 17 through 20
{2×2 double} {2×2 double} {2×2 double} {2×2 double}
Columns 21 through 24
{2×2 double} {2×2 double} {2×2 double} {2×2 double}
Columns 25 through 28
{2×27 double} {2×2 double} {2×30 double} {2×2 double}
Columns 29 through 32
{2×2 double} {2×2 double} {2×2 double} {2×3 double}
Columns 33 through 36
{2×2 double} {2×2 double} {2×2 double} {2×2 double}