From ae9f73130f4c1c2e71e67122a7693bf9cc2f7ed7 Mon Sep 17 00:00:00 2001 From: Nolan Brown Date: Tue, 29 Apr 2025 15:06:59 -0700 Subject: [PATCH] [photon-lib] Fix incorrect tag visualization transforms (#1899) ## Description Fixes #1239 Tag image corners used in `VideoSimUtil` did not match the expected corner order returned by the detection pipeline of [BL, BR, TR, TL], causing the tag image to appear flipped. ## Meta Merge checklist: - [x] Pull Request title is [short, imperative summary](https://cbea.ms/git-commit/) of proposed changes - [x] The description documents the _what_ and _why_ - [x] If this PR changes behavior or adds a feature, user documentation is updated - [ ] If this PR addresses a bug, a regression test for it is added --- .../java/org/photonvision/simulation/VideoSimUtil.java | 8 +++++--- .../main/native/include/photon/simulation/VideoSimUtil.h | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/photon-lib/src/main/java/org/photonvision/simulation/VideoSimUtil.java b/photon-lib/src/main/java/org/photonvision/simulation/VideoSimUtil.java index 89face676..038d1f89e 100644 --- a/photon-lib/src/main/java/org/photonvision/simulation/VideoSimUtil.java +++ b/photon-lib/src/main/java/org/photonvision/simulation/VideoSimUtil.java @@ -84,14 +84,16 @@ public class VideoSimUtil { * through a Mat, the point (0,0) actually represents the center of the top-left pixel and not the * actual top-left corner. * + *

Order of corners returned is: [BL, BR, TR, TL] + * * @param size Size of image */ public static Point[] getImageCorners(Size size) { return new Point[] { - new Point(-0.5, -0.5), - new Point(size.width - 0.5, -0.5), + new Point(-0.5, size.height - 0.5), new Point(size.width - 0.5, size.height - 0.5), - new Point(-0.5, size.height - 0.5) + new Point(size.width - 0.5, -0.5), + new Point(-0.5, -0.5) }; } diff --git a/photon-lib/src/main/native/include/photon/simulation/VideoSimUtil.h b/photon-lib/src/main/native/include/photon/simulation/VideoSimUtil.h index 9f86e1ca7..618f36e1b 100644 --- a/photon-lib/src/main/native/include/photon/simulation/VideoSimUtil.h +++ b/photon-lib/src/main/native/include/photon/simulation/VideoSimUtil.h @@ -76,10 +76,10 @@ static std::unordered_map LoadAprilTagImages() { static std::vector GetImageCorners(const cv::Size& size) { std::vector retVal{}; - retVal.emplace_back(cv::Point2f{-0.5f, -0.5f}); - retVal.emplace_back(cv::Point2f{size.width - 0.5f, -0.5f}); - retVal.emplace_back(cv::Point2f{size.width - 0.5f, size.height - 0.5f}); retVal.emplace_back(cv::Point2f{-0.5f, size.height - 0.5f}); + retVal.emplace_back(cv::Point2f{size.width - 0.5f, size.height - 0.5f}); + retVal.emplace_back(cv::Point2f{size.width - 0.5f, -0.5f}); + retVal.emplace_back(cv::Point2f{-0.5f, -0.5f}); return retVal; }