distributed... image processing gets consistent results fast the csc 410/510 project by lenny...
TRANSCRIPT
Distributed . . .
Image Processing Gets Consistent Results Fast
The CSC 410/510 Project by Lenny Scardino Glenn Bond Wayne Arena
Why choose image processing?
Data VisualizationFrom microscopic to cosmic, better images mean
Improved precision/ accuracy of measurement
Reproducible results (consistency)
Greater throughput means more analysis, leadingto greater likelihood that results will be accurate
For Example,How many shades of gray can you discern in this image?
The human eye. . .
Eyes are good contrast adjusters, but not good at discerning subtle color variations. When colors are close, details are lost.
Eyes can distinguish on the average about 30 shades of grayin a field of pixels. Pixels are discreet and measurable.
Eyes are not good judges of distance, and cannot accurately reproduce measurements. Pixels are evenly spaced at predefined distances.
A good image has:
Nice dynamic range
Good Contrast
Low Noise
Few artifacts
Adequate, uniform lighting
Is this a good image?
With a little contrast adjustment
details can be discerned more easily.
Some assistance with dynamic rangeis helpful for discerning detail. . .
Why distributed processing of Images?
Reduces processing time, further boosting throughput.
Allows more ambitious analysis projects.
Perhaps it will open up:
Use of existing, previously unusable data
New classes of problems now solvable
Why use the bitmap format?
They’re everywhere and easy to fabricate
Their structure is similar to the RGB format used by SGI
Each pixel is 3 ASCII characters: one for red, one for green, one for blue.
The pixels are one long line in the file, readable by the vi editor and other similar applications. Our C program reads in one long string and begins processing.
Pixels can be converted to integer triplets for easy manipulation, then returned to character type.
How our system processes the image
1. A bitmap file is read and loaded into an array
2. The array of pixel values is analyzed on the first pass
3. A new dynamic range is established by substitution
4. The modified array is used to create a new,
hopefully
better image in a new file
Hopefully this occurs in less wall clock time than
a sequential system would take.
Process 0 then sends lines of integer values to each node for analysis. As each node sends back information, it is tasked with a new line until all lines are analyzed.
Process0
Process 0 builds a dynamic range
array, used to substitute values
in the pixel array. A new bitmap is
constructed, line by line, with greater
contrast and dynamic range.
Process 0 accomplishes the second pass like thefirst. This time pixel values are rewritten.As each node sends back conformation, it is tasked with a new line until all lines are rewritten.
Process0
The new file is written and theprocess terminates.