mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-12 14:59:44 +03:00
libcamera: geometry: Add Rectangle::transformedBetween()
Handling cropping and scaling within a complicated pipeline involves transformations of rectangles between different coordinate systems. For example the full input of the dewarper (0,0)/1920x1080 might correspond to the rectangle (0, 243)/2592x1458 in sensor coordinates (of a 2592x1944 sensor). Add a function that allows the transformation of a rectangle defined in one reference frame (dewarper) into the coordinates of a second reference frame (sensor). Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
This commit is contained in:
parent
db9b6f8e23
commit
ec097d63ef
3 changed files with 63 additions and 0 deletions
|
@ -495,6 +495,17 @@ protected:
|
|||
return TestFail;
|
||||
}
|
||||
|
||||
Rectangle f1 = Rectangle(100, 200, 3000, 2000);
|
||||
Rectangle f2 = Rectangle(200, 300, 1500, 1000);
|
||||
/* Bottom right quarter of the corresponding frames. */
|
||||
Rectangle r1 = Rectangle(100 + 1500, 200 + 1000, 1500, 1000);
|
||||
Rectangle r2 = Rectangle(200 + 750, 300 + 500, 750, 500);
|
||||
if (r1.transformedBetween(f1, f2) != r2 ||
|
||||
r2.transformedBetween(f2, f1) != r1) {
|
||||
cout << "Rectangle::transformedBetween() test failed" << endl;
|
||||
return TestFail;
|
||||
}
|
||||
|
||||
return TestPass;
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue