Files
Aurora/src/Function2D.h

78 lines
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef AURORA_FUNCTION2D_H
#define AURORA_FUNCTION2D_H
#include "Matrix.h"
#include "Function1D.h"
namespace Aurora {
enum FunctionDirection{
Column,
Row,
All
};
double immse(const Matrix& aImageA, const Matrix& aImageB);
Matrix inv(const Matrix& aMatrix);
Matrix inv(Matrix&& aMatrix);
Matrix interp2(const Matrix& aX, const Matrix& aY, const Matrix& aV, const Matrix& aX1, const Matrix& aY1, InterpnMethod aMethod);
Matrix interpn(const Matrix& aX, const Matrix& aY, const Matrix& aV, const Matrix& aX1, const Matrix& aY1, InterpnMethod aMethod);
Matrix std(const Matrix& aMatrix);
/**
* 求矩阵最小值,可按行、列、单元, 目前不支持三维,不支持复数
* @param aMatrix 矩阵
* @param direction 方向Column, Row, All
* @return
*/
Matrix min(const Matrix& aMatrix,FunctionDirection direction = Column);
Matrix min(const Matrix& aMatrix,FunctionDirection direction, long& rowIdx, long& colIdx);
/**
* 求矩阵最小值,可按行、列、单元, 目前不支持三维,不支持复数
* @param aMatrix 矩阵
* @param direction 方向Column, Row, All
* @return
*/
Matrix max(const Matrix& aMatrix,FunctionDirection direction = Column);
Matrix max(const Matrix& aMatrix,FunctionDirection direction , long& rowIdx, long& colIdx);
/**
* 比较两个矩阵,求对应位置的最小值,不支持三维
* @attention 矩阵形状不一样时如A为[MxN],则B应为标量或[1xN]的行向量
* @param aMatrix
* @param aOther
* @return
*/
Matrix min(const Matrix& aMatrix,const Matrix& aOther);
/**
* 求矩阵和,可按行、列、单元, 目前不支持三维,不支持复数
* @param aMatrix 矩阵
* @param direction 方向Column, Row, All
* @return
*/
Matrix sum(const Matrix& aMatrix,FunctionDirection direction = Column);
/**
* 求矩阵平均值,可按行、列、单元, 目前不支持三维,不支持复数
* @param aMatrix 矩阵
* @param direction 方向Column, Row, All
* @param aIncludeNan 是否包含nan
* @return
*/
Matrix mean(const Matrix& aMatrix,FunctionDirection direction = Column, bool aIncludeNan = true);
Matrix sort(const Matrix& aMatrix);
Matrix sort(Matrix&& aMatrix);
Matrix sortrows(const Matrix& aMatrix);
Matrix sortrows(Matrix&& aMatrix);
Matrix median(const Matrix& aMatrix);
};
#endif //AURORA_FUNCTION2D_H