Assignment #1: Very Basic Image Processing

Due: January 30 by 9:30

This assignment is to be done individually.

Academic Integrity

The following is offered with apologies to the vast majority of students who do their work honestly and take their university learning seriously:

Your instructor takes academic integrity seriously and has no tolerance for plagiarism or any other form of academic misconduct. Failure to respect these guidelines will result in you receiving a grade of zero on this assignment.

Acceptable collaboration between students might include:

Sharing of any computer code between students, or re-using any code from a third party (e.g., open source) is acceptable, provided that you indicate this explicitly at the start of your report and (as comments) in the VHDL code. In this case, only the portion of work that you did individually will be considered toward your grade.

Unacceptable collaboration and violations of academic integrity include, but are not limited to:

If you are uncertain about any of these guidelines, please discuss with your instructor as soon as possible.

Specifications and Resources

The assignment specifications were provided originally by Hsin-Yun Yao, a former TA for the lab.

Grading scheme

ComponentEvaluation rubric
Read and write module and discussion (section 3.1)
  • 0: doesn't read or write image files
  • 5: only reads but doesn't write image files
  • 7: reads and writes image files, raising exceptions for basic file problems, e.g., end of file before PGM data complete
  • 10: reads and writes image files, raising exceptions for at least 3 violations of PGM file format
  • 15: reads and writes image files, raising exceptions for full set of possible error conditions (to be provided)
Image processing--pixel level (section 3.2)
  • 0: no implementation of pixel operations
  • 3: implementation of some pixel operations but lacking convincing test results
  • 5: implementation of less than 5 pixel operations, with convincing test results
  • 7: working implementation of 5 or more pixel operations with convincing test results
  • 10: correct implementation of all basic pixel operands, with clearly annotated test results
Image processing using two images--image level (section 3.3)
  • 0: no implementation of image-level operations
  • 5: implementation of image-level operations but lacking convincing test results
  • 10: apparently correct operations using two images (where appropriate) but illustration of results is not convincing
  • 15: correct operations using two images (where appropriate) with convincing graphical illustrations of results for at least SUB, XOR, and THRESH
Edge detector (section 3.4)
  • 0: no implementation of edge detector
  • 5: edge detector implementation provided, but without meaningful test results
  • 10: edge detector implementation tested, with graphical results showing successful edge detection
  • 15: edge detector implementation tested on background difference image, with correct normalization and handling of rightmost column
Simulation results and discussion (section 3.5)
  • 0: no simulation traces or no effort to annotate
  • 5: Simulation trace excerpts lack some important annotations or failed to remove irrelevant signals
  • 7: Simulation trace excerpts are clearly annotated to illustrate correct operation of less than 3 test bench items, or failed to remove irrelevant signals
  • 10: Simulation trace excerpts are clearly annotated to illustrate correct operation, including only relevant signals, and spanning a reasonably selected sample of test bench results
Synthesis results and discussion (section 3.6)
  • 0: no synthesis results
  • 3: only limited synthesis results are provided; suggested improvements are lacking or not well justified
  • 5: synthesis results are clear, but missing up to 3 requested items; suggested improvements are lacking or not well justified
  • 7: synthesis results appear reasonable and include all requested information, but suggested improvements are lacking or not well justified
  • 10: synthesis results include all requested information and reasonably justified suggested improvements to the design