mosaic creator lance finfrock cs 470. introduction a mosaic is hundreds or thousands of pictures...

Post on 14-Jan-2016

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

Print

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