代写CS作业：C++作业代写 计算机科学Nearest-Neighbour Search CS算法代写 CMP2090M Object Oriented Programming Assignment
School of Computer Science
Assessment Package Briefing Document
Title: CMP2090M Object Oriented Programming Assignment
Indicative Weighting: 100%
On successful completion of this assessment package a student will have demonstrated competence in the following areas:
[LO 1] Apply concepts of advanced software development and programming methods to computational problems;
[LO 2] Use advanced object oriented principles and programming techniques in software development; [LO 3] Apply advanced logical and mathematical techniques in the development of software solutions.
The objective of this assignment is, using good object oriented principles and practice, to design and implement a “Nearest-Neighbour Search”, one of the most well celebrated algorithms in Computer Science, as well as to write a technical report that summarises your approach.
You will use NN-S to find which part of an image matches another given reference image.
Demonstrating object oriented principles in your programs, you are to:
Write a C++ program to search for the location of a reference image in a larger image. Additional credit may be given for determining the N-best matches of the template image.
Because images are 2D matrices, the implementation of the NN-S algorithm should be based on the Matrix Class, developed in the workshops.
The images provided to you are in .txt format. That is, each pixel is represented by a value from 0 – 255 representing a greyscale colour.
A detailed presentation of the assignment and a full explanation of the NNS algorithm will take place in one of the lectures.
.txt format large “Where’s Wally” image (Type: Large_Image)
.txt format reference image (Type: Ref_Image)
C++ code to read in the .txt format images
C++ code to write your output into a .pgm format image
.pgm images can be viewed with a variety of image editors, such as ‘IrfanView’ (http://www.irfanview.com)
Your solution should contain at least three classes arranged in a hierarchy as shown here:
1) A C++ solution which matches a reference image to a location in a larger image (as well as you can)
This solution should be the complete VS project, allowing it to be opened and run in VS. Please check your VS solution and make sure it compiles/builds/runs on the lab machines.
2) Your C++ solution should contain:
A Matrix class (containing: constructors, a destructor, operator overloads, etc)
Inheritance hierarchy as shown above
3) The “Where’s Wally” large image showing his location as an outlined or shaded area from the algorithm running in your code.
4) Optionally for greater marks, the ‘Where’s Wally’ image showing the N-best locations (as outlined or shaded areas) for the template image.
5) A report detailing your code and solution to the problem. A template for this report is shown in a separate document.
Additional credit may be awarded for the use of STL/contemporary C++ components in your solution.
Your report must be NO MORE than 4 pages long using the supplied template, and should adhere to the headings and structure set out in the report guidance document.
Please zip up your project files (which should include an executable file, and your source files, along with any other accompanying files) as a compressed ZIP file (no RAR or any other file formats) and should be submitted through Blackboard in the ‘CMP2090M Assessment Item 1 Supporting Documentation Upload’ section of the Assessments folder.
The written report should be submitted separately on Blackboard to the ‘CMP2090M Assessment Item 1 Upload’ submission site
This module is graded using a criterion reference grid. You should be clear in your understanding of the grading principles; if you are not, please seek the advice of the module co-ordinator.
Hand In Instructions
See hand in schedule.
DO NOT include this briefing document with your submission.