|
void | writeCorners (std::ostream &out, const std::vector< std::vector< std::array< float, 2 > > > &corners) |
| 导出角点数据
|
|
void | readCorners (std::istream &in, std::vector< std::vector< std::array< float, 2 > > > &corners) |
| 导入角点数据
|
|
template<typename Tp > |
constexpr Tp | operator+ (Tp val, const cv::Matx< Tp, 1, 1 > &mat) |
|
template<typename Tp > |
constexpr cv::Matx< Tp, 1, 1 > | operator+ (const cv::Matx< Tp, 1, 1 > &mat, Tp val) |
|
template<typename Tp > |
constexpr Tp | operator- (Tp val, const cv::Matx< Tp, 1, 1 > &mat) |
|
template<typename Tp > |
constexpr cv::Matx< Tp, 1, 1 > | operator- (const cv::Matx< Tp, 1, 1 > &mat, Tp val) |
|
template<typename Tp > |
constexpr Tp | deg2rad (Tp deg) |
| 角度转换为弧度
|
|
template<typename Tp > |
constexpr Tp | rad2deg (Tp rad) |
| 弧度转换为角度
|
|
template<typename Tp > |
constexpr cv::Matx< Tp, 3, 1 > | point2matx (cv::Point3_< Tp > point) |
| Point 类型转换为 Matx 类型
|
|
template<typename Tp > |
constexpr cv::Point3_< Tp > | matx2point (cv::Matx< Tp, 3, 1 > matx) |
| Matx 类型转换为 Point 类型
|
|
template<typename Tp > |
constexpr cv::Vec< Tp, 3 > | matx2vec (cv::Matx< Tp, 3, 1 > matx) |
| Matx 类型转换为 Vec 类型
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Point_< Tp1 > &pt_1, const cv::Point_< Tp2 > &pt_2) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Vec< Tp1, 2 > &vec_1, const cv::Vec< Tp2, 2 > &vec_2) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Point3_< Tp1 > &pt_1, const cv::Point3_< Tp2 > &pt_2, CalPlane calplane=CalPlane::xyz) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Vec< Tp1, 3 > &vec_1, const cv::Vec< Tp2, 3 > &vec_2, CalPlane calplane=CalPlane::xyz) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Vec< Tp1, 4 > &line, const cv::Point_< Tp2 > &pt, bool direc=true) |
| 点到直线距离,其中 \(P=(x_0,y_0)\) 到直线 \(l:Ax+By+C=0\) 距离公式为
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getHAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD) |
| 获取与水平方向的夹角,以平面直角坐标系 \(x\) 轴为分界线, 逆时针 为正方向,范围: \((-180°,180°]\) ,默认返回弧度制
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getVAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD) |
| 获取与垂直方向的夹角,以平面直角坐标系 \(y\) 轴为分界线, 顺时针 为正方向,范围: \((-180°,180°]\) ,默认返回弧度制
|
|
template<typename Tp > |
constexpr Tp | getDeltaAngle (Tp angle_1, Tp angle_2) |
| 求两个角之间的夹角
|
|
template<typename Tp > |
constexpr Tp | sec (Tp x) |
| 正割 \(\sec(x)\)
|
|
template<typename Tp > |
constexpr Tp | csc (Tp x) |
| 余割 \(\csc(x)\)
|
|
template<typename Tp > |
constexpr Tp | cot (Tp x) |
| 余切 \(\cot(x)\)
|
|
template<typename Tp > |
constexpr Tp | sgn (Tp x) |
| 符号函数
|
|
template<typename Tp > |
constexpr Tp | sigmoid (Tp x, Tp k=1, Tp Kp=1, Tp mu=0) |
| 计算 sigmoid(x) 在某一点的函数值
|
|
template<typename Tp > |
constexpr Tp | cross2D (const cv::Vec< Tp, 2 > &a, const cv::Vec< Tp, 2 > &b) |
| 平面向量外积
|
|
template<typename Tp > |
constexpr Tp | cross2D (const cv::Point_< Tp > &a, const cv::Point_< Tp > &b) |
| 平面向量外积
|
|
template<typename ForwardIterator > |
ForwardIterator::value_type | calculateModeNum (ForwardIterator first, ForwardIterator last) |
| 在指定范围内寻找众数,时间复杂度 O(N)
|
|
template<typename T > |
std::vector< T > | operator+ (const std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量加法
|
|
template<typename T > |
std::vector< T > | operator- (const std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量减法
|
|
template<typename T > |
std::vector< T > & | operator+= (std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量自加
|
|
template<typename T > |
std::vector< T > & | operator-= (std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量自减
|
|
template<typename T > |
std::vector< T > | operator- (const std::vector< T > &vec) |
| 使用 std::vector 表示的向量取反
|
|
template<typename T > |
std::vector< T > | operator* (const std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量乘法(数乘)
|
|
template<typename T > |
std::vector< T > | operator* (T val, const std::vector< T > &vec) |
| 使用 std::vector 表示的向量乘法(数乘)
|
|
template<typename T > |
std::vector< T > & | operator*= (std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量乘法(数乘)
|
|
template<typename T > |
std::vector< T > | operator/ (const std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量除法(数乘)
|
|
template<typename T > |
std::vector< T > & | operator/= (std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量除法(数乘)
|
|
double | derivative (Func1d func, double x, DiffMode mode=DiffMode::Central, double dx=1e-3) |
| 计算一元函数的导数
|
|
std::vector< double > | grad (FuncNd func, const std::vector< double > &x, DiffMode mode=DiffMode::Central, double dx=1e-3) |
| 计算多元函数的梯度
|
|
std::pair< double, double > | region (Func1d func, double x0, double delta=1) |
| 采用进退法确定搜索区间
|
|
std::pair< double, double > | fminbnd (Func1d func, double x1, double x2, const OptimalOptions &options={}) |
| 一维函数最小值搜索
|
|
std::pair< std::vector< double >, double > | fminunc (FuncNd func, const std::vector< double > &x0, const OptimalOptions &options={}) |
| 无约束多维函数的最小值搜索 [4] [8] ,可参考 多维无约束最优化方法
|
|
std::pair< std::vector< double >, double > | fmincon (FuncNd func, const std::vector< double > &x0, const FuncNds &c, const FuncNds &ceq, const OptimalOptions &options={}) |
| 有约束多维函数的最小值搜索
|
|
std::vector< double > | lsqnonlin (const FuncNds &funcs, const std::vector< double > &x0, const OptimalOptions &options={}) |
| 无约束非线性最小二乘求解
|
|
cv::Mat | binary (cv::Mat src, PixChannel ch1, PixChannel ch2, uint8_t threshold) |
| 通道相减二值化
|
|
cv::Mat | binary (cv::Mat src, uint8_t threshold) |
| 亮度阈值二值化
|
|
cv::Point2f | calculateRelativeAngle (const cv::Matx33f &cameraMatrix, cv::Point2f center) |
| 计算相机中心与目标中心之间的相对角度
|
|
cv::Point2f | calculateRelativeCenter (const cv::Matx33f &cameraMatrix, cv::Point2f angle) |
| 计算目标中心在像素坐标系下的坐标
|
|
cv::Vec2f | cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Vec3f ¢er3d) |
| 计算 3D 目标点在像素坐标系下的坐标
|
|
cv::Point2f | cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Point3f ¢er3d) |
| 计算 3D 目标点在像素坐标系下的坐标
|
|
template<typename Tp > |
cv::Matx< Tp, 3, 3 > | euler2Mat (Tp val, EulerAxis axis) |
| 欧拉角转换为旋转矩阵
|
|
std::string | format (const char *fmt,...) |
| 返回使用类 printf 表达式格式化的文本字符串。
|
|
void | breakOnError () |
| 触发非法内存操作
|
|
void | throwError (const Exception &exc) |
| 抛出异常
|
|
void | error (int _code, std::string_view _err, const char *_func, const char *_file, int _line) |
| 发出错误信号并引发异常
|
|
const char * | getBuildInformation () |
| 返回完整的配置输出
|
|
const char * | getVersionString () |
| 返回库版本字符串
|
|
int | getVersionMajor () |
| 返回主要库版本
|
|
int | getVersionMinor () |
| 返回次要库版本
|
|
int | getVersionPatch () |
| 返回库版本的修订字段
|
|
constexpr NodeId | nodeBoolean (0, UA_NS0ID_BOOLEAN) |
| 数据类型节点:Boolean 节点 ID
|
|
constexpr NodeId | nodeSbyte (0, UA_NS0ID_SBYTE) |
| 数据类型节点:Sbyte 节点 ID
|
|
constexpr NodeId | nodeByte (0, UA_NS0ID_BYTE) |
| 数据类型节点:Byte 节点 ID
|
|
constexpr NodeId | nodeInt16 (0, UA_NS0ID_INT16) |
| 数据类型节点:Int16 节点 ID
|
|
constexpr NodeId | nodeUint16 (0, UA_NS0ID_UINT16) |
| 数据类型节点:Uint16 节点 ID
|
|
constexpr NodeId | nodeInt32 (0, UA_NS0ID_INT32) |
| 数据类型节点:Int32 节点 ID
|
|
constexpr NodeId | nodeUint32 (0, UA_NS0ID_UINT32) |
| 数据类型节点:Uint32 节点 ID
|
|
constexpr NodeId | nodeInt64 (0, UA_NS0ID_INT64) |
| 数据类型节点:Int64 节点 ID
|
|
constexpr NodeId | nodeUint64 (0, UA_NS0ID_UINT64) |
| 数据类型节点:Uint64 节点 ID
|
|
constexpr NodeId | nodeFloat (0, UA_NS0ID_FLOAT) |
| 数据类型节点:Float 节点 ID
|
|
constexpr NodeId | nodeDouble (0, UA_NS0ID_DOUBLE) |
| 数据类型节点:Double 节点 ID
|
|
constexpr NodeId | nodeString (0, UA_NS0ID_STRING) |
| 数据类型节点:String 节点 ID
|
|
constexpr NodeId | nodeDatetime (0, UA_NS0ID_DATETIME) |
| 数据类型节点:Datetime 节点 ID
|
|
constexpr NodeId | nodeObjectsFolder (0, UA_NS0ID_OBJECTSFOLDER) |
| 对象节点:ObjectsFolder 节点 ID
|
|
constexpr NodeId | nodeTypesFolder (0, UA_NS0ID_TYPESFOLDER) |
| 对象节点:TypesFolder 节点 ID
|
|
constexpr NodeId | nodeViewsFolder (0, UA_NS0ID_VIEWSFOLDER) |
| 对象节点:ViewsFolder 节点 ID
|
|
constexpr NodeId | nodeObjectTypesFolder (0, UA_NS0ID_OBJECTTYPESFOLDER) |
| 对象节点:ObjectTypesFolder 节点 ID
|
|
constexpr NodeId | nodeVariableTypesFolder (0, UA_NS0ID_VARIABLETYPESFOLDER) |
| 对象节点:VariableTypesFolder 节点 ID
|
|
constexpr NodeId | nodeServer (0, UA_NS0ID_SERVER) |
| 对象节点:Server 节点 ID
|
|
constexpr NodeId | nodeFolderType (0, UA_NS0ID_FOLDERTYPE) |
| 对象类型节点:FolderType 节点 ID
|
|
constexpr NodeId | nodeBaseObjectType (0, UA_NS0ID_BASEOBJECTTYPE) |
| 对象类型节点:BaseObjectType 节点 ID
|
|
constexpr NodeId | nodeBaseEventType (0, UA_NS0ID_BASEEVENTTYPE) |
| 对象类型节点:BaseEventType 节点 ID
|
|
constexpr NodeId | nodeBaseDataVariableType (0, UA_NS0ID_BASEDATAVARIABLETYPE) |
| 变量类型节点:BaseDataVariableType 节点 ID
|
|
constexpr NodeId | nodePropertyType (0, UA_NS0ID_PROPERTYTYPE) |
| 变量类型节点:PropertyType 节点 ID
|
|
constexpr NodeId | nodeOrganizes (0, UA_NS0ID_ORGANIZES) |
| 引用类型节点:Organizes 节点 ID
|
|
constexpr NodeId | nodeHasTypeDefinition (0, UA_NS0ID_HASTYPEDEFINITION) |
| 引用类型节点:HasTypeDefinition 节点 ID
|
|
constexpr NodeId | nodeHasComponent (0, UA_NS0ID_HASCOMPONENT) |
| 引用类型节点:HasComponent 节点 ID
|
|
constexpr NodeId | nodeHasProperty (0, UA_NS0ID_HASPROPERTY) |
| 引用类型节点:HasProperty 节点 ID
|
|
constexpr NodeId | nodeHasSubtype (0, UA_NS0ID_HASSUBTYPE) |
| 引用类型节点:HasSubtype 节点 ID
|
|
constexpr NodeId | nodeHasModellingRule (0, UA_NS0ID_HASMODELLINGRULE) |
| 引用类型节点:HasModellingRule 节点 ID
|
|
NodeId | operator| (NodeId origin, rm::FindNodeInServer &&fnis) |
| 服务端路径搜索
|
|
NodeId | operator| (NodeId origin, rm::FindNodeInClient &&fnic) |
| 客户端路径搜索
|
|
bool | operator== (const RMStatus &lhs, const RMStatus &rhs) |
| 判断两个 RMStatus 是否相等
|
|