Image transformation where a curve becomes a straight line
I would recommend a grid transform. Each point of the grid has a $(dx,dy)$ offset, and a point in the middle of a square is interpolated according to the control points. Specifically in your case, you can keep most of the points in place, except those which are near the curve you want to straighten.