The following table summarizes the video processing functions ported from HLS Video Library
into xfOpenCV Library along with the API modifications.
++++++++++++++++++++++++++
SubS
template<int POLICY_TYPE, int SRC_T, int ROWS, int COLS, int NPC =1>
void subS(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++
SubRS
template<int POLICY_TYPE, int SRC_T, int ROWS, int COLS, int NPC =1>
void subRS(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++
Absolute Difference
template<int SRC_T, int ROWS, int COLS, int NPC=1>
void absdiff(
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )
按像素求差,然后存入一个新图像。
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++++++++++++
addS
template<int POLICY_TYPE, int SRC_T, int ROWS, int COLS, int NPC =1>
void addS(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
逐像素加上一个标量值,统一增加offset。
支持的SRC_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++++++++++
AddWeighted
template< int SRC_T , int DST_T, int ROWS, int COLS, int NPC=1>
void addWeighted(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
float alpha,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src2,
float beta,
float gamma,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++++++++
Cmp
template<int CMP_OP, int SRC_T , int ROWS, int COLS, int NPC=1>
void compare(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src2,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
CMP_OP – a flag specifies correspondence between the pixels.
• XF_CMP_EQ : src1 is equal to src2
• XF_CMP_GT : src1 is greater than src2
• XF_CMP_GE : src1 is greater than or equal to src2
• XF_CMP_LT : src1 is less than src2
• XF_CMP_LE : src1 is less than or equal to src2
• XF_CMP_NE : src1 is unequal to src2
If the comparison result is true, then the corresponding element of dst is set to 255; else it is set
to 0.
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++++++++
CmpS
template<int CMP_OP, int SRC_T , int ROWS, int COLS, int NPC=1>
void compareS(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++++
Max
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void Max(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src2,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
逐像素取大值,存入新图像中。
src1通常为图像,src2通常为阈值掩模mask。
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++
MaxS
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void MaxS(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
逐像素取大值,存入新图像中。
src1通常为图像,src2通常为统一阈值mask。为限幅基准值。
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++
Min
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void Min(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1, xf::Mat<SRC_T, ROWS,
COLS, NPC> & _src2, xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
逐像素取小值,存入新图像中。
src1通常为图像,src2通常为阈值掩模mask。
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++
MinS
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void MinS(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
逐像素取小值,存入新图像中。
src1通常为图像,src2通常为统一阈值mask。为限幅基准值。
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++
PaintMask
template< int SRC_T,int MASK_T, int ROWS, int COLS,int NPC=1>
void paintmask(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
xf::Mat<MASK_T, ROWS, COLS, NPC> & in_mask,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst_mat,
unsigned char _color[XF_CHANNELS(SRC_T,NPC)])
逐像素叠加掩码图像mask。
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++
Reduce
template< int REDUCE_OP, int SRC_T , int DST_T, int ROWS, int COLS, int ONE_D_HEIGHT, int ONE_D_WIDTH,int NPC=1>
void reduce(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
xf::Mat<DST_T, ONE_D_HEIGHT, ONE_D_WIDTH, 1> & _dst_mat,
unsigned char dim)
The Reduce function reduces the matrix to a vector by treating rows/cols as set of 1-D vectors
and performing specified operation on vectors until a single row/col is obtained.
Reduction operation could be one of the following:
• REDUCE_SUM : The output is the sum of all of the matrix’s rows/columns.
• REDUCE_AVG : The output is the mean vector of all of the matrix’s rows/columns.
• REDUCE_MAX : The output is the maximum (column/row-wise) of all of the matrix’s rows/
columns.
• REDUCE_MIN : The output is the minimum (column/row-wise) of all of the matrix’s rows/
columns.
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1。
+++++++++++++++++++++++++++++
Set
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void set(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++
Zero
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void zero(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++
Sum
template< int SRC_T , int ROWS, int COLS, int NPC=1>
void sum(
xf::Mat<SRC_T, ROWS, COLS, NPC> & src1,
double sum[XF_CHANNELS(SRC_T,NPC)])
支持的SRC_T包括XF_8UC1。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++
And
template<int SRC_T, int ROWS, int COLS, int NPC=1>
void bitwise_and (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++
Dilate
template<int BORDER_TYPE, int TYPE, int ROWS, int COLS,int K_SHAPE,int K_ROWS,int K_COLS, int ITERATIONS, int NPC=1>
void dilate (
xf::Mat<TYPE, ROWS, COLS, NPC> & _src,
xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,
unsigned char _kernel[K_ROWS*K_COLS])
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++
erode
template<int BORDER_TYPE, int TYPE, int ROWS, int COLS,int K_SHAPE,int K_ROWS,int K_COLS, int ITERATIONS, int NPC=1>
void erode (
xf::Mat<TYPE, ROWS, COLS, NPC> & _src,
xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,
unsigned char _kernel[K_ROWS*K_COLS])
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++
Duplicate
template<int SRC_T, int ROWS, int COLS,int NPC=1>
void duplicateMat(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst1,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst2)
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++
EqualizeHist
template<int SRC_T, int ROWS, int COLS, int NPC = 1>
void equalizeHist(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_8UC1 。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++
FAST
template<int NMS,int SRC_T,int ROWS, int COLS,int NPC=1>
void fast(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<SRC_T, ROWS,
COLS, NPC> & _dst_mat,unsigned char _threshold)
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_8UC1 。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++
Filter2D
template<int BORDER_TYPE,int FILTER_WIDTH,int FILTER_HEIGHT, int SRC_T,int DST_T, int ROWS, int COLS,int NPC=1>
void filter2D(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat,
short int filter[FILTER_HEIGHT*FILTER_WIDTH],
unsigned char _shift)
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。and(XF_16SC1,XF_16SC3)
+++++++++++++++++++++++++++
GaussianBlur
template<int FILTER_SIZE, int BORDER_TYPE, int SRC_T, int ROWS, int COLS, int NPC = 1>
void GaussianBlur(
xf::Mat<SRC_T, ROWS, COLS, NPC> & src,
xf::Mat<SRC_T, ROWS, COLS, NPC> & dst,
float sigma)
Filter size of 3 (XF_FILTER_3X3), 5 (XF_FILTER_5X5) and 7 (XF_FILTER_7X7) are supported.
Border type supported is XF_BORDER_CONSTANT
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++
CornerHarris
template<int FILTERSIZE,int BLOCKWIDTH, int NMSRADIUS,int SRC_T,int ROWS, int COLS,int NPC=1,bool USE_URAM=false>
void cornerHarris(
xf::Mat<SRC_T, ROWS, COLS, NPC> & src,
xf::Mat<SRC_T, ROWS, COLS, NPC> & dst,
uint16_t threshold,
uint16_t k)
Size of the Sobel filter. 3, 5, and 7 supported。
Size of the box filter. 3, 5, and 7 supported.
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_8UC1 。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++
HoughLines2
template<unsigned int RHO,unsigned int THETA,int MAXLINES,int DIAG,int MINTHETA,int MAXTHETA,int SRC_T, int ROWS, int COLS,int NPC>
void HoughLines(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
float outputrho[MAXLINES],
float outputtheta[MAXLINES],
short threshold,short linesmax)
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_8UC1 。
支持的NPPC包括XF_NPPC1 。
++++++++++++++++++++++++++
Integral
template<int SRC_TYPE,int DST_TYPE, int ROWS, int COLS, int NPC=1>
void integral(
xf::Mat<SRC_TYPE, ROWS, COLS, NPC> & _src_mat,
xf::Mat<DST_TYPE, ROWS, COLS, NPC> & _dst_mat)
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_32UC1 。
支持的NPPC包括XF_NPPC1 。
++++++++++++++++++++++++++
Merge
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void merge(
xf::Mat<SRC_T, ROWS, COLS, NPC> &_src1,
xf::Mat<SRC_T, ROWS, COLS, NPC> &_src2,
xf::Mat<SRC_T, ROWS, COLS, NPC> &_src3,
xf::Mat<SRC_T, ROWS, COLS, NPC> &_src4,
xf::Mat<DST_T, ROWS, COLS, NPC> &_dst)
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_8UC4 。
支持的NPPC包括XF_NPPC1 。
++++++++++++++++++++++++++++
MinMaxLoc
template<int SRC_T,int ROWS,int COLS,int NPC>
void minMaxLoc(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,
int32_t *max_value,
int32_t *min_value,
uint16_t * _minlocx,
uint16_t * _minlocy,
uint16_t * _maxlocx,
uint16_t * _maxlocy )
支持的SRC_T包括XF_8UC1 and XF_16UC1。
支持的DST_T包括XF_8UC4 。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++
Mul
template<int POLICY_TYPE, int SRC_T,int ROWS, int COLS, int NPC=1>
void multiply (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2,
xf::Mat<int SRC_T int ROWS, int COLS, int NPC> dst,
float scale)
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
+++++++++++++++++++++++++++
Not
template<int SRC_T, int ROWS, int COLS, int NPC=1>
void bitwise_not (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++
Range
template<int SRC_T, int ROWS, int COLS,int NPC=1>
void inRange(
xf::Mat<SRC_T, ROWS, COLS, NPC> & src,
unsigned char lower_thresh,
unsigned char upper_thresh,
xf::Mat<SRC_T, ROWS, COLS, NPC> & dst)
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8。
++++++++++++++++++++++++++++
Resize
template<int INTERPOLATION_TYPE, int TYPE, int SRC_ROWS, int SRC_COLS, int DST_ROWS, int DST_COLS, int NPC,int MAX_DOWN_SCALE>
void resize (
xf::Mat<TYPE, SRC_ROWS, SRC_COLS, NPC> & _src,
xf::Mat<TYPE, DST_ROWS, DST_COLS, NPC> & _dst)
The following enumeration types can be used to
specify the interpolation type:
• XF_INTERPOLATION_NN - For Nearest-neighbor interpolation
• XF_INTERPOLATION_BILINEAR - For Bilinear interpolation
• XF_INTERPOLATION_AREA - For Area interpolation
Note: Scaling factors greater than or equal to 0.25 are supported in down-scaling and values less than or equal to 8 are supported for up-scaling
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 。
+++++++++++++++++++++++++
sobel
template<int BORDER_TYPE,int FILTER_TYPE, int SRC_T,int DST_T, int ROWS, int COLS,int NPC=1,bool USE_URAM=false>
void Sobel(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_matx,
xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_maty)
Filter size. Filter size of 3 (XF_FILTER_3X3), 5 (XF_FILTER_5X5) and 7 (XF_FILTER_7X7) are
supported.
Border Type supported is XF_BORDER_CONSTANT
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 and XF_8UC3。
支持的NPPC包括XF_NPPC1 and XF_NPPC8 。
++++++++++++++++++++++++++++
split
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void extractChannel(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat,
uint16_t _channel)
支持的SRC_T包括XF_8UC4。
支持的DST_T包括XF_8UC1。
支持的NPPC包括XF_NPPC1。
+++++++++++++++++++++++++++++
Threshold
template<int THRESHOLD_TYPE, int SRC_T, int ROWS, int COLS,int NPC=1>
void Threshold(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,
xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst_mat,
short int thresh,
short int maxval )
支持的SRC_T包括XF_8UC1 。
支持的DST_T包括XF_8UC1 。
支持的NPPC包括XF_NPPC1 and XF_NPPC8 。
+++++++++++++++++++++++++++++
meanStdDev
template<int SRC_T,int ROWS, int COLS,int NPC=1>
void meanStdDev(
xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,
unsigned short* _mean,
unsigned short* _stddev)
支持的SRC_T包括XF_8UC1 and XF_8UC3。
支持的DST_T包括XF_8UC1 。
支持的NPPC包括XF_NPPC1 and XF_NPPC8 。