mosaic creator lance finfrock cs 470. introduction a mosaic is hundreds or thousands of pictures...
Post on 14-Jan-2016
217 Views
Preview:
TRANSCRIPT
Mosaic Creator
Lance Finfrock
CS 470
Introduction
• A Mosaic is hundreds or thousands of pictures comprised to make one picture.
Specifications
• Develop an algorithm that builds a mosaic
• Provide a logical user interface
• Provide an Interactive Mosaic viewer
• Allow the user to save and print their mosaics
Mosaic Creation Algorithm•Divide the original picture into thousands of smaller sections
•Find the difference between each section and mosaic pieces
• Choose the best piece
Finding the difference between each section and piece
For every pixel in the original section and the Mosaic piece find the difference between each color value
Choosing the best piece
• Take the piece with the minimal difference
• The option without duplicates– After a piece is chosen, take it out of the pile
not to be chosen again
• The option with duplicates– When a piece is chosen, place it back in the
pile to be chosen again
Blending
• Take each pixel color from the original picture and the mosaic pieces and combine them together
Graphical User Interface• Preview Window
• Number of Pictures Found
• Amount of Divisions
• Allow Duplicates
• Best Picture Match
Interactive Viewer
Saving and Printing
• Saving– Three different sizes of JPEG images– Store as a .mosaic to be opened again in the
Interactive viewer
• Printing– Prints to the size of the page
Requirements
• Java Virtual Machine 1.4.1 or higher
• 128 MB of RAM or higher
• 1.0 GHz or higher processor speed
• 800 by 600 or greater Screen resolution
• JPEG or GIF images only
System Architecture
Main WindowDisplay
MosaicAlgorithm
InteractiveViewer
OpenMosaic
File Finder Save
Incremental Prototyping
• Incremental Prototyping was used because :– GUI needed to be user friendly– Did not have a good grasp on what was
possible – Needed to test program on other systems
• Red Hat• MAC• Other windows machines
Conclusion
• I learned:– Programming techniques :
• Threads• Create a usable GUI• Manipulation of images• Printing and saving of images
– How to design a large project from the ground up
Questions ?
top related