Loading...

PPT – Image Transforms PowerPoint presentation | free to download - id: 64a7d7-NzFhZ

The Adobe Flash plugin is needed to view this content

Image Transforms

- ??????

Content

- Overview
- Convolution
- Edge Detection
- Gradients
- Sobel operator
- Canny edge detector
- Laplacian
- Hough Transforms
- Geometric Transforms
- Affine Transform
- Perspective Transform
- Histogram Equalization

Image Transforms

- Overview

Image Transform Concept

T

Image Transform Concept

T

Image Transforms

- Convolution

Image Convolution

g(x,y) is known as convolution kernel.

Image Convolution

g(x,y) is known as convolution kernel.

height 2h 1 width 2w 1

Image Convolution

g(x,y) is known as convolution kernel.

height 2h 1 width 2w 1

Some Convolution Kernels

OpenCV Implementation ? Image Filter

void cvFilter2D( const CvArr src, CvArr

dst, const CvMat kernel, CvPoint

anchorcvPoint(-1, -1) )

Deal with Convolution Boundaries

void cvCopyMakeBorder( const CvArr src,

CvArr dst, CvPoint offset, int bordertype,

CvScalar valuecvScalarAll(0) )

Image Transforms

- Edge Detection

Edge Detection

- Convert a 2D image into a set of curves
- Extracts salient features of the scene
- More compact than pixels

Origin of Edges

surface normal discontinuity

depth discontinuity

surface color discontinuity

illumination discontinuity

Edges are caused by a variety of factors

Edge Detection

How can you tell that a pixel is on an edge?

Edge Types

Real Edges

Noisy and Discrete!

- We want an Edge Operator that produces
- Edge Magnitude
- Edge Orientation
- High Detection Rate and Good Localization

Derivatives of Image in 1D

? 1D image

? gradient

? Laplacian

- Edges can be characterized as either
- local extrema of ?I(x)
- zero-crossings of ?2I(x)

2D-Image Gradient

2D-Image Gradient

- Gives the direction of most rapid change in

intensity - Gradient direction
- Edge strength

Classification of Points

- To precisely locate the edge, we need to thin.
- Ideally, edges should be only one point thick.

The Sobel Operators

-1 0 1

-2 0 2

-1 0 1

1 2 1

0 0 0

-1 -2 -1

Good Localization Noise Sensitive Poor Detection

Sobel (3 x 3)

-1 -2 0 2 1

-2 -3 0 3 2

-3 -5 0 5 3

-2 -3 0 3 2

-1 -2 0 2 1

1 2 3 2 1

2 3 5 3 2

0 0 0 0 0

-2 -3 -5 -3 -2

-1 -2 -3 -2 -1

Sobel (5 x 5)

Poor Localization Less Noise Sensitive Good

Detection

OpenCV Implementation ? The Sobel Operators

void cvSobel( const CvArr src, CvArr dst,

int xorder, int yorder, int aperture_size

3 )

OpenCV Implementation ? The Scnarr Operator

void cvSobel( const CvArr src, CvArr dst,

int xorder, int yorder, int aperture_size

3 )

aperture_size

CV_SCHARR

Demonstration

Exercise

Download Test Program

Effects of Noise

Consider a single row or column of the image

Where is the edge?

Solution Smooth First

Solution Smooth First

Where is the edge?

Derivative Theorem of Convolution

Gaussian

Derivative Theorem of Convolution

- saves us one operation.

Optimal Edge Detection Canny

- Assume
- Linear filtering
- Additive iid Gaussian noise
- An "optimal" edge detector should have
- Good Detection
- Filter responds to edge, not noise.
- Good Localization
- detected edge near true edge.
- Single Response
- one per edge.

Optimal Edge Detection Canny

- Based on the first derivative of a Gaussian
- Detection/Localization trade-off
- More smoothing improves detection
- And hurts localization.

Stages of the Canny algorithm

- Noise reduction
- Size of Gaussian filter
- Finding the intensity gradient of the image
- Non-maximum suppression
- Tracing edges through the image and hysteresis

thresholding - High threshold
- Low threshold

Parameters of Canny algorithm

- Noise reduction
- Size of Gaussian filter
- Finding the intensity gradient of the image
- Non-maximum suppression
- Tracing edges through the image and hysteresis

thresholding - High threshold
- Low threshold

OpenCV Implementation ? The Canny Operator

void cvCanny( const CvArr img, CvArr

edges, double lowThresh, double highThresh,

int apertureSize 3 )

Example Canny Edge Detector

Download Test Program

ReviewDerivatives of Image in 1D

? 1D image

? gradient

? Laplacian

- Edges can be characterized as either
- local extrema of ?I(x)
- zero-crossings of ?2I(x)

Laplacian

- A scalar ? isotropic.
- Edge detection Find all points for which
- ?2I(x, y) 0
- No thinning is necessary.
- Tends to produce closed edge contours.

Laplacian

Discrete Laplacian Operators

OpenCV Implementation ?The Discrete Laplacian

Operators

void cvLaplace( const CvArr src, CvArr

dst, int apertureSize 3 )

Example

Laplician for Edge Detection

Find zero-crossing on the Laplacian image.

Zero Crossing Detection

There is a little bug in the above algorithm.

Try to design your own zero-crossing detection

algorithm.

ExampleLaplician for Edge Detection

Download Test Program

Laplacian for Image Sharpening

ExampleLaplacian for Image Sharpening

Sharpened Image

Laplacian of Gaussian (LoG)

Gaussian

Some LoG Convolution Kernels

ExampleLoG for Edge Detection

by Laplacian

by LoG

Image Transforms

- Hough Transforms

Goal of Hough Transforms

- A technique to isolate the curves of a given

shape / shapes in a given image - Classical Hough Transform
- can locate regular curves like straight lines,

circles, parabolas, ellipses, etc. - Generalized Hough Transform
- can be used where a simple analytic description

of feature is not possible

HT for Line Detection

A line in xy-plane is a point in mb-plane.

(m, b)

HT for Line Detection

A line in xy-plane is a point in mb-plane.

All lines passing through a point in xy-plane is

a line in mb-plane.

(m2, b2)

(m1, b1)

(m3, b3)

HT for Line Detection

A line in xy-plane is a point in mb-plane.

All lines passing through a point in xy-plane is

a line in mb-plane.

Given a point in xy-plane, we draw a line in

mb-plane.

(m2, b2)

(m1, b1)

(m3, b3)

HT for Line Detection

A line in xy-plane is a point in mb-plane.

Given a point in xy-plane, we draw a line in

mb-plane.

A line in xy-plane is then transformed in to a

set of lines in mb-plane, which intersect at a

common point.

(m, b)

HT for Line Detection

A line in xy-plane is a point in mb-plane.

Given a point in xy-plane, we draw a line in

mb-plane.

How to implement?

Is mb representation suitable?

A line in xy-plane is then transformed in to a

set of lines in mb-plane, which intersect at a

common point.

(m, b)

HT Line Detection by ??-representation

A line in xy-plane is a point in ??-plane.

(?, ?)

HT Line Detection by ??-representation

A line in xy-plane is a point in ??-plane.

All lines passing through a point in xy-plane is

a curve in ?? -plane.

HT Line Detection by ??-representation

A line in xy-plane is a point in ??-plane.

All lines passing through a point in xy-plane is

a curve in ?? -plane.

Given a point in xy-plane, we draw a curve in ??

-plane.

HT Line Detection by ??-representation

A line in xy-plane is a point in ??-plane.

Given a point in xy-plane, we draw a curve in ??

-plane.

A line in xy-plane is then transformed in to a

set of curves in ?? -plane, which intersect at a

common point.

(?, ?)

HT Line Detection by ??-representation

A line in xy-plane is a point in ??-plane.

Given a point in xy-plane, we draw a curve in ??

-plane.

A line in xy-plane is then transformed in to a

set of curves in ?? -plane, which intersect at a

common point.

OpenCV Implementation ? Hough Line Transform

CvSeq cvHoughLines2( CvArr image, void

line_storage, int method, double rho,

double theta, int threshold, double param1

0, double param2 0 )

ExampleHough Line Transform

Download Test Program

Hough Circle Transform

Circle equation

image space

parameter space

Hough Circle Transform

Cost ineffective time consuming

Circle equation

image space

parameter space

Hough Gradient Method

Circle equation

Parametric form

image space

Hough Gradient Method

The value of can be obtained from the edge

detection process.

Circle equation

Parametric form

image space

Hough Gradient Method

Circle equation

- Quantize the parameter space for the parameters a

and b. - Zero the accumulator array M(a, b).
- Compute the gradient magnitude G(x, y) and angle

?(x, y). - For each edge (x0, y0) point in G(x, y),

increment all points in the accumulator array

M(a, b) along the line - Local maxima in the accumulator array correspond

to centers of circles in the image.

image space

OpenCV Implementation ? Hough Circle Transform

CvSeq cvHoughCircles( CvArr image, void

circle_storage, int method, double dp,

double min_dist, double param1100, double

param2100 int min_radius0, int

max_radius0 )

ExampleHough Circle Transform

Download Test Program

Image Transforms

- Geometric Transforms

Geometric Transforms ?Stretch, Shrink, Warp, and

Rotate

Scaling , Rotation, Translation

Scaling

Rotation

Translation

Scaling , Rotation Translation

Scaling

Translation

Rotation

Translation

Translation

Homogeneous Coordinate

Scaling , Rotation Translation

Scaling

2?3 matrix

Translation

Rotation

Translation

2?3 matrix

Affine Transformation

- An affine transformation is any transformation

that can be expressed in the form of a matrix

multiplication followed by a vector addition. - In OpenCV the standard style of representing such

a transformation is as a 2-by-3 matrix.

2?3 matrix

Affine Transformation

GetAffineTransform

Get Affine Transform

Get 2D Rotation Matrix

WarpAffine

GetQuadrangleSubPix

Example Affine Transform

Download Test Program

GetQuadrangleSubPix

Sparse Affine Transformation

Perspective Transform

Perspective Transform

Perspective Transform

Affine Transform vs. Perspective Transform

Affine Transform

Perspective Transform

Get Perspective Transform

WarpPerspective

Sparse Perspective Transformation

Image Transforms

- Histogram Equalization

Graylevel Histogram of Image

Goal of Histogram Equalization

Goal of Histogram Equalization

Image Enhancement

Method ? Graylevel Remapping

Probability Theory

cdf

Example Gaussian

Example Gaussian

Demonstration

OpenCV Implementation

Example

Download Test Program