首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代写CS-256、代做Java编程设计
项目预算:
开发周期:
发布时间:
要求地区:
DATED 2024-02-01 (minor revisions over previous draft)
PLEASE SEE LATEST VERSION ON CANVAS AS THIS ONE MAY CHANGE
CS-256 Visual Computing Assignment (only 1 assignment, worth 20% of module)
Date set : Friday 2nd February 2024 at 13:00
Deadline : Monday 4th March 2024 at 11:00
Viva booking: An Eventbrite link will be posted on Canvas closer to submission.
By submitting this coursework, electronically and/or hardcopy, you state that you fully understand
and are complying with the university's policy on Academic Integrity and Academic Misconduct. The
policy can be found at https://myuni.swansea.ac.uk/academic-life/academic-misconduct.
Guidance: A lot of guidance for this assignment will be given in the lectures and support will be given
in the assignment advisory classes.
Unfair Practice: Do not copy code from colleagues, internet or other sources. You may discuss
approaches together, but all coding must be your own. Presenting work other than your own at a viva
is plagiarism and a recipe for disaster. The application that you demonstrate must be the code
submitted to Canvas. To demonstrate code which is different to that submitted will count as Academic
Misconduct.
Aims
Understand how an image is stored internally, and how to manipulate the image
Translate useful graphics algorithms into working code
Improve your programming skills through self-study and a challenging assignment
Combine interaction with visual feedback
Practice presenting your work in a viva situation
Individuals or pairs
You may complete and submit the assignment as an individual or as a pair (two students working
together). If done as a pair, you must both attend the viva at the same time and indicate that your
submission is joint (so you both get the marks). Do not do it in a team of more than two people. Do not
split as a team once you have decided to work together as your solutions may be duplicates.
Files:
The supporting framework is written in Java. You may use and build on this framework. If you wish to
carry out the coursework in a different language you may do so, but there will be no provided
framework. You will be required to demonstrate your working program on 7/3/2024 or 14/3/2024.
You will require a copy of the Java template downloaded from Canvas. It demonstrates how to display
and manipulate images, with functions that will help you with the exercise.
[Note: You should not redistribute the template code anywhere – you will not have permission to do that]
Assignment Summary:
1. Implement Gamma correction [30 marks]
2. Implement image resizing [30 marks]
3. Implement cross correlation [40 marks]
You do not have to do the assignment in the above order.
Exercise Details:
1. Implement Gamma correction
This should be done using the gamma correction equation, and for full marks, using the look
up table approach. This can be accomplished by watching the "coding Gamma correction"
video. Every student should be able to get 30% by watching and following the coding in the
video and using the provided base code. It is OK if your code is like mine in the video.
2. Image resizing
Implement image resizing using nearest neighbour interpolation and bilinear interpolation.
There are also details about how to do this in the “coding Gamma correction” video. I go as far
as demonstrating code for nearest neighbour interpolation. This (with Gamma correction) is
enough to get 45% on the assignment.
3. Cross correlation with Laplacian
Implement the cross correlation (weighted sum) of a filter with a pixel (and its neighbourhood)
as a function and use that for all pixels in the image to create the intermediate image.
Implement normalisation on an intermediate image to create a new cross-correlated and
normalised image for display. Use the following filter as input. This will achieve the full marks
for this part. You can further experiment with passing different filters (e.g., you could have a
radio button that switches between different filters). This would not attract further marks,
but you may like to do it as a challenge and to understand this part of the course more deeply.
5x5 Laplacian Matrix:
-4 -1 0 -1 -4
-1 2 3 2 -1
0 3 4 3 0
-1 2 3 2 -1
-4 -1 0 -1 -4
Or this may be more useful for copy and paste:
{
{-4,-1, 0,-1,-4},
{-1, 2, 3, 2,-1},
{ 0, 3, 4, 3, 0},
{-1, 2, 3, 2,-1},
{-4,-1, 0,-1,-4}
};
Video
There is a video of an example solution available on Canvas.
Mark distribution vs. time
The time taken to do each part is variable, and depends on your skills. The marks may or may not
represent the time you spend on each item. Gamma correction is easier than image resizing, but has
equal marks. This acknowledges start up time and encouragement to progress to something that
works to hand in.
Submission Requirements:
You will demonstrate your working program to me, or a post-graduate at times you will book using an
Eventbrite link I will send. These will be in the assignment advisory slots of 7th March and 14th March).
Submit your assignment through Canvas by the deadline at the top of this document. If you have
several files, place them in a ZIP). The coursework is worth 20% of this module. There is only 1
coursework. It is marked at the viva. You will get zero marks if you do not do the viva (even if you
submitted something on time). You will get zero marks if you do not make a submission (even if you
try to do the viva). You only get marks if you do both the on-time submission and the viva. If you
worked as a pair, you will only get marks if you both attend the viva.
Academic misconduct:
This is important. Each year a student will try to present code they don’t understand – don’t be that
student. A simple question like “Why did you do that” or “What does that do” should not stump you.
An assignment is not something to get through with minimal work. We aim to stretch you and give you
practise for your future academic work (e.g. third year project) and preparation for your future career.
Marking scheme
Note, if you cannot answer questions about your code (or have limited understanding of it), the
marks will be reduced (sometimes down to zero).
Understanding can be tested using questions like: How is this implemented, how are the other parts
implemented, what does this bit of code do? Appropriate marks will be deducted from each part if
the you cannot describe your own code. Just reading comments out is insufficient and marks should
be deducted. All in code comments must be in English.
1. Implement gamma correction [30 marks]
For each pixel the colour of the pixel is fetched, the gamma correction equation is applied to
each colour channel, and the colour is copied back to the pixel. The value for gamma correction
is obtained using a floating point slider. Values between 0.1 and 3.0 seem reasonable where 1.0
has no effect and could be the starting point. Values greater than 1.0 will make the image
brighter, and values less than 1.0 make it darker if implemented correctly. This can be seen from
the equation. It is OK if the code is the same as my example code for Gamma Correction. The
full 30 marks is for using the look up table approach.
2. Image resizing [30 marks]
Nearest neighbour interpolation is also presented in the coding video. You will probably have
a listener on the resizing slider that will call the resizing code with the desired image scaling
factor. In the resizing function, you will create an image of the correct new size. For each pixel
in the new image, work out where the pixel should be sampled from on the old image. This value
should be the floating point position. At this stage it would be good practice to call a function
that takes that sample position (as floats). The nearest neighbour sampling function will then
round down to the nearest integer and sample the image at that position (i.e., just get the colour
at that position). [15 marks]. Here is some advice for bilinear interpolation. You can choose to
follow it or do something else. A good approach would be to write the “lerp” function first that
takes two floating point values and the ratio between them, and returns the interpolated value.
Then write the bilinear function that carries out 3 lerps to find the correct sample value at a 2D
position. Both of these functions should be tested with known values to make sure they are
working. Then write a function that calls the bilinear function for each of the colour
components for the sample you wish to find. This can be called from the sampling function. [15
marks] (giving a total of 30 marks for part 2).
3. Cross correlation using Laplacian filter [40 marks]
A good approach will create the weighted sum function from the cross correlation definition
and pass in the filter to it. This can be called from a cross correlation function that will find the
weighted sum for each pixel and store it in the intermediate buffer. There will be a
normalisation function that will create an image that can be displayed from the intermediate
buffer.
Submission Procedure:
Submit the assignment through Canvas before the deadline. Demonstrate/viva your assignment
after the deadline at times to be notified.
The college policy for late submission will be used. The timestamp from Canvas will be used. I will
email students at their University account, so you must read this frequently during the term. You
might not be able to demonstrate/viva if you submit late.
If you have extenuating circumstances, follow the extenuating circumstances process. We will not
have a problem with making alternative arrangements for your viva if your EC period covers the viva.
But, if, as a result of extenuating circumstances, you get a one week extension, you must attend the
viva slots. The extension does not apply to the marking viva, only the submission date. You may
choose the later viva slot (14th March). If your EC applies to the whole period of submission and vivas
(e.g. 1st March to 15th March) we can make a special arrangement for the viva.
Individuals or pairs
If you do the assignment as a pair of students, please both submit the same code and indicate at the
head of the code that you worked as a pair and indicate the student number and name of both
students. Important: Make this clear at the viva.
To be clear, the same quality of solution submitted by a single student will get the same marks as the
same quality of solution submitted by a pair of students. There is no mark disadvantage for being in a
pair.
Both students in a pair will get the same marks unless you both agree that the marks should be
distributed differently. I don’t have a procedure yet for informing me of this because I presume this
would not happen, but if it does, then perhaps an email to me is best indicating the split. E.g., tell me
that one student gets 1.0 times the mark, and the other gets n times the mark where n<1. Then I will
multiply the full mark by n for the lower student, and the primary student gets the full mark.
FAQ
I’ve submitted the wrong version.
You can submit multiple times – I will mark the last version (submitted before the deadline).
Marks? (Marks are not feedback – see the next item).
Marks are provided at the demonstration/viva and very shortly after all vivas are complete in an
email to your University number email account. Therefore, it is possible for you to get marks within a
few days of the deadline if you select the earlier date.
Feedback: How does feedback improve my performance?
Feedback arises in several places within this course. Ahead of the submission you can show me and
teaching assistants your solution and ask us questions about it. This feedback is especially relevant
to improving your performance on the assignment. The feedback will directly increase your marks.
Obviously, post submission, the feedback will not improve your marks on the assignment. But it may
give you some ideas about areas you were stuck on which will help your future programming work on
other modules including the third year project.
Other feedback (separate from the assignment) includes you carrying out the practice course
examples and using the provided answers to self-evaluate. If you have difficulties, you can ask me to
cover the material in lecture and particularly the revision lecture.
Therefore, when it comes to questionnaires about feedback improving your performance, please
think about the feedback you can gain during the progress of the course and including selfevaluation against known answers, and not just the marks that are given once the assignment or
exam is over which will obviously have limited impact at that point to improve your performance.
Assignment Hints
I may add some hints to the assignment canvas web page in response to questions I get asked during
the first few weeks of term. The “Exercise Details” above gives some hints – e.g., 1. and part of 2., can
be done by watching the video and each other item gives some directions about how to do that part.
Also the marking scheme gives some more hints.
Changing the framework
Yes, you can change the framework. You can change the interface (hopefully to improve it). You can
use IDE’s to build an interface, so long as the key elements in the marking scheme are coded by you.
You can improve the interface and introduce more advanced features like contrast stretching, greyscale image, bicubic interpolation, etc. But none of this gets any marks in the above marking scheme.
Many students do this because they want their solution to be functionally better, to look nicer and
because they enjoy programming the assignment.
Existing libraries
A very few students use existing Java libraries to carry out image processing, like Gamma
Correction, image resizing and Convolution/Cross correlation Java Image libraries which all exist.
The whole point of the assignment is to program those functions yourself. If you use a library you will
get zero marks and I will draw your attention to this statement and the lectures where I mention this.
Suggested Schedule:
By 9/2/2024 Complete Gamma Correction question. This will include setting up your Java SDK,
JavaFX and IDE.
By 16/2/2024 Complete resizing question. Nearest neighbour is simply watching the video. The
bilinear will be where the real work starts.
By 23/2/2024 Cross correlation in progress. Aim to have tested code that can multiply the filter
weights against the pixels at a location and also create the intermediate array.
By 1/3/2024 Complete cross correlation and therefore complete the assignment, leaving the
weekend and Monday morning free for final polish, checks and submission.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
代做ece5550: applied kalman ...
2024-12-24
代做cp1402 assignment - netw...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!