First Programming Sessions

As stated in the main page, this tutorial is with the help of the PinkDev library.

You can download the images, both the original image and the resulting image, by following the link. You can extract the images doing tar zxvf blobs.tar.gz.

Here are the questions.

1 - Image difference

As a first very basic exercise, write an operator 'diffimage' that takes as input two images and returns a third image that is the absolute difference between the first two images. The command line for this operator is something like

diffimage image1 image2 imageresult

How can you test it? Once you have done this operator, you can use it that the result of the following questions are indeed correct.

2 -Thresholding

Write an operator threshold that makes a combined threshold. The input for the program are an image and two integers which are the low and the high threshold.

An example is the following

thresold blobs.pgm 10 40 blobsThreshold.pgm

3 - Histogram normalization

Write an operator normalize that normalizes the image histogram. The inputs of this operator are an image, and two integers, one for the desired low level value and the other for the high level value. You can test your operator on the image blobs.pgm, with 0 and 255, you should obtain blobsNormalize.pgm

4 - Histogram Equalization

Write an operator equalize that makes an hitogram equalization of the input image. On the blobs.pgm image, you should obtain the blobsEqualize.pgm image. How do you interpret the results?

5 - Other operators

Implement gamma corrections, log transform, power law, etc.

6 - Weighted averaging

Implement weighted averaging. Thanks to that operator, you can compute a Laplacian. Do some image enhancement filters.