1 / 16

# Parallel Edge Detection - PowerPoint PPT Presentation

Parallel Edge Detection. Daniel Dobkin Asaf Nitzan. We’ll talk about…. Introduction to Image Processing What are edges? Why do we need to find them? How do we find them? Motivation to parallelize this process OpenMP implementation. What is an image?. 2-D / 3-D array of pixels

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Parallel Edge Detection' - genero

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Parallel Edge Detection

Daniel Dobkin

AsafNitzan

Introduction to Image Processing

What are edges? Why do we need to find them? How do we find them?

Motivation to parallelize this process

OpenMP implementation

• 2-D / 3-D array of pixels

• Color channels

• RGB – 3 channels

• Grayscale – 1 channel

• 1 byte per channel

values of 0-255

• R = 225

G = 157

B = 168

R = 201

G = 120

B = 137

• A sharp change in values of adjacent pixels

• Motivation to find edges

• A very basic feature in image processing

• First, convert image from RGB to Grayscale

• Convolve the image with a special 2-D operator

• A greater change in intensity indicates a more prominent edge

• Sobel operator:

• For Sobel x filter: -617

• For Sobel y filter: -669

• So now we have 2 numbers, now what?

• We calculate the magnitude and the orientation of the gradient:

• Large amount of computations

• 800 x 600 pixels = 480,000 pixels  5.5 million additions, 2 million multiplications

• Especially when it comes to real-time video…

• 24 fps = 11.5 million pixels  132 million additions, 48 million multiplications…

• Processors access same shared memory

• Each processor performs the region of image assigned to him

• Reduced communication - There is no need to broadcast the pixels of the image to all other processors

openMP Implementation

• Master thread forks a number of threads which execute code in parallel

Original Image

Parallel task – Sobel filtering

join

fork

A

B

C

D

Load Image from Main memory

Allocate memory to new image

Set number of threads

#pragmaomp parallel for \

shared(inputImage, outputImage, width, height)\

private(StartPixel, NumOfThreads, Rank , xPixel, yPixel)

for each Pixel in region

Convert RGB value to greyscale

Compute gradient using Sobel filter

Store result in filtered image

Store new image to disk

openMP Implementation

Filtered Image

Original Image

Processor 1

Sobel

Processor 2

Sobel

Processor 3

Sobel

Processor 4

Sobel

Main Memory

• Linear Speedup due to low communication cost

http://www.cs.rit.edu/~ptt/courses/4003-531/