Qitao Zhao (qitaoz), Fall 2024
Input image | Annotated parallel lines on input image | Affine-rectified image |
---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Test lines on input image | Test lines on affine-rectified image | Metrics |
---|---|---|
![]() | ![]() | Before: [1.0000, 0.9600] After: [1.0000, 0.9953] |
![]() | ![]() | Before: [0.9878, 0.9846] After: [0.9998, 1.0000] |
![]() | ![]() | Before: [0.8964, 0.9575] After: [1.0000, 1.0000] |
![]() | ![]() | Before: [0.9905, 0.9977] After: [0.9999, 0.9998] |
![]() | ![]() | Before: [0.8312, 1.0000] After: [1.0000, 1.0000] |
We performed affine rectification by annotating two pairs of parallel lines and calculating the line equation at infinity. We found the homography that recovers this particular line, which is given by:
Input image | Annotated perpendicular lines on input image | Annotated perpendicular lines on affine-rectified image | Rectified image |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
Test lines on input image | Test lines on metric-rectified image | Metrics |
---|---|---|
![]() | ![]() | Before: [-0.1187, 0.1602] After: [-0.0000, 0.0000] |
![]() | ![]() | Before: [0.6686, -0.0448] After: [-0.0000, -0.0000] |
![]() | ![]() | Before: [-0.2527, 0.0882] After: [-0.0000, 0.0000] |
First, we apply an affine transformation to the image using a predefined homography matrix
We then Identify at least two pairs of perpendicular lines in the affine rectified image. Use these line pairs to compute the constraints required for metric rectification. The lines' equations
Form the constraint system for the dual conic (which represents the circular points), solving for
Solve for
Compute the Singular Value Decomposition (SVD) of
We apply the final homography
Normal image | Perspective image | Annotated corners in perspective image | Warped and overlaid image |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
The algorithm uses four-point correspondences between the source and target images to compute the transformation. These points are visualized with solid red circles on the target image for clarity. Each pair of corresponding points provides two equations of the form: