"Section 5.11 of Digital Image Processing Using MATLAB covers spatial transformations. I'm interested in expanding this material to a full chapter. I'd like to use this blog to explore these topics and get your feedback about them."
Now the 2nd edition of Digital Image Processing Using MATLAB is finally available! And it has a brand new chapter called Geometric Transformations and Image Registration. This chapter was my biggest contribution to the new edition.
Here are the chapter contents:
Chapter 6: Geometric Transformations and Image Registration
6.1 Transforming Points
6.2 Affine Transformations
6.3 Projective Transformations
6.4 Applying Geometric Transformations to Images
6.5 Image Coordinate Systems in MATLAB
6.5.1 Output Image Location
6.5.2 Controlling the Output Grid
6.6 Image Interpolation
6.6.1 Interpolation in Two Dimensions
6.6.2 Comparing Interpolation Methods
6.7 Image Registration
6.7.1 Registration Process
6.7.2 Manual Feature Selection and Matching Using cpselect
6.7.3 Inferring Transformation Parameters Using cp2tform
6.7.4 Visualizing Aligned Images
6.7.5 Area-Based Registration
6.7.5 Automatic Feature-Based Registration
I wrote about many of these topics here in the blog first.
I have a project to finish up to this september! I need to implement two different algorithms on matlab one using feature-based technique and another one for area-based. Do you think that this book will help me to finish my project??
Charalampos—I’ll describe the sections and let you decide. The area-based registration section illustrates how one might use normalized cross-correlation to determine a translation relationship between two images and then visualize the result. Two related examples are given with MATLAB code. The automatic feature-based registration section is just a two-paragraph, bare-bones outline of a couple of techniques with some useful references.
Steve- Could you propose me some other book that it could help me to finish my project ?? where can i find information and examples on this subject ?? I have to use only these two techniques. could you help me??
Charalampos—You might want to give this tutorial by Szeliski a try. Please note that the terms “feature-based” and “area-based” are broad categories rather than specific methods.
the imresize function uses an antiliasing filter for decimation or interpolation for e.g. bilinear method. Can i have more info about this filtering.
e.g. i have a gray image of height 27 pixels. I want to go to 30 pixels, which is the filter?
or if i want ot go to 30 from 45 pixels height.
i need to coregister two
3-D volumes (e.g two set of MRI scan) one onto the other
to have both registered in the same space
Can I do that using image processing toolbox ?
Andrea—You can do three-dimensional spatial transforms using tformarray, but the toolbox does not contain functions for inferring three-dimensional transforms.
Chaohong—imresize performs interpolation and antialiasing simultaneously by stretching the interpolation kernel. You can use imtransform for other kinds of geometric transformations.
I understand that imresize performs interpolation and antialiasing simultaneously by stretching the interpolation kernel. I know interpolation (biocubic, bilinear, or nearest neighbor- no antialiasing) very well, but I can not figure out how antialiasing stretchs the interpolation kernel in matlab. Could you illustrate this concept with an example? For example, you want to perform perspective transform of trapzoid shape object to rectangle shape using biocubic interpolation. I am very interested in “antialiasing” in the transformation. I will appreciate it if you could explain it in elaborate detail.
Chaohong—It’s not that “antialiasing stretches the interpolation kernel.” Rather, the implementation of imresize stretches the interpolation kernel in order to have an antialiasing effect. If yo want more information, the particular implementation used by imresize was inspired by the article “General Filtered Image Rescaling,” by Dale Schumacher, in Graphics Gems III, Morgan Kaufmann, 1994. Antialiasing for perspective transforms would have be implemented differently since the local scaling factors are spatially varying. I’m sorry that I don’t have time to create for you an explanation in elaborate detail.
Steve Eddins is a software development manager in the MATLAB and image processing areas at MathWorks. Steve coauthored Digital Image Processing Using MATLAB. He writes here about image processing concepts, algorithm implementations, and MATLAB.
I have a project to finish up to this september! I need to implement two different algorithms on matlab one using feature-based technique and another one for area-based. Do you think that this book will help me to finish my project??
Charalampos—I’ll describe the sections and let you decide. The area-based registration section illustrates how one might use normalized cross-correlation to determine a translation relationship between two images and then visualize the result. Two related examples are given with MATLAB code. The automatic feature-based registration section is just a two-paragraph, bare-bones outline of a couple of techniques with some useful references.
Steve- Could you propose me some other book that it could help me to finish my project ?? where can i find information and examples on this subject ?? I have to use only these two techniques. could you help me??
Charalampos—You might want to give this tutorial by Szeliski a try. Please note that the terms “feature-based” and “area-based” are broad categories rather than specific methods.
Steve – Could you tell two or three methods on each category that could help me a lot to continue searching information.
Charalampos—The tutorial I linked to has a lot of good information about the various methods.
the imresize function uses an antiliasing filter for decimation or interpolation for e.g. bilinear method. Can i have more info about this filtering.
e.g. i have a gray image of height 27 pixels. I want to go to 30 pixels, which is the filter?
or if i want ot go to 30 from 45 pixels height.
Thanks,
Vassilis
Vassilis—No antialiasing is applied when you enlarge an image. It is not necessary.
i need to coregister two
3-D volumes (e.g two set of MRI scan) one onto the other
to have both registered in the same space
Can I do that using image processing toolbox ?
thanks
Andrea
Andrea—You can do three-dimensional spatial transforms using tformarray, but the toolbox does not contain functions for inferring three-dimensional transforms.
Hi, Steve,
I wonder how antialiasing function is implemented in imresize, or geometric transformation such as perspective projection.
Thanks!
Chaohong
Chaohong—imresize performs interpolation and antialiasing simultaneously by stretching the interpolation kernel. You can use imtransform for other kinds of geometric transformations.
Hi, Steve
I understand that imresize performs interpolation and antialiasing simultaneously by stretching the interpolation kernel. I know interpolation (biocubic, bilinear, or nearest neighbor- no antialiasing) very well, but I can not figure out how antialiasing stretchs the interpolation kernel in matlab. Could you illustrate this concept with an example? For example, you want to perform perspective transform of trapzoid shape object to rectangle shape using biocubic interpolation. I am very interested in “antialiasing” in the transformation. I will appreciate it if you could explain it in elaborate detail.
Thanks!
Chaohong
Chaohong—It’s not that “antialiasing stretches the interpolation kernel.” Rather, the implementation of imresize stretches the interpolation kernel in order to have an antialiasing effect. If yo want more information, the particular implementation used by imresize was inspired by the article “General Filtered Image Rescaling,” by Dale Schumacher, in Graphics Gems III, Morgan Kaufmann, 1994. Antialiasing for perspective transforms would have be implemented differently since the local scaling factors are spatially varying. I’m sorry that I don’t have time to create for you an explanation in elaborate detail.
Hi, Steve
Thank you very much for your immediate reply.
Can you give me one paper for implementations of Antialiasing for perspective transforms?
Thanks!
Chaohong
Chaohong—I do not know of such a paper.