Files
Aurora/src/Function2D.h

136 lines
4.2 KiB
C
Raw Normal View History

#ifndef AURORA_FUNCTION2D_H
#define AURORA_FUNCTION2D_H
2023-04-20 15:34:38 +08:00
#include "Matrix.h"
#include "Function1D.h"
2023-04-20 15:34:38 +08:00
namespace Aurora {
2023-04-23 16:02:08 +08:00
enum FunctionDirection{
Column,
Row,
All
};
2023-04-20 17:35:03 +08:00
double immse(const Matrix& aImageA, const Matrix& aImageB);
Matrix inv(const Matrix& aMatrix);
Matrix inv(Matrix&& aMatrix);
2023-04-20 15:34:38 +08:00
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);
2023-04-23 09:30:47 +08:00
Matrix std(const Matrix& aMatrix);
2023-04-23 16:02:08 +08:00
/**
* ,
* @param aMatrix
2023-04-23 16:02:08 +08:00
* @param direction Column, Row, All
* @return
*/
Matrix min(const Matrix& aMatrix,FunctionDirection direction = Column);
2023-04-24 16:02:15 +08:00
Matrix min(const Matrix& aMatrix,FunctionDirection direction, long& rowIdx, long& colIdx);
2023-04-23 16:02:08 +08:00
/**
* ,
* @param aMatrix
2023-04-23 16:02:08 +08:00
* @param direction Column, Row, All
* @return
2023-04-23 16:02:08 +08:00
*/
Matrix max(const Matrix& aMatrix,FunctionDirection direction = Column);
2023-04-23 17:32:04 +08:00
2023-04-24 16:02:15 +08:00
Matrix max(const Matrix& aMatrix,FunctionDirection direction , long& rowIdx, long& colIdx);
2023-04-23 16:02:08 +08:00
/**
*
* @attention A为[MxN],B应为标量或[1xN]
* @param aMatrix 1
* @param aOther 2
* @return
2023-04-23 16:02:08 +08:00
*/
Matrix min(const Matrix& aMatrix,const Matrix& aOther);
2023-04-23 17:32:04 +08:00
/**
2023-04-25 17:28:33 +08:00
* ,
* @param aMatrix
2023-04-23 17:32:04 +08:00
* @param direction Column, Row, All
* @return
2023-04-23 17:32:04 +08:00
*/
Matrix sum(const Matrix& aMatrix,FunctionDirection direction = Column);
2023-04-24 15:24:23 +08:00
/**
* ,
* @param aMatrix
2023-04-24 15:24:23 +08:00
* @param direction Column, Row, All
* @param aIncludeNan nan
* @return
2023-04-24 15:24:23 +08:00
*/
Matrix mean(const Matrix& aMatrix,FunctionDirection direction = Column, bool aIncludeNan = true);
/**
* ,
* @param aMatrix
* @return
*/
Matrix sort(const Matrix& aMatrix);
/**
* ,
* @param aMatrix
* @return
*/
Matrix sort(Matrix&& aMatrix);
/**
* ,
* @param aMatrix
* @return
*/
Matrix sortrows(const Matrix& aMatrix);
/**
* ,
* @param aMatrix
* @return
*/
Matrix sortrows(Matrix&& aMatrix);
/**
* ,
* @param aMatrix
* @return
*/
Matrix median(const Matrix& aMatrix);
/**
* FFT,2
* @param aMatrix
* @return fft后的复数矩阵
*/
Matrix fft(const Matrix& aMatrix);
/**
* fft2
* @attention 使real去除虚部
* @param aMatrix
* @return ifft后的复数矩阵
*/
Matrix ifft(const Matrix& aMatrix);
/**
* hilbert2
* @param aMatrix
* @return
*/
Matrix hilbert(const Matrix& aMatrix);
2023-04-25 17:28:33 +08:00
/**
* prod2
* @param aMatrix
* @return
*/
Matrix prod(const Matrix& aMatrix);
Matrix dot(const Matrix& aMatrix,const Matrix& aOther,FunctionDirection direction = Column);
};
#endif //AURORA_FUNCTION2D_H