1.9 KiB
| title | tags | ||
|---|---|---|---|
| 06-homographies |
|
Homographies and mosaics
- A homography* is:
- A linear map between two planes (or views of a plane)
- A 3 x 3 matrix, up to a scale
- Two images of a scene are related by a homography
- If the scene is planar, or
- If the camera only rotates

Homographies for planar scenes
- Take a line in one view
- This projects to a plane
- That intersects the scene (another plane) at a line
- That projects to a line in the other image
- So lines are preserved

[!INFO] can create a "straight" view of a picture!
[!INFO] homography: maps points from one image to another
[!INFO] rephotography, mathing old photographs onto the current view of the user
homography for rotating camera

[!INFO] K matric describe parameters of camera. R matric describes rotation of camera. T is zero because the camera is only rotating. H is the homograhy matrix
not homographies
- If we have both:
- Non-planar scene, and
- Translating camera
- There is no homography between the images
- Lines may not be preserved
- Cannot make a mosaic
- But we can do stereo
making mosiac
- To make a mosaic image:
- Need to warp images to align
- This warping is a homography
- How to find the homography?
- If a feature at in one image matches to in the other, then
HOMOGRAPHY ESTIMATION IN OPENCV
-
https://docs.opencv.org/4.4.0/d9/d0c/group__calib3d.html#ga4abc2ece9fab9398f2e560d53c8c9780
-
pts1 – Points in first image (std::vector)
-
pts2 – Points in second image (std::vector)
-
cv::RANSAC - method to use (we’ll just use RANSAC)
-
3.0 – RANSAC threshold
cv::Mat H = cv::findHomography(pts1, pts2, cv::RANSAC, 3.0);

