How can I perform a fast image transformation using a lookup table?

10 views (last 30 days)
I have defined my own image transform using a lookup table. The LUT is the same size as the destination image. Each value in the LUT is a coordinate in the source image. Currently I use 'for' loops to loop over the destination pixels to lookup the source pixel. Is there a fast way of doing this? Preferably a method that can also interpolate (bilinear, etc). I have the image processing toolbox. Tformarray seems like it may help, but how can I create a tformarray from my LUT?

Answers (1)

Peter Bone
Peter Bone on 16 Jan 2014
I've worked this out myself now. For each value in the LUT I now store the single index into the source image as a single value. To create the destination image from the LUT I just do B = A(LUT);
That works quickly but only does nearest neighbour interpolation. Is there a fast method that can do bilear / bicubic?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!