You are on page 1of 6

AP Dr.

Harsa Amylia bt Mat Sakim

EEE 123 Group Project - Image Processing using C++


All 22 groups of students will be provided with the same images to perform some basic image processing algorithms. Students are encouraged to use Visual C++ to code their GUI for their program but they are also free to use Dev C++ or any other suitable compilers. Students may choose to do any combination of the tasks below but they are required to complete a minimum of 3 tasks. Extra credits will be given to the group which completes more tasks or has some special features other than those given in the tasks below. Task 1 Improving Contrast of image Leonardo da Vinci is upset that his prized portrait, the Mona Lisa has faded in contrast. Your job is to write an algorithm to improve the contrast of the image. In other words, this means the black needs to be blacker and the white needs to be whiter. Hint: Do a Histogram Equalization on the image Image size: 200 width x 300 height Image format: BMP

Task 2 Reducing the noise of image You were just going through some of your old stuffs in the storeroom, when you came across this old photo of your childhood sweetheart. Unfortunately the photo did not age well with time as there is a lot of noise on it. However, fortunately, you have programming basic. Write an algorithm to filter out the noise or at least smoothen the image. Hint: Median filter or Mean filter will do the trick! Image size: 190 width x 300 height Image format: BMP

Task 3 Color Conversion Nintendo is interested to come up with alternative palettes of the famed Yellow Rat. Can you help them solve their problem by coming up with an algorithm to change the color of the Rat? Hint: Replace the RGB values byte for byte Image size: 250 width x 300 height Image format: BMP

Task 4 ImageCeption (Image within an image) You are required to write a program to place a small image on another bigger image. First load two images and store into memory. Then let the user key in the coordinates on the big image to place the smaller image. Hint: Write the smaller image into memory and replace the bytes of the larger image.

Task 5 Count the number of squares Count the number of boxes in the image given. Do not cheat as we will test it using another image! Hint: Do a row by row check for the color black and counting each time it encounters a black. Image size: 300 width x 150 height Image format: BMP

Task 6 Calculate the angle between the two boxes With the given boxes, calculate the angle between the boxes. Hint: Get the coordinates of the boxes and calculate the angle using basic trigonometry. Image size: 300 width x 150 height Image format: BMP

Task 7 Adding text into an image With all the memes going about on the internet, it is important to be up to date and hip. Write an algorithm to place text on the image. User may input a string and select coordinates to place text. Hint: Overwrite the bytes of the images and replace them with predefined images of alphabets. Image size: 300 width x 190 height Image format: BMP

Task 8 Encoding the image Write an algorithm to encode and decode your image. You may encode it into a proprietary format but you must be able to decode it back. Any encoding/decoding algorithm is welcomed. Hint: Run Length Encoding is a simple form of encoding. Task 9 Edge detection Write an algorithm to detect the edges of the image. You may work on the image in color or black and white. Hint: You may use the sudden change in gradient to identify the edges. Image size: 460 width x 500 height Image format: BMP

Task 10 Scaling the image Write an algorithm to scale the image. The scale factor may be an integer of 1,2,3, ect. Bonus points will be given if scaling using a non-integer factor is successfully performed. Hint: You may double or triple the number of pixels to give the illusion of a scaled up image. Task 11 Rotating the image (Not easy!) Write an algorithm to rotate the image by an arbitrary angle defined by the user.

Good luck students!

You might also like