CMT107-无代写
时间:2022-12-14

Cardiff School of Computer Science and Informatics
Coursework Assessment Pro-forma

Module Code: CMT107
Module Title: Visual Computing
Lecturer: Dr Xianfang Sun / Dr Jing Wu
Assessment Title: Visual Computing Coursework
Assessment Number: 1
Date Set: 31 October 2022
Submission Date and Time: by 8 December 2022 at 9:30am
Feedback return date: 13 January 2023

If you have been granted an extension for Extenuating Circumstances, then the
submission deadline and return date will be 1 week later than that stated above.
If you have been granted a deferral for Extenuating Circumstances, then you will be
assessed in the summer resit period (assuming all other constraints are met).

This assignment is worth 30% of the total marks available for this module. If coursework
is submitted late (and where there are no extenuating circumstances):
1 If the assessment is submitted no later than 24 hours after the
deadline, the mark for the assessment will be capped at the minimum
pass mark;
2 If the assessment is submitted more than 24 hours after the deadline, a
mark of 0 will be given for the assessment.

Extensions to the coursework submission date can only be requested using the
Extenuating Circumstances procedure. Only students with approved extenuating
circumstances may use the extenuating circumstances submission deadline. Any
coursework submitted after the initial submission deadline without *approved*
extenuating circumstances will be treated as late.
More information on the extenuating circumstances procedure can be found on the
Intranet: https://intranet.cardiff.ac.uk/students/study/exams-and-
assessment/extenuating-circumstances

By submitting this assignment you are accepting the terms of the following declaration:

I hereby declare that my submission (or my contribution to it in the case of group
submissions) is all my own work, that it has not previously been submitted for
assessment and that I have not knowingly allowed it to be copied by another student. I
understand that deceiving or attempting to deceive examiners by passing off the work of
another writer, as one’s own is plagiarism. I also understand that plagiarising another’s
work or knowingly allowing another student to plagiarise from my work is against the
University regulations and that doing so will result in loss of marks and possible
disciplinary proceedings1.


1 https://intranet.cardiff.ac.uk/students/study/exams-and-assessment/academic-integrity/cheating-and-
academic-misconduct
Assignment

This coursework consists of two parts related to graphics and Image processing, respectively. For
you to complete the coursework in time, you are suggested to complete the graphics part before
the end of week 7, and then finish the image processing part. The total marks assigned to each
part and divided into each task are listed in the brackets.

Graphics [50 marks in total]

This task consists of three individual JOGL programming subtasks. Partially functional
programs are provided. Download the file VCCW.7z from the Assessment section in Learning
Central. You are required to modify the provided programs and submit your new versions.

1. Interactive Transformations [10]
The purpose of this task is to implement interactive model--view transformations with
keyboard input.
You need to modify the source code VCCW01.java. The initial program has
implemented the rendering of an object (teapot) and allows interactive enlarging of
the object. Comments in the program show where you should add code for tasks (b)
and (c), but you should find the location yourself for task (a). You are required to
a) find an appropriate location in the program and add suitable definitions for
additional parameters that are required for the transformations below;
b) fill in code in the function keyPressed() to calculate the parameters;
c) fill in code in the function display() to perform the transformations.

The transformations to be implemented are:
• on pressing the key `M', the object should expand; (this function has already
been implemented)
• on pressing the key `N', the object should shrink;
• on pressing the Left/Right arrow key, the object should move left/right;
• on pressing the Up/Down arrow key, the object should move up/down;
• on pressing the key `X'/ `C', the object should rotate around the x axis
clockwise/anti-clockwise;
• on pressing the key `Y'/ `U', the object should rotate around the y axis
clockwise/anti-clockwise.

2. Modelling and Lighting [20]
The purpose of this task is to build a 3D polygonal model, and render a scene
including more than one object with different material properties.

You need to modify the source code VCCW02.java and create a new file SCone.java.
The initial VCCW02.java program has implemented rendering one object (a sphere).
You are required to
a) create a new class SCone extended from SObject, which builds a cone model.
It is expected that the class SCone works like the class SSphere provided for
rendering the sphere, except that SCone is used for rendering a cone;
b) in the function init() in VCCW02.java, add code to create a cone, and set its
material to one which is different to the sphere's;
c) in the function display() in VCCW02.java, add code to transform the sphere
and cone to appropriate positions so that the rendered image looks like that shown
in the following picture.



3. Texture mapping [20]
The purpose of this task is to perform texture mapping onto a 3D cube.

Write a program VCCW03.java to implement texture mapping on all six sides of a
cube object. You need to create an SCube class extended from SObject, which
defines the vertices, normals, and texture coordinates of a cube. You also need to
write your own vertex and fragment shaders (called Texture.vert and Texture.frag),
which should implement blending of texture and Gouraud shading. You can use
Gouraud.vert and Gouraud.frag as initial shaders, and add texture mapping in the
shaders to form Texture.vert and Texture.frag.

A texture file WelshDragon.jpg is provided. The rendered image should look like the
following picture, but it is not required that your rendering result should have exactly
the same viewpoint as this.



Image Processing [40 marks in total]

The Shi-Tomasi corner detector is based on the Harris corner detector. The only difference is
the response function :
Harris detector: = λ1λ2 − (λ1 + λ2)
2,
Shi-Tomasi detector: = minimum (λ1, λ2),
where λ1 and λ2 are eigenvalues of the second moment matrix M.

Write a Java program to implement Harris detector and Shi-Tomasi detector. Clearly show in
the code each step and the difference between the two detectors. You are not allowed to use
packages from the computer vision libraries, such as OpenCV, for the algorithm
implementation. You can use the attached image Room.jpg as a testing example, but you are
free to choose any other images for testing.

The program should be able to:
(a) Load and display an image to be processed by the algorithms [10]
(b) Implement Harris corner detection algorithm [10]
(c) Implement Shi-Tomasi corner detection algorithm [10]
(d) Display side-by-side the corner detection results using the two algorithms [10]




Documentation [10 marks in total]
The source code should include concise comments, describing how the program is achieving the
various tasks. A Readme file is required to describe which tasks you have completed.
Learning Outcomes Assessed

• Programming of simple visual computing algorithms, including data handling.
• Understanding of the computational burdens associated with different processing
techniques and be able to select appropriate methods depending on the intended
application and context.

Criteria for assessment
Credit will be awarded against the following criteria.
• Distinction (70-100%): the submission fully addresses the stated requirement for
the Task, as well as meeting the excellence indicators below.
• Merit (60-69%): the submission fully addresses the stated requirement for the
Task, but has weaknesses in terms of the weakness indicators below.
• Pass (50-59%): the submission partially addresses the stated requirement for the
Task.
• Fail (0-50%): the submission does not adequately address the stated
requirement for the Task.

Factor Weakness indicator Excellence indicator
Functionality: to what
extent does the program
Little or no progress
towards implementation;
approach not suitable.
Efficient and complete
implementation; all
cases are considered.
realise the task
described?
Design and Structure:
how clear is the structure
of the code and how well
are data structures and
algorithms used?
Code is mostly obscure;
little or no structure is
visible in use of data
structures and algorithm
design.
Well structured code
with highly suitable
data structures and
optimal, clear
algorithms.
Documentation:
to what extent do the
comments and the report
help a reader to
understand the code?
Hardly any comments or
only very confusing or
low-level comments
about single instructions;
no report, or the report is
confusing.
Clear and concise
report and comments
describing ideas and
high-level structure
without unnecessary
detail.

Feedback and suggestion for future learning

Feedback on your coursework will address the above criteria. Feedback and marks will
be returned on 13 January 2023 via Learning Central.


Submission Instructions


Complete the programming tasks as described in the Assignment section, and upload the files
listed in the following table onto Learning Central in the CMT107 module Assessment
Coursework section by 8 December 2022 at 9:30am.


Description Type Name
Cover
sheet
Compulsory One PDF (.pdf) file [student number].pdf
Source
code
Compulsory
A zip file contains one or more Java
files and other files necessary for
the programs to run correctly)
Code_[student number].zip
Readme Compulsory
One plain text file indicating which
features you have implemented
Readme_[student number].txt

Any code submitted will be run on a system equivalent to those available in the
Windows/Linux laboratory OR University provided Windows/Linux laptop and must be
submitted as stipulated in the instructions above.

You may copy small code fragments from the CMT107 handouts and lab classes, or any
recommended and background textbooks for CMT107, including from the printed text,
CDs/DVDs, websites, etc. for the textbook, provided that your source code contains clear
reference to the origin of the code. You may not reproduce code written by any other
student or code obtained from any other source not mentioned above.

Any deviation from the submission instructions above (including the number and types of
files submitted) may result in a mark of zero OR a reduction in marks for the assessment
or question part.


Staff reserve the right to invite students to a meeting to discuss coursework submissions


Support for assessment

Use the laboratory classes to get guidance in doing this exercise. You are encouraged to
contact the lecturers by e-mail if you have any queries.

essay、essay代写