BIO EN/CS 6640 Introduction to Image Processing - Assignment 1
Zach Gildersleeve
January 26, 2007
Single Point of Deformation
script used: singlePointDistort.m
image used: photo1-2.png
Using a gaussian function as a radial basis function is one means to smoothly deform and warp images. By selecting a starting point and a landmark point, where the landmark point is the expected translation of the starting point, it is possible to transform the underlying image. The implemented gaussian function depends on both a alpha value, the distance between the starting point and the landmark point, and a sigma value, which influences the visual spread of the deformation. A low value of sigma (0 < s < 0.3) is selective enough to "tear away" the transformed point, while a high value of sigma (s > 1.0) tends to act more like a global image translation.
The below images illustrate the effects of a changing value of sigma. The red line and markers indicate the starting point and landmark point used in the deformation.
Original Image |
sigma = 0.25 - notice tearing |
sigma = 0.5 - expected results |
sigma = 0.75 - wider range of influence |
sigma = 5.0 - essentially a translation |
Multiple Points of Deformation
script used: multiplePointDistort.m
image used: photo1-2.png
It is possible to extend the above implementation of a gaussian based radial basis function deformation to incorporate multiple points. The resulting transforms are summed before they are then applied to the image. Ideally, each starting point will be transformed to each respective landmark point, but in practice the accuracy of the deformation depends on the sigma value used. A much narrower range of sigma returns accurate results, and this range varies according to the location of each of the landmark points. The below images illustrate this for three point pairs. The script itself allows any number of pairs, with the user hitting the return key to apply the transformation.
sigma = 0.25 - higher accuracy, but tearing artifacts exist |
sigma = 0.5 - smoother deformation with some loss of accuracy |
sigma = 0.75 - wider range of influence with decreased accuracy |
sigma = 5.0 - essentially an average translation |
Different Interpolation Methods
Using the single point deformation script, it is possible to examine the influence of different interpolation methods. All the above image use the default linear interpolation. Much of the differences between methods are not visible at full resolution, so the below images are zoomed to 200% the original image. All images shown have a sigma value of 0.5. Linear returns a much smoother result than nearest neighbor, but at the expense of a more blurred image that reduces fine detail like the grain of the metal cap. The results from the cubic method provide a negligible increase in quality over linear interpolation for this example. Spline interpolation does provide subjectively more crisp images than linear, but is much slower.
nearest neighbor interpolation |
linear interpolation |
cubic interpolation |
spline interpolation |