The primary goal of this assignment is to gain experience with geometric image processing and image sampling methods. In particular, your goal is to learn about the implementation of translation, rotation, scale, shear, and combined operations.
Your first task is to write a small program with a function that reads an image, performs translation using "nearest neighbor" pixel sampling and "zero pad" boundary handling, and writes the output image. You will need to link in the im_short class to perform the image I/O.
Extend your program to include similar functions that rotate the image, scale the image, and shear the image. For now, assume that all of these geometric operations are centered on the origin (0,0). Test your program to make sure that all four functions are working properly for a variety of input parameters.
Extend your program again to add new functions for centered rotation, centered scaling, and centered shear where these geometric operations are centered on point (Cx,Cy). Again, test your program to make sure that these operations are producing results that are similar to the online notes.
The formulas for all of the geometric operations are in the text book and the online notes. Remember to loop over the "output pixels" when performing your operations. Also remember to perform float/int conversions properly and do array bounds checking or your program may crash.
To download the image processing libraries for this class, please go to the "Source" link and follow the instructions in the "readme" file.
My standard advice is to develop your code incrementally so you always have something that compiles and runs, even if it is not complete.
Test your program to check that it operates correctly for all of the requirements listed above and save a variety of output images for your report. Also check for the error handling capabilities of the code.
When you have completed your program, write a short report describing what the objectives were, what you did, and the status of the program. Does it work properly for all test cases? Are there any known problems?
Print a copy of your report and programs and hand them into your instructor during class or in the department office. Include a title page which has your name and uaid.