## Projective

**Summary**

This class contains the functions necessary to project an image.
If you have a specific desired output cellwidth/height, call
Specify_CellSize first When you call Derive_Coefficients, send the
projected coordinates, and the function will set up an output
image. The Project_Point_Backward works in pixel coordinates, not
in projected coordinates.

**Methods**

Autosize_Cells |
This function will calculate a "scale" factor that should be the output pixel size. If none is specified, this function is called internally. This should prevent data loss, but may have more data than needed. |

Derive_Coefficients |
| pt1 - pt4 // X' = (aX + bY + c) / (gX + hY + 1) // Y' = (dX + eY + f) / (gX + hY + 1) |

Project_Point_Backward |
Takes output coordinates and determines what input coordinates to use. This assumes that you have already solved for the coefficients by |

ProjectImage |
Reprojects an image using the currently defined projective transform. Be sure to call Derive_Coefficients first. This loops through point by point so won't be very fast. |

Specify_CellSize |
If this function is called the output image will be sized so that the pixels represent these dimensions. If this function is not specified, a cellwidth will be chosen to be as small as possible while retaining data. This is done by ensuring that no edge will contain fewer pixels than the edge in the source image. |