Programming Project 6: Web-based display results
DATE DUE: Monday, May 15, 2017
Points possible: 10 points
CS-160: Software Engineering
Instructor: Robert Bruce

OVERVIEW

For this assignment, you will use OpenCV's Delaunay triangles algorithm to draw a face mesh on each still image frame associated with a given video ID. You will then put these still images together into a movie using FFMPEG to make a movie.

SPECIFICATIONS

1. Your program should accept command line input through argc and argv. Your program will thus use argv to pass in a non-negative integer (video ID) which represents the unique identifer of an input video.

2. Your program will then query your database for the following metadata associated with the input video ID:

  • Number of frames
  • Width (pixels) of each frame (in pixels)
  • Height (pixels) of each frame (in pixels)

3. For each frame associated with the video ID in the image repository do the following:

  • Send a query to your database to read all facial data points (Cartesian coordinates) and the left and right eye pupil data points (Cartesian coordinates) associated with the video ID and current frame.
  • if the facial data points exist for the current frame, use OpenCV to draw Delaunay triangles
  • Save the resulting image to a temporary directory. DO NOT WRITE OVER YOUR ORIGINAL IMAGE REPOSITORY IF YOU USE AN IMAGE REPOSITORY.

4. Use FFMPEG to create a silent movie titled "VIDEO_ID.mp4" in MPEG4 format using the sequential images in your temporary directory. VIDEO_ID is an unsigned integer and represents the video ID number of the original input video.

5. Embed the video inside a member-only web page (i.e. requires user to be logged in and authenticated). The user should be able to play back the video within the web page.

Implementation

You may implement your application in most programming languages such as Perl, Python, PHP, Java, Ruby on Rails, C, or C++, etc. If your programming language doesn't appear here, ask me for approval.

SUBMITTING YOUR ASSIGNMENT

1. Please include the full names of all members of your team as a comment at the top of your application.

2. Please name your assignment programming_project_6 followed by a period and an appropriate extension depending on the programming language used. For example, use .pl for Perl, .php for PHP, .py for Python, .cpp for C++, .c for C, etc.

LATE ASSIGNMENTS

Assignments submitted after the due date will be worth, at most, 5 points. Additional points will be deducted for programs not meeting the specification as outlined above.