CSC320 Visual Computing
Assignment 3 Development Notes

Development Notes

I will be updating these as I write my solution to the assignment. Follow along at your own risk. Send questions/comments. Please make sure you still check the Q&A for other notes
  1. Write class SChannels. SChannels holds array/arrays of shorts. Each of R,G,B has its own array (you may want to allow an arbitrary number of channels). Each pixel has 3 shorts associated with it, one for R, one for G, one for B. Note: It is not yet clear if this is the best structure for the solution. In the end I may swap this out for a better approach.
  2. Add code to ImagePanel so that it can return one of these SChannels for its associated image.
  3. Write code to turn an SChannel into an image. Make sure that both the code to grab an SChannel and to create an image from an SChannel works. Try it out on an image.
  4. Either create a Haar utility class or give the SChannels the ability to compute the transform themselves. I think I will try this with an external Haar utility class. The transform function will take a 2-d array of shorts (essentially a single channel) and return a new 2-d array of shorts.
  5. Code the Haar transform as specified above. This will be recursive code. The hint is that it should work on a specified sub array. Modify it so that it works on a SChannel.
  6. Write code to invert a Haar transform, test both to see if they work. Try to pick data so that the transform and it's inverse can be comparable (the same).
  7. Write code to zero small (in absolute value) detail coefficients. Test this both on specified arrays and on input images. What is the effect? What did you expect the effect to be?
  8. Come up with a few options regarding adding the 'realistic effect' to your existing application.
  9. Modify your Haar transform and inverse so that it can be used to tile a picture with a given range of tile sizes. Look only at a certain part of the transform, you will get what you want. May need to write a method which takes an image in one resolution and produces an image of another resolution from it. Of course, you can do this strictly inside short arrays.
  10. If you have any interesting pictures, I would like to get a copy to put up a gallery for other students to see. Please let me know if you want me to leave your name off.
  11. You are on your own now!!