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

7 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?

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!