You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
976 B
54 lines
976 B
|
7 months ago
|
#pragma once
|
||
|
|
|
||
|
|
#include <Eigen/Dense>
|
||
|
|
|
||
|
|
namespace byte_track
|
||
|
|
{
|
||
|
|
template<typename T>
|
||
|
|
using Tlwh = Eigen::Matrix<T, 1, 4, Eigen::RowMajor>;
|
||
|
|
|
||
|
|
template<typename T>
|
||
|
|
using Tlbr = Eigen::Matrix<T, 1, 4, Eigen::RowMajor>;
|
||
|
|
|
||
|
|
template<typename T>
|
||
|
|
using Xyah = Eigen::Matrix<T, 1, 4, Eigen::RowMajor>;
|
||
|
|
|
||
|
|
template<typename T>
|
||
|
|
class Rect
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
Tlwh<T> tlwh;
|
||
|
|
|
||
|
|
Rect() = default;
|
||
|
|
Rect(const T &x, const T &y, const T &width, const T &height);
|
||
|
|
|
||
|
|
~Rect();
|
||
|
|
|
||
|
|
const T &x() const;
|
||
|
|
const T &y() const;
|
||
|
|
const T &width() const;
|
||
|
|
const T &height() const;
|
||
|
|
|
||
|
|
T &x();
|
||
|
|
T &y();
|
||
|
|
T &width();
|
||
|
|
T &height();
|
||
|
|
|
||
|
|
const T &tl_x() const;
|
||
|
|
const T &tl_y() const;
|
||
|
|
T br_x() const;
|
||
|
|
T br_y() const;
|
||
|
|
|
||
|
|
Tlbr<T> getTlbr() const;
|
||
|
|
Xyah<T> getXyah() const;
|
||
|
|
|
||
|
|
float calcIoU(const Rect<T>& other) const;
|
||
|
|
};
|
||
|
|
|
||
|
|
template<typename T>
|
||
|
|
Rect<T> generate_rect_by_tlbr(const Tlbr<T>& tlbr);
|
||
|
|
|
||
|
|
template<typename T>
|
||
|
|
Rect<T> generate_rect_by_xyah(const Xyah<T>& xyah);
|
||
|
|
|
||
|
|
}
|