The learning objective of this assignment is:
You may complete this assignment using Java, C/C++, C#, Python, or another language with my approval. You may use built-in file I/O and image classes for this assignment, but the required tasks should not rely on built-in functions.
The following pages may be helpful:
For this assignment, you will create a program that performs Green Screen image composting.
In addition, your program will demonstrate working with binary images, color spaces, grayscale conversion, morphological operations, and blurring.
blur method that averages pixel values in an output image based on the average value of pixels in a square. For example blur(3) should
result in an output image that averages pixels in a 3x3 region, while blur(5) would average pixels in a 5x5 region.
Here is a example results web page. This web page only contains example results for the main task, so make sure you include results for all tasks. Brandon Guo's Results from 2012
You can use the HTML for your own web page. Just "view page source" and copy the HTML into a text editor like Notepad++ or TextWrangler. Then change the images and text to show off your results.
Here is a zip file of some Java starter code: SimpleImage.
This code contains a "wrapper" SimpleImage class, as well as some sample code that reads and writes images. From the SimpleImage class, you an request a pixel at any x,y coordinate which will be of the class java.awt.Color. Use it's getRed() method to get the red value, etc.
Java-SimpleImageProc.zip is an expanded version of this code that can display images and was originally used to access a webcam on Windows PCs, so there is some extra stuff in there that you don't need, but you can play with if you wish. The ImageViewer class can respond to keypresses, but you'll have to add some things to the code if you want the changes to show up in your static images (versus a webcam video, which would be redrawn with the changes on the next frame of the video).
Feel free to modify anything in this code. You don't have to use this if you don't want to
Use your cell phone camera to take a picture in front of the green screen. You probably want to crop/rotate the green image using an image editor before using your image as input to your program. Be aware of issues you might encounter if you try to process images of different dimensions, so either have your program deal with it or crop both input images to the same sizes.
Create a web page that showcases all the work you did for this assignment. Resize images as appropriate for the web.
The web page should contain:
"hw01-username.zip"Refer to the grading criteria file: hw01.criteria.
Cooperation is recommended in understanding programming concepts and system features. But the actual solution of the assignments including all programming must be your individual work. For example, copying without attribution any part of someone else's program is plagiarism, even if you have modified the code. The University takes acts of cheating and plagiarism very seriously.
For this HW01 assignment specifically:The remainder of the assignment should be done on your own. Specifically including but not limited to: creation of resulting images, foreground segmentation, use of morphological operations, grayscale and color space conversions, image blurring.