mirror of
https://github.com/jackyzha0/quartz.git
synced 2026-03-24 23:15:46 -05:00
72 lines
1.9 KiB
Markdown
72 lines
1.9 KiB
Markdown
---
|
||
title: "06-homographies"
|
||
tags:
|
||
- lecture
|
||
- cosc342
|
||
---
|
||
|
||
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!
|
||
|
||
[|300](https://i.imgur.com/BEjOoFL.png)
|
||
|
||
> [!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);
|
||
|