| Time Flies ... |
[Jul. 5th, 2006|01:01 pm] |
| [ | mood |
| | Recovery mode | ] |
| [ | music |
| | Chocolate Genius | ] | Time really does fly ... SIP is already almost over, I'm now teaching IN3D, and Italy's back in the World Cup final again.
Some of you seem to be having a hard time with your SIP. I'll tell you a secret: some students hate SIP, hate their companies, and have an awful time. But they get through, and it's great to see them again on Graduation Day.
And if an SIP company really *is* bad, it will most likely be taken off the list of SIP companies in future.
But the grass isn't always greener on the other side.
I'm teaching ENMM again - one class only, but a good group of students. They're the repeat or catch-up students, and I was worried that they might struggle too much ... but they're a bright bunch of folks and seem to be doing ok so far. I enjoy teaching students who are keen to learn.
I'm also teaching IN3D, which is another story. Quite a few students seem to hate the subject. It seems they also hate me, their lecturer. I wonder if I've been a bit too strict with some of them, and if they just want to be left alone in class. The problem is that Maya is very tough software to learn, and the ones who dislike it so much are the ones falling behind. They don't seem to realise that if they fail, they'll have to do it all over again! I don;t know if their hatred is because of me, the subject, or just that they can't cope with the work.
Maya can be very frustrating to figure out, and requires a *lot* of hard work and dedication - the problem is, when you teach slowly, some students get bored, and when you teach slighly faster, weaker students fall behind, espcially if they're not fully paying attention.
Perhaps I should take a softer approach? I need to figure out some way to get them to do their work and pass the subject! Or are students becoming a bit too spoilt these days?
I'll probably do some extra Maya Clinics in the lab, where students can drop by and get help with their projects. But at some point, students have to realise that a negative attitude is actually very self-destructive. What do you think?
If any of you older hands can give me some advice on how to handle students with a very negative attitude, I'd be grateful :-)
Despite all that, work is still fun. I'm also learning a lot of new stuff, and have a few projects to do. A lot of fun events coming up, too, like a visit to George Lucas' Industrial Light & Magic studio in Singapore, and the CG Overdrive next weekend.
I've also been very sick with gastric flu (gastroenteritis). Felt awful ... no eating for almost three days ... but at least lost some weight!
Anyway, let me know how your SIP is going, and how you all are.
Bye for now!
Mr D |
|
|
| |
[Mar. 20th, 2006|01:48 pm] |
Hi folk(s)
If you have any questions about the MMPH or ENMM supp, ask away ... |
|
|
| Post-exam not-so-blues |
[Mar. 2nd, 2006|12:34 pm] |
A few folks have asked me about the exam results.
Well, I can't give specific details, but I will say that I'm happy with the results and that overall performance was pretty good.
And that's all I can say about that!
Enjoy your holidays, and hope to see you at Graduation (not at Supp!).
All the best.
Mr D |
|
|
| Is "No Subject" a Subject? |
[Jan. 26th, 2006|12:58 am] |
| [ | music |
| | Eric Clapton at his bluesy best | ] | Good morning folks (it's 1am),
It seems some of you are waking up to this blog, so I'll start adding a few more posts (but only after a good night's sleep!).
And if anyone is awake now - GO TO SLEEP. That's an order (as well as being sound medical advice - yes, my brother is a doctor).
I bumped into one of my Year 2 students in Orchard earlier this evening - or rather, she came running up going "Sir, Sir!" which was nice ... despite her rather embarrassed-looking cousin. On the hunt for CNY clothes, in Top Shop (which is where most folks buy their clothes in the UK).
I'm considering having an all-day ENMM exam-prep bash, one day during study week, from, say, 10am - 4pm. All you'll do is answer exam-style questions in the LT. Drill it into your brains. Any takers? Post a big YES here if you think it might help.
Okay, time for bed.
Lecture tomorrow.
Should I play some loud rock music to wake you all up, or soft and gentle to make you feel safe and happy? Let me know.
Good night.
Some exam tips coming soon, when I feel more awake.
But here's Exam Tip Number 1: START STUDYING NOW!!!
Mr D |
|
|
| |
[Jan. 9th, 2006|09:04 am] |
Hmmm, seems that no one bothers to use this blog.
Oh well, it's here as a resource to help you learn better.
Basically, if I think no one is reading it, I won't add any posts, since it's a lot of effort.
Previous cohorts of students used the blog well, and I think they benefited from that.
If you have any questions, post them here ... I'll always give an answer, and if it looks like people want to read it, I'll put up some posts about the exam, types of questions, suggested answers, project help, etc.
Cheers!
Mr D |
|
|
| |
[Dec. 5th, 2005|03:33 pm] |
| [ | mood |
| | hopeful | ] |
| [ | music |
| | Oasis - Where Did It All Go Wrong | ] | Hello to ENMM!
Up to now, it's been all JavaP1 and MMPG ... but now it's ENMM, so let's get started.
In the lab, you're trying to extend the multicast chat to private chat.
I've told you that you need a PrivateGUI window.
Let's look at all the classes you need ...
PrivateGUI
A new PrivateGUI window is created every time you want a new private chat, selected from the JList.
The PrivateGUI has to make a unicast connection to the computer you select in the JList.
To make this unicast connection, PrivateGUI needs:
1. The network name or IP address of the private chat computer 2. The port number for sending and receiving messages
Where does it get these from?
From the GroupGUI!
When the GroupGUI creates a PrivateGUI object, it must pass the address and port values into the PrivateGUI via the PrivateGUI's constructor arguments.
PrivateGUI privateGUI = new PrivateGUI(this, address, port);
"this" is a reference to the GroupGUI - though this isn't really necessary, unless you want the PrivateGUI to pass some data to GroupGUI, or call a method in GroupGUI.
PrivateGUI's constructor will look like this:
public PrivateGUI(GroupGUI groupGUI, String privateAddress, int port){ // set the variable values here }
PrivateGUI then needs to create a unicast sender object, to send the data (just the same as the MulticastChat creating a MulticastSender to send its data).
PrivateSender sender = new PrivateSender (PrivateGUI parent, String address, int port);
Again, we pass in a reference to the GUI, the address, and the port number.
PrivateSender
PrivateSender needs to create a unicast socket to privateAddress.
This is done using:
Socket socket = new Socket(privateAddress, port);
Then, it needs to create a PrintWriter object using the socket, to actually send the data.
You can do this, but let's call the PrintWriter object "pw".
NOTE: PrivateSender should NOT be multi-threaded, since it only sends messages when we click the Send button in PrivateGUI.
PrivateSender needs a method called sendMessage (or something like that).
This is called by PrivateGUI whenever a message needs to be sent:
public void sendMessage(String msg){ // code to send the msg string on the pw }
PrivateGUI calls this method like this:
sender.sendMessage(msg);
Where does the msg string come from? I'll let you figure that out.
=================
It basically goes like this:
1. Select private chat in JList in GroupGUI 2. GroupGUI creates a PrivateGUI object, passing in the address and port number 3. PrivateGUI creates a PrivateSender, passing in the address and port number 4. PrivateSender creates a socket, a PrintWriter, and has a sendMessage method 5. Every time you click the send button in PrivateGUI, it calls sender.sendMessage(msg) 6. Eureka!
By following all this for sending private messages, it shouldn't be too tough to figure out how to receive private messages.
If you have any questions, leave a comment here and I'll get back to you as soon as I can (usually within a day or two).
Have fun!
Mr D |
|
|
| |
[Nov. 4th, 2005|03:22 pm] |
Hi folks
Just a quick note to say that I'll continue this blog for the current MMPG students (since it has backdated entries on MMPG that they might find useful) ... but that I've also started a new blog for the ENMM students.
It's at:
www.livejournal.com/~headspace_ENMM
Yes, I know it's a boring name, but I didn't want to get confused about the different sites! (My memory really is that lousy!)
ENMM has more students, so will probably be used more.
For those students and graduates who aren't in ENMM or MMPG, it would still be great for you to add comments to help and motivate the students, and also keep in touch with me, too!
Okay, see you there (or here)! |
|
|
| Time flies ... |
[Oct. 18th, 2005|08:11 pm] |
Hello folks
Hmmm, I'd forgotten all about this blog until some kind person left a comment!
Of course, once I start back next sem, I'll rev it up again ... only, I'm in charge of TWO subjects next sem, MMPG, for those students who couldn't take it last time, and Enterprise Multimedia for the Year 3 students. Does anyone have any idea how to plan the blogs for these subjects - just combine in one Headspace blog, or have two separate ones? What do you think? Any advice much appreciated :-)
This and next week I'll be doing some training on 3D character development and animation. Me the student! And that's one thing I do like about lecturing ... you get chances to learn a lot of stuff, too, before passing it on to everyone else.
LEARNING IS ONE OF THE BEST THINGS YOU CAN DO!!! (And I'm not just being a lecturer now.)
If I have a project to develop a 3D character, does anyone have any ideas of the type of character to invent? What would you do?
Let me know how you all are. I won't see you for a year (Year 2, Sem 2, then your SIP in Year 3, Sem 1), but it'll still be nice to keep in touch. And you can also help the next bunch of MMPG students by answering any question they might post here (though not as many students as you ... probably just one class).
I'll miss teaching you. At the start, I wasn't sure how things would go or what you'd be like. But by the end of Term 1, I really did get to like you all a lot (yes, even the troublemakers, most of whom are really very friendly people, too).
Okay, if there are any replies to this, I'll keep updating now and then. If not, I'll know that most students don't care about their lecturers outside school (weep weep) and will wait til next sem.
Let me know how you're getting on.
Bye for now!
Mr :D |
|
|
| |
[Sep. 21st, 2005|03:26 pm] |
Only two more days until your results are released ... heh heh.
:-) |
|
|
| Aftermath ... |
[Sep. 8th, 2005|10:44 pm] |
| [ | mood |
| | Reflective | ] |
| [ | music |
| | Silence | ] | Hmmm ... I expected this blog to die a quiet death once the exam was over (only to be resurrected next semester when I start to teach Enterprise Multimedia and the MMPG repeat).
But a few people have been posting, which is nice (though some are a bit down about their MMPG chances).
Anyway, here are a few comments from me:
Don't assume things are so bad too quickly.
Like I said in a previous comment, while I was wandering around the exam rooms it looked as if everyone was doing ok.
After the exam, most people seemed quite happy (not jumping for joy, of course ... but basically happy).
If you think you made some silly mistakes - DON'T WORRY!!!
I guarantee every student will have made at least one silly mistake.
(Not to rub it in, but one person forgot to answer a second question in Part B!)
Let me know what you think of the exam, and how you did.
I won't be seeing you for another year (not until you get to ENMM in Year 3, after your SIP) - well, not unless you fail MMPG and have to do the repeat (hopefully not too many).
I will miss you all.
Though one or two classes were rather difficult to teach at first, with quite bad attitudes, things got better as we moved along, and I think most of us got along pretty well in the end.
So let's look forward to the future, and promise to work hard next year and do even better!!!
Mr :D
ps. If you need help with your subjects next semester, feel free to post any questions here and I'll try to help you if I can (no promises ... depends on the subject).
Keep in touch! |
|
|
| |
[Sep. 8th, 2005|09:52 am] |
Okay folks, only one last thing to say ...
GOOD LUCK TODAY!!!
If you have any last minute questions, you can post them here.
I'll see you in the exam hall at 2.30!
:-) |
|
|
| Extra Notes |
[Sep. 6th, 2005|10:50 pm] |
| [ | mood |
| | Sleepy (again) | ] |
| [ | music |
| | John Mayall's Bluesbreakers | ] | Okay, two more days to go ...
Some extra notes have been added to the following OLE directory:
MMPG 2005 -> EXAM PREPARATION -> EXTRA NOTES
These are on:
- image functions - sampling and quantization - transformation graphs - histogram equalisation
You should read these before Thurs.
Post any questions you have to this blog, and I'll answer them as soon as I can.
If you DON'T have any questions, then read the ones other people post and the answers they get (also from their classmates, which is good!).
Time for me to sleep now.
zzzzzzzzzzzzz |
|
|
| Exam getting closer ... |
[Sep. 3rd, 2005|11:48 pm] |
| [ | mood |
| | Sleepy (again) | ] |
| [ | music |
| | Me strangling the guitar | ] | Okay, one more question before we all go to sleep ... this one is not in any of the exam papers I posted on the OLE, but the topics are fundamental to what we've covered in image processing:
==============
a) A 24-bit RGB image has size 200 x 200 pixels. The image is stored
in memory as four integer arrays - one array for the alpha channel
value, and one array for each of the r, g, b values.
You want to reduce the memory requirements of the image. To do this,
you convert the image to grayscale. You find that the memory remains
the same.
Explain why this is so.
(4 marks)
b) Explain how saving the image in part (a) in packed pixel format will
save memory.
Draw a diagram to illustrate your answer, including the alpha channel
value.
(4 marks)
c) How much memory will be saved for the image in part (a) if it is saved
in packed pixel format, as in part (b).
Show your working.
(2 marks)
==============You might want to read this question, then go to sleep and dream about the answer.
What?!
You mean you'd rather dream about that romantic holiday in beautiful Scotland???
Oh well ... I don't blame you.
Sweet dreams.
Mr :D |
|
|
| |
[Sep. 1st, 2005|10:01 pm] |
Okay, another question (oh, you're all having so much fun!) ...
=============
A) The source code for a threshold operation requires some form of
conditional statement, eg. an if statement.
Explain what this conditional statement does. Do NOT write code
– explain your answer in words.
(3 marks)
B) Give ONE example of a context in which thresholding an image is
useful.
An example would be handwriting recognition. (Do NOT use this
example in your answer!)
Explain your answer.
(4 marks)
=============This is more of a comprehension style question, where you have to try to explain (briefly) how or why something works the way it does.
Let's see how well you grab those 7 marks.
I have a sore head now.
Singapore is hot and wet at the same time.
Time for a cup of decaf (which reminds me, I met one of my students in The Coffee Bean, Chinatown Point, this evening ... and she really did look lovely :-)
Who could it be, eh? ... Well, I only hope her MMPG grade looks as good!
:-) |
|
|
| |
[Sep. 1st, 2005|02:06 pm] |
| [ | mood |
| | Rainy | ] |
| [ | music |
| | My boy playing piano | ] | Okay folks
Another question, this time on sound (again).
============
A)Sound is streamed across the network with the following characteristics:
sampling rate of 44100 Hz
4 bytes per sample
mono
How many bytes are streamed per second?
Show your working.
(5 marks)
B)The noise level of Noise A is 128dB. The noise level of Noise B is 80dB.
How many times greater is the noise level of Noise A compared to the
noise level of Noise B?
Show your working.
(5 marks)
============
Let's see how you do with that.
We covered this in the lecture yesterday, so it shouldn't be too tough!
Have fun.
:-) |
|
|
| Exam Revision Time!!! |
[Aug. 29th, 2005|04:54 pm] |
| [ | mood |
| | Tired | ] |
| [ | music |
| | Led Zeppelin - Whole Lotta Love | ] | Okay folks
Exam revision time ...
Usually when doing exam revision, I'd give you some questions in class and then discuss a couple of them in front of everyone.
The problem is that not everyone can get their answers checked, or see what everyone has done and learn from them all.
A weblog is a good way to solve this problem.
So, what I'll do is put up a question every day (if I have time!), and then you post your answer to the weblog *exactly as if you were in an exam*.
Then, I'll mark each answer and write some comments.
Everybody can then learn from everybody else!
Of course, you can post any other comments you like, too :-)
Note that this is not just about knowing the topics - it's also about how to answer the questions!
No need to write pages and pages of stuff ... but also not to write TOO little!!!
Okay, QUESTION #1 (from MMPG Supp Paper 2004)
==================
C1. A grayscale image has the following range of pixel values.
Value is the pixel intensities from 0 (min) – 9 (max);
N is the number of pixels with a given value.
Value N
0 35
1 26
2 15
3 15
4 10
5 4
6 15
7 14
8 21
9 25
Equalise this image. You must show the following in a table:
• Current cumulative frequencies of the pixel values
• Mapped pixel values
• Rounded pixel values
• New N for each pixel value
• New cumulative frequencies of the pixel values
You must also give the ratio, or scaling factor, used in the mapping
step, with all working shown.
(15 marks) ==================
Right, let's see how you get on with that!
But I won't help, nor put up another question, until a few people post some answers.
Oh, and please enclose your answer in the <pre></pre> tags, to keep the table formatting.
Have fun!
Mr :D |
|
|
| Almost over ... |
[Aug. 26th, 2005|11:56 pm] |
| [ | mood |
| | sleepy | ] |
| [ | music |
| | Led Zeppelin - BBC Sessions | ] | Hello all
Well, don't say I'm not good to you ... project extension to Mon at 10am.
Any later and I'll really start cutting marks! Be warned.
I'm listening to Led Zeppelin now. Classic stuff. A live session from the BBC in the UK, many years ago.
Stairway To Heaven. Jimmy Page really is an absolutely astonishing guitarist.
I used to stay quite close to him in Scotland.
I also knew the guitarist from Procol Harum (remember the song, A Whiter Shade of Pale? Nope? Oh well). He agreed to teach me the guitar when I was about 10 years old, but said I had to start learning how to read music first. I was too lazy (ie. stupid), so that was the end of that.
You have to work hard to do the interesting things in life!
Okay, time to sleep.
Happy project finishing/improving/commenting over the weekend.
And yes, I'll expect LOTS of comments (all your own!) since you have so much extra time now.
I will definitely cut marks if you don't put many comments.
Be warned again.
Oh, and please do the online survey on the OLE before Monday, too. Only 43 people have done it so far. Please remind your friends. It's important.
So far, I haven't seen many students with *their own* image processes (not covered in the lectures or labs).
You could:
Add lines and other shapes Try to do 3D (with those 3D specs) Do a gradient (light to dark) Turn the corner of the image, like a piece of paper Mix two images together in different patterns Fiddle with the colour components and how they are mixed Add noise, like snow Reduce the number of colours Make sepia tinted (brownish coloured, like in old photos) Flip sections of the image only, ie. flip-normal-flip-normal-flip, etc Change the image resolution etc etc etc ...
Okay, 12.15am now, so time to sleep.
Any last minute questions, I'll try to answer over the weekend.
Feel free to post.
Have fun!
Mr :D |
|
|
| |
[Aug. 19th, 2005|05:22 pm] |
| [ | mood |
| | Serious but cheerful | ] |
| [ | music |
| | X-Box sound fx from next door! | ] | Okay, a couple of replies to the last post ... and someone who said you're all too *shy* to post comments (huh? shy? surely not - it's anonymous, anyway!).
So I guess I can assume that most folks do read this, and find it useful.
(By the way, apologies to my classes today, since I'm on MC - yes, lecturers do get sick!)
What shall we talk about today?
Who is the greatest rock band of all time? (I think I'd have to say Pink Floyd.) Who should win the Booker 2005 prize for literature? (Probably Ian McEwan.) How does The Teen Titans cartoon fit into the West-East crossover style of animation? (It does?)
Or how should you design the architecture / structure of your MMPG project?
Ok, we'll go with that.
======================= MMPG PROGRAM DESIGN =======================
Most of you are writing your program as ONE BIG class.
As long as you have all the requirements covered, that's ok.
But to get those extra marks, you need to think about proper design.
STEP 1
Split your program into:
1. front-end GUI display functionality 2. Back-end processing
STEP 2
Decide what the GUI part does:
- Load an image
- Display an image
- Present choices to the user (menus or buttons)
We'll create a class called ProjectGUI.
STEP 3
Decide what the back-end processing does.
Basically, this is the image processing part.
As an example, we'll look at thresholding.
We will create a separate class called OpThreshold.
The job of this class is simply and only to threshold the image based on the image pixel data!
NO GUI STUFF!!!
STEP 4
Figure out the relationship between ProjectGUI and OpThreshold.
What does the OpThreshold class need to do its job?
It needs DATA!!!
Where does this data come from?
From the GUI part, where the image is stored and displayed.
In other words, the GUI part (ProjectGUI) must pass the image data to the OpThreshold class.
The OpThreshold class must process this data, then return it to ProjectGUI.
Now, we have a few choices regarding how to get the image data to OpThreshold and back:
1. Pixel by pixel.
// Inside ProjectGUI public void doThreshold(){ OpThreshold op = new OpThreshold(int thresholdValue); for(int i=0; i<pixels.length; i++){ pixels[i] = op.threshold(pixels[i]); } }
// Inside OpThreshold // Assume that OpThreshold has a thresholdValue variable set in the constructor public int threshold(int pixel){ getRGB(pixel); int val = (int)((r+b+g)/3); if(val < thresholdValue){ val = 0; } else { val = 255; } return setRGB(pixel, val, val, val); }
This means calling the threshold method in OpThreshold lots of times!!! (Once for each pixel.)
=> VERY SLOW!!!
2. Pass in the image object.
// Inside ProjectGUI public void doThreshold(){ OpThreshold op = new OpThreshold(int thresholdValue); image = op.threshold(image); }
// Inside OpThreshold public BufferedImage threshold(BufferedImage image){ int[] pixels = getPixels(image); for(int i=0; i<pixels.length; i++){ getRGB(pixels[i]); int val = (int)((r+b+g)/3); if(val < thresholdValue){ val = 0; } else { val = 255; } setRGB(pixels[i]l, val, val, val); } int w = image.getWidth(); int h = image.getHeight(); image.setRGB(0, 0, w, h, pixels, 0, w); return image; }
The threshold method is doing a lot of things!
Best to keep things simple.
3. Pass in the pixels array.
// Inside ProjectGUI public void doThreshold(){ OpThreshold op = new OpThreshold(int thresholdValue); pixels = op.threshold(pixels); }
// Inside OpThreshold public int[] threshold(int[] pixels){ for(int i=0; i<pixels.length; i++){ getRGB(pixels[i]); int val = (int)((r+b+g)/3); if(val < thresholdValue){ val = 0; } else { val = 255; } setRGB(pixels[i], val, val, val); } return pixels; }
Basically, it should look like this:
ProjectGUI ==> old pixels array ==> OpThreshold ProjectGUI <== new pixels array <== OpThreshold
ProjectGUI passes OpThreshold the current (old) pixels array. OpThreshold changes the values in the array and returns the processed (new) array to ProjectGUI.
ProjectGUI (or another class, if you want to be a bit more advanced) can be responsible for getting the pixel data from the image, and updating the image with the newly processed pixel array.
And the same for all the other operations you have to do (flip, invert, etc).
STEP 5
Buy your lecturer a nice present (or at least tell his boss how helpful and good and kind and patient he is).
STEP 6
Celebrate your extra marks!
=================
Right, I promised my boy I'd play X-Box with him.
(Or did he promise that he'd play with me? Hmmm).
Time to go.
Please leave some comments to let me know if you found this helpful.
Thanks!
Mr :D
Legal disclaimer: all code written off the top of my head while on MC, so no liability for possible hours of frustration trying to figure out what's wrong. |
|
|
| |
[Aug. 18th, 2005|01:22 pm] |
It would be good if you could leave some comments here, so I can see if anyone is actually bothering to read these updates.
They're supposed to help you with your project, but if no one reads them, then there's no point in spending the extra time.
Feedback is good!
Thanks.
Mr :D |
|
|
| Thresholding |
[Aug. 17th, 2005|09:20 am] |
| [ | mood |
| | Very sleepy this morning | ] |
| [ | music |
| | Oasis - Where Did It All Go Wrong? | ] | Here's an email someone sent me (you know who you are!).
================
Can't seem to get my threshold method working. Is it alright for u to
check my codes and comment on it? I looked at the lecture slides
(pseudocode) and tried to do it. Here is my codes..
public int threshold(int amt) {
for (int i = 0; i < pixels.length; i++){
if (amt >= 100) {
amt = 255;
} else {
amt = 0;
}
}
return amt;
}
=================
Well, a few things mixed up here!
amt is the threshold value.
This is the value that all the pixel values will be checked against.
If a pixel value is less (<) than this, the new pixel value will be 0 (black).
If a pixel value is more than or equal to (>=) this, the new pixel value will
be 255 (white).
You DO NOT check whether amt is less than the threshold value - amt
is the threshold value!
Inside the loop, you need to get every pixel value from the pixels array:
pixels[i]
Then check this against the threshold value (amt, in this case).
Then, you set the pixel value, pixels[i], to either 0 or 255.
Also, DO NOT Hard-code the threshold value.
In this case, the threshold value is hard-coded at 100 (amt, which should be
the threshold value, is passed in as an argument to the threshold method).
NOTE ON COLOUR:
For your project, all original images can be greyscale.
This means that I don't care if your project doesn't work for colour images.
ie. Sir, should my project work for colour images?
I don't care!
HOWEVER, one operation MUST work for colour - the operation to display only
the RED, GREEN, or BLUE components of an image.
All the other operations can be for grayscale images only.
You may choose to do for colour, also - but not essential.
To threshold a colour image, you can extract the R, G, B component values,
then take the average of these.
Then, check the average against the threshold value - then set all component
values to 0 or 255.
Thanks for the question.
Keep 'em coming!
:-)
ps. I'm serious about TWO things regarding your project:
1. COPYING. I will be very STRICT about copying. ZERO marks (effectively fail
MMPG) for copying.
2. NOT DOING YOUR OWN WORK. I know of one student who got a friend to do most
of her ITEN project for her (calculations, etc). I will NOT tolerate this,
and will question any student(s) I suspect.
pps. To the student who left the rude comment (deleted) on this blog, please
realise that a polytechnic diploma isn't so tough. If you can't handle it,
take a good hard look in the mirror.
|
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
| |
|
|