OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
FastCV 硬件加速功能的模块封装

详细描述

类  cv::fastcv::FCVMSER
 用于灰度图像的 MSER 斑点检测器。更多...
 
类  cv::fastcv::QcAllocator
 高通的自定义分配器。该分配器使用高通的内存管理函数。更多...
 
类  cv::fastcv::QcResourceManager
 FastCV 分配的资源管理器。此类管理活动分配。更多...
 

函数

void cv::fastcv::arithmetic_op (InputArray src1, InputArray src2, OutputArray dst, int op)
 两个矩阵的算术加减操作。它针对高通处理器进行了优化。
 
void cv::fastcv::bilateralFilter (InputArray _src, OutputArray _dst, int d, float sigmaColor, float sigmaSpace, int borderType=BORDER_DEFAULT)
 对图像应用双边滤波,考虑每个像素邻域的 d 像素直径。此滤镜不支持原地操作。
 
void cv::fastcv::bilateralRecursive (cv::InputArray src, cv::OutputArray dst, float sigmaColor=0.03f, float sigmaSpace=0.1f)
 递归双边滤波。
 
void cv::fastcv::buildPyramid (InputArray src, OutputArrayOfArrays pyr, int nLevels, bool scaleBy2=true, int borderType=cv::BORDER_REFLECT, uint8_t borderValue=0)
 根据预设级别,从单个原始图像连续向下缩放,构建 float32 图像金字塔。此 API 同时支持 ORB 缩放和减半缩放。
 
void cv::fastcv::calcHist (InputArray _src, OutputArray _hist)
 计算输入图像的直方图。此函数以优化方式实现了 8u 单通道图像的 256 bin 直方图计算的特定用例。
 
void cv::fastcv::dsp::Canny (InputArray _src, OutputArray _dst, int lowThreshold, int highThreshold, int apertureSize=3, bool L2gradient=false)
 应用于 8 位灰度图像的 Canny 边缘检测器。
 
void cv::fastcv::clusterEuclidean (InputArray points, InputArray clusterCenters, OutputArray newClusterCenters, OutputArray clusterSizes, OutputArray clusterBindings, OutputArray clusterSumDists, int numPointsUsed=-1)
 将 D 维空间中的 N 个输入点聚类为 K 个簇。接受 8 位无符号整数点。在高通处理器上提供比 cv::kmeans 更快的执行时间。
 
void cv::fastcv::DCT (InputArray src, OutputArray dst)
 此函数对输入图像执行 8x8 正向离散余弦变换,接受 8 位无符号整数类型的输入,并生成 16 位有符号整数类型的输出,在高通处理器上提供比 cv::dct 更快的执行时间。
 
void cv::fastcv::FAST10 (InputArray src, InputArray mask, OutputArray coords, OutputArray scores, int barrier, int border, bool nmsEnabled)
 根据掩码从图像中提取 FAST10 角点和分数。该掩码指定了检测器要忽略的像素,该检测器专为高通处理器上的角点检测而设计,提供增强的速度。
 
void cv::fastcv::dsp::fcvdspdeinit ()
 去初始化 FastCV DSP 环境。
 
int cv::fastcv::dsp::fcvdspinit ()
 初始化 FastCV DSP 环境。
 
void cv::fastcv::dsp::FFT (InputArray src, OutputArray dst)
 计算实值矩阵的一维或二维快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。
 
void cv::fastcv::FFT (InputArray src, OutputArray dst)
 计算实值矩阵的一维或二维快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。接受 8 位无符号整数数组,而 cv::dft 接受浮点或复数数组。
 
void cv::fastcv::fillConvexPoly (InputOutputArray img, InputArray pts, Scalar color)
 绘制凸多边形。此函数用指定颜色填充凸多边形的内部。要求宽度和步幅为 8 的倍数。
 
void cv::fastcv::dsp::filter2D (InputArray _src, OutputArray _dst, int ddepth, InputArray _kernel)
 使用不可分离的核对图像进行滤波。
 
void cv::fastcv::filter2D (InputArray _src, OutputArray _dst, int ddepth, InputArray _kernel)
 与不可分离的核进行 NxN 相关性计算。忽略达到半核宽度的边界。
 
void cv::fastcv::gaussianBlur (InputArray _src, OutputArray _dst, int kernel_size=3, bool blur_border=true)
 高斯模糊,sigma = 0,核大小为方形。边界处理方式与 cv::GaussianBlur 不同,导致输出略有差异。
 
void cv::fastcv::gemm (InputArray src1, InputArray src2, OutputArray dst, float alpha=1.0, InputArray src3=noArray(), float beta=0.0)
 两个浮点类型矩阵的矩阵乘法 R = a*A*B + b*C,其中 A,B,C,R 是矩阵,a,b 是常数。它针对高通处理器进行了优化。
 
cv::MatAllocatorcv::fastcv::getQcAllocator ()
 获取默认的高通分配器。此函数返回指向默认高通分配器的指针,该分配器针对 DSP 使用进行了优化。
 
void cv::fastcv::houghLines (InputArray src, OutputArray lines, double threshold=0.25)
 执行霍夫线检测。
 
void cv::fastcv::IDCT (InputArray src, OutputArray dst)
 此函数对输入图像执行 8x8 逆离散余弦变换,在高通处理器上的逆变换情况下,提供比 cv::dct 更快的执行时间。
 
void cv::fastcv::dsp::IFFT (InputArray src, OutputArray dst)
 计算复数值矩阵的一维或二维逆快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。
 
void cv::fastcv::IFFT (InputArray src, OutputArray dst)
 计算复数值矩阵的一维或二维逆快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。
 
void cv::fastcv::integrateYUV (InputArray Y, InputArray CbCr, OutputArray IY, OutputArray ICb, OutputArray ICr)
 YCbCr420 图像的积分。注意:输入高度应为 2 的倍数。输入宽度和步幅应为 16 的倍数。输出步幅应为 8 的倍数。它针对高通处理器进行了优化。
 
void cv::fastcv::matmuls8s32 (InputArray src1, InputArray src2, OutputArray dst)
 两个 int8_t 类型矩阵的矩阵乘法使用有符号整数输入/输出,而 cv::gemm 使用浮点输入/输出,matmuls8s32 在高通处理器上提供增强的速度。
 
int cv::fastcv::meanShift (InputArray src, Rect &rect, TermCriteria termCrit)
 应用均值漂移过程并获得最终收敛位置。此函数将均值漂移过程应用于原始图像(通常是概率图像)并获得最终收敛位置。收敛位置搜索将在达到所需精度或最大迭代次数时停止。Moments 算法中使用的矩以浮点计算。此函数与 cv::meanShift 不完全位精确,但在 Snapdragon 处理器上提供改进的延迟。
 
void cv::fastcv::merge (InputArrayOfArrays mv, OutputArray dst)
 从多个单通道 CV_8U mat 创建一个多通道 mat。针对高通处理器进行了优化。
 
cv::Moments cv::fastcv::moments (InputArray _src, bool binary)
 计算图像像素强度高达三阶的所有矩。结果在 cv::Moments 结构中返回。此函数 cv::fastcv::moments() 使用浮点计算矩,而 cv::moments() 使用双精度计算矩。
 
void cv::fastcv::normalizeLocalBox (InputArray _src, OutputArray _dst, Size pSize, bool useStdDev)
 计算图像的局部减法和对比度归一化。图像的每个像素都通过以该像素为中心的块的平均值和标准差进行归一化。它针对高通处理器进行了优化。
 
void cv::fastcv::remap (InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderValue=0)
 对灰度 CV_8UC1 图像应用通用几何变换。
 
void cv::fastcv::remapRGBA (InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation)
 使用双线性或最近邻插值对 4 通道 CV_8UC4 图像应用通用几何变换。
 
void cv::fastcv::resizeDown (cv::InputArray _src, cv::OutputArray _dst, Size dsize, double inv_scale_x, double inv_scale_y)
 使用指定的缩放因子或尺寸对图像进行降采样。此函数支持单通道 (CV_8UC1) 和双通道 (CV_8UC2) 图像。
 
void cv::fastcv::sepFilter2D (InputArray _src, OutputArray _dst, int ddepth, InputArray _kernelX, InputArray _kernelY)
 与可分离核的 NxN 相关性。如果 srcImg 和 dstImg 指向同一地址且 srcStride 等于 dstStride,则将进行原地操作。忽略达到半核宽度的边界。溢出处理方式与 OpenCV 不同,此函数将对中间结果和最终结果进行右移操作。
 
void cv::fastcv::sobel (InputArray _src, OutputArray _dx, OutputArray _dy, int kernel_size, int borderType, int borderValue)
 从源亮度数据创建二维梯度图像,不进行归一化。同时计算 X 方向的一阶导数或 Y 方向的一阶导数,或两者。
 
void cv::fastcv::sobel3x3u8 (InputArray _src, OutputArray _dst, OutputArray _dsty=noArray(), int ddepth=CV_8U, bool normalization=false)
 从源亮度数据创建二维梯度图像,不进行归一化。此函数在 3x3 邻域上计算中心差分,然后将结果与 Sobel 核进行卷积,忽略达到半核宽度的边界。
 
void cv::fastcv::sobelPyramid (InputArrayOfArrays pyr, OutputArrayOfArrays dx, OutputArrayOfArrays dy, int outType=CV_8S)
 从图像金字塔创建梯度金字塔。注意:在梯度计算期间忽略边界。
 
void cv::fastcv::split (InputArray src, OutputArrayOfArrays mv)
 将 CV_8U 多通道 mat 分割为多个 CV_8UC1 mat。针对高通处理器进行了优化。
 
void cv::fastcv::dsp::sumOfAbsoluteDiffs (cv::InputArray _patch, cv::InputArray _src, cv::OutputArray _dst)
 图像与 8x8 模板的绝对差之和。
 
void cv::fastcv::dsp::thresholdOtsu (InputArray _src, OutputArray _dst, bool type)
 使用 Otsu 方法对灰度图像进行二值化。如果像素值大于阈值,则将像素设置为最大值(255);否则,将像素设置为最小值(0)。搜索阈值以最小化类内方差(类内的方差)。
 
void cv::fastcv::thresholdRange (InputArray src, OutputArray dst, int lowThresh, int highThresh, int trueValue, int falseValue)
 根据一对阈值对灰度图像进行二值化。二值化图像将是用户选择的两个值,此函数在 Snapdragon 处理器上提供改进的延迟。
 
void cv::fastcv::trackOpticalFlowLK (InputArray src, InputArray dst, InputArrayOfArrays srcPyr, InputArrayOfArrays dstPyr, InputArray ptsIn, OutputArray ptsOut, InputArray ptsEst, OutputArray statusVec, cv::Size winSize=cv::Size(7, 7), cv::TermCriteria termCriteria=cv::TermCriteria(cv::TermCriteria::MAX_ITER|cv::TermCriteria::EPS, 7, 0.03f *0.03f))
 使用 Lucas-Kanade 算法计算稀疏光流,接受 8 位无符号整数图像。在高通处理器上提供更快的执行时间。
 
void cv::fastcv::trackOpticalFlowLK (InputArray src, InputArray dst, InputArrayOfArrays srcPyr, InputArrayOfArrays dstPyr, InputArrayOfArrays srcDxPyr, InputArrayOfArrays srcDyPyr, InputArray ptsIn, OutputArray ptsOut, OutputArray statusVec, cv::Size winSize=cv::Size(7, 7), int maxIterations=7)
 LK 跟踪函数 v1 的重载。
 
void cv::fastcv::warpAffine (InputArray _src, OutputArray _dst, InputArray _M, Size dsize, int interpolation=INTER_LINEAR, int borderValue=0)
 使用提供的变换矩阵对输入图像执行仿射变换。
 
void cv::fastcv::warpPerspective (InputArray _src, OutputArray _dst, InputArray _M0, Size dsize, int interpolation, int borderType, const Scalar &borderValue)
 使用透视变换对图像进行变换,与 cv::warpPerspective 相同但不完全位精确。
 
void cv::fastcv::warpPerspective2Plane (InputArray _src1, InputArray _src2, OutputArray _dst1, OutputArray _dst2, InputArray _M0, Size dsize)
 使用相同的变换对两幅图像进行透视扭曲。在适用情况下使用双线性插值。例如,同时扭曲灰度图像和 alpha 图像,或扭曲两个颜色通道。
 

函数文档

◆ arithmetic_op()

void cv::fastcv::arithmetic_op ( InputArray src1,
InputArray src2,
OutputArray dst,
int op )

#include <opencv2/fastcv/arithm.hpp>

两个矩阵的算术加减操作。它针对高通处理器进行了优化。

参数
src1第一个源矩阵,可以是 CV_8U、CV_16S、CV_32F 类型。注意:不支持 CV_32F 用于减法操作。
src2第二个源矩阵,与 src1 具有相同的类型和大小。
dst结果矩阵,类型与源矩阵相同。
op操作类型 - 0 表示加法,1 表示减法。

◆ bilateralFilter()

void cv::fastcv::bilateralFilter ( InputArray _src,
OutputArray _dst,
int d,
float sigmaColor,
float sigmaSpace,
int borderType = BORDER_DEFAULT )

#include <opencv2/fastcv/bilateralFilter.hpp>

对图像应用双边滤波,考虑每个像素邻域的 d 像素直径。此滤镜不支持原地操作。

参数
_srcCV_8UC1 类型的输入图像
_dst目标图像,类型与 _src 相同。
d核大小(可以是 5、7 或 9)
sigmaColor颜色空间中的滤波器 sigma。典型值为 50.0f。增加此值意味着增加颜色差异更大的相邻像素对平滑结果的影响。
sigmaSpace坐标空间中的滤波器 sigma。典型值为 1.0f。增加此值意味着增加核大小距离内更远的相邻像素对平滑结果的影响。
borderType用于推断图像外部像素的边界模式

◆ bilateralRecursive()

void cv::fastcv::bilateralRecursive ( cv::InputArray src,
cv::OutputArray dst,
float sigmaColor = 0.03f,
float sigmaSpace = 0.1f )

#include <opencv2/fastcv/smooth.hpp>

递归双边滤波。

与传统的双边滤波不同,这里的平滑实际上是在梯度域中进行的。该算法声称在图像质量和计算方面都比原始双边滤波更高效。请参阅杨庆雄教授在 ECCV2012 论文《递归双边滤波》中的算法描述。此函数与 cv::bilateralFilter 不完全位精确,但在 Snapdragon 处理器上提供改进的延迟。

参数
src输入图像,应具有一个 CV_8U 通道
dst输出数组,具有一个 CV_8U 通道
sigmaColor颜色空间中的 Sigma,值越大,算法平滑的颜色差异越大。
sigmaSpace坐标空间中的 Sigma,值越大,平滑的距离像素越多。

◆ buildPyramid()

void cv::fastcv::buildPyramid ( InputArray src,
OutputArrayOfArrays pyr,
int nLevels,
bool scaleBy2 = true,
int borderType = cv::BORDER_REFLECT,
uint8_t borderValue = 0 )

#include <opencv2/fastcv/pyramid.hpp>

根据预设级别,从单个原始图像连续向下缩放,构建 float32 图像金字塔。此 API 同时支持 ORB 缩放和减半缩放。

参数
src8U 或 32F 类型的单通道输入图像
pyr输出数组,包含 nLevels 个缩小尺寸的图像副本
nLevels要生成的金字塔层数
scaleBy2将图像缩小 2 倍或按 1/(2)^(1/4) 的因子(近似为 0.8408964,即 ORB 缩小)进行缩放,浮点图像不支持 ORB 缩放。
borderType如何处理边界,选项包括 BORDER_REFLECT(映射到 FASTCV_BORDER_REFLECT)、BORDER_REFLECT_101(映射到 FASTCV_BORDER_REFLECT_V2)和 BORDER_REPLICATE(映射到 FASTCV_BORDER_REPLICATE)。其他边界类型映射到 FASTCV_BORDER_UNDEFINED(边界像素被忽略)。目前,边界仅支持减半缩放,ORB 缩放时忽略。浮点图像也忽略。
borderValue用于填充边界的值,浮点图像时忽略。

◆ calcHist()

void cv::fastcv::calcHist ( InputArray _src,
OutputArray _hist )

#include <opencv2/fastcv/histogram.hpp>

计算输入图像的直方图。此函数以优化方式实现了 8u 单通道图像的 256 bin 直方图计算的特定用例。

参数
_srcCV_8UC1 类型的输入图像
_hist256 bin 的 int 类型输出直方图

◆ Canny()

void cv::fastcv::dsp::Canny ( InputArray _src,
OutputArray _dst,
int lowThreshold,
int highThreshold,
int apertureSize = 3,
bool L2gradient = false )

#include <opencv2/fastcv/edges_dsp.hpp>

应用于 8 位灰度图像的 Canny 边缘检测器。

参数
_srcCV_8UC1 类型的输入图像
_dst包含边缘检测结果的 8 位输出图像
lowThreshold第一个阈值
highThreshold第二个阈值
apertureSize用于计算梯度的 Sobel 核大小。支持的大小为 3、5 和 7。
L2gradientL2 梯度或 L1 梯度

◆ clusterEuclidean()

void cv::fastcv::clusterEuclidean ( InputArray points,
InputArray clusterCenters,
OutputArray newClusterCenters,
OutputArray clusterSizes,
OutputArray clusterBindings,
OutputArray clusterSumDists,
int numPointsUsed = -1 )

#include <opencv2/fastcv/cluster.hpp>

将 D 维空间中的 N 个输入点聚类为 K 个簇。接受 8 位无符号整数点。在高通处理器上提供比 cv::kmeans 更快的执行时间。

参数
points8u 类型的点数组,每行代表一个点。大小为 N 行 D 列,可以是断续的。
clusterCenters32f 类型的初始簇中心数组,每行代表一个中心。大小为 K 行 D 列,可以是断续的。
newClusterCenters结果簇中心数组,类型为 32f,每行代表找到的中心。大小设置为 K 行 D 列。
clusterSizes结果簇成员计数数组,类型为 uint32,大小设置为 1 行 K 列。
clusterBindings结果点索引数组,类型为 uint32,每个索引指示相应的点属于哪个簇。大小设置为 1 行 numPointsUsed 列。
clusterSumDists结果距离和数组,类型为 32f,每个数字是每个簇中心到其所属点之间距离的和。大小设置为 1 行 K 列
numPointsUsed要聚类的点数,从 0 到 numPointsUsed-1(含)。如果为负数,则设置为 N。

◆ DCT()

void cv::fastcv::DCT ( InputArray src,
OutputArray dst )

#include <opencv2/fastcv/ipptransform.hpp>

此函数对输入图像执行 8x8 正向离散余弦变换,接受 8 位无符号整数类型的输入,并生成 16 位有符号整数类型的输出,在高通处理器上提供比 cv::dct 更快的执行时间。

参数
srcCV_8UC1 类型的输入图像
dstCV_16SC1 类型的输出图像

◆ FAST10()

void cv::fastcv::FAST10 ( InputArray src,
InputArray mask,
OutputArray coords,
OutputArray scores,
int barrier,
int border,
bool nmsEnabled )

#include <opencv2/fastcv/fast10.hpp>

根据掩码从图像中提取 FAST10 角点和分数。该掩码指定了检测器要忽略的像素,该检测器专为高通处理器上的角点检测而设计,提供增强的速度。

参数
src8 位灰度图像
mask可选掩码,指示哪些像素应从角点检测中忽略。其大小应为图像宽度和高度的 k 倍,其中 k = 1/2、1/4、1/8、1、2、4 和 8。更多详情请参阅 FastCV 中 fcvCornerFast9InMaskScoreu8 函数的文档。
coords包含检测到的角点的交错 x、y 位置的 CV_32S 输出数组
scores包含检测到的角点分数的可选输出数组。分数是仍能验证检测到的角点的最高阈值。分数越高表示角点特征越强。例如,分数 108 的角点比分数 50 的角点更强。
barrierFAST 阈值。该阈值用于比较中心像素的强度值与围绕该像素圆上的像素之间的差异。
border图像顶部、底部、右侧、左侧要忽略的像素数量。如果小于 4,则默认为 4。
nmsEnabled启用非极大值抑制以修剪弱关键点

◆ fcvdspdeinit()

void cv::fastcv::dsp::fcvdspdeinit ( )

#include <opencv2/fastcv/dsp_init.hpp>

去初始化 FastCV DSP 环境。

此函数释放由“fcvdspinit”函数设置的资源和环境。应在使用案例或程序退出前调用此函数,以确保所有 DSP 资源都得到正确清理且不发生内存泄漏。

注意
此函数必须在使用案例或程序结束时,在所有 DSP 相关操作完成后调用。

◆ fcvdspinit()

int cv::fastcv::dsp::fcvdspinit ( )

#include <opencv2/fastcv/dsp_init.hpp>

初始化 FastCV DSP 环境。

此函数为 DSP 操作设置必要的环境和资源。它必须在使用案例或程序的最开始调用一次,以确保在执行任何 DSP 相关操作之前,DSP 已正确初始化。

注意
此函数必须在使用案例或程序开始时,在任何 DSP 相关操作之前调用。
返回
int 成功返回 0,失败返回非零值。

◆ FFT() [1/2]

void cv::fastcv::dsp::FFT ( InputArray src,
OutputArray dst )

#include <opencv2/fastcv/fft_dsp.hpp>

计算实值矩阵的一维或二维快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。

参数
srcCV_8UC1 类型的输入数组。对于 2D 情况,矩阵的维度必须是 2 的幂;对于 1D 情况,高度必须为 1,而宽度必须是 2 的幂。
dst计算得到的 CV_32FC2 类型的 FFT 矩阵。FFT 的实部(Re)和虚部(Im)系数存储在不同的通道中。因此 dst 的维度为 (srcWidth, srcHeight)。

◆ FFT() [2/2]

void cv::fastcv::FFT ( InputArray src,
OutputArray dst )

#include <opencv2/fastcv/fft.hpp>

计算实值矩阵的一维或二维快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。接受 8 位无符号整数数组,而 cv::dft 接受浮点或复数数组。

参数
srcCV_8UC1 类型的输入数组。对于 2D 情况,矩阵的维度必须是 2 的幂;对于 1D 情况,高度必须为 1,而宽度必须是 2 的幂。
dst计算得到的 CV_32FC2 类型的 FFT 矩阵。FFT 的实部(Re)和虚部(Im)系数存储在不同的通道中。因此 dst 的维度为 (srcWidth, srcHeight)。

◆ fillConvexPoly()

void cv::fastcv::fillConvexPoly ( InputOutputArray img,
InputArray pts,
Scalar color )

#include <opencv2/fastcv/draw.hpp>

绘制凸多边形。此函数用指定颜色填充凸多边形的内部。要求宽度和步幅为 8 的倍数。

参数
img要绘制的图像。应具有最多 4 个 8 位通道。
pts多边形点坐标数组。应包含 N 个双通道或 2*N 个单通道 32 位整数元素。
color绘制的多边形颜色,存储为 B、G、R 和 A(如果支持)。

◆ filter2D() [1/2]

void cv::fastcv::dsp::filter2D ( InputArray _src,
OutputArray _dst,
int ddepth,
InputArray _kernel )

#include <opencv2/fastcv/blur_dsp.hpp>

使用不可分离的核对图像进行滤波。

参数
_srcCV_8UC1 类型的输入图像,源尺寸应大于 176*144。
_dstCV_8UC1、CV_16SC1 或 CV_32FC1 类型的输出图像。
ddepth输出图像的深度。
_kernel滤波器核数据。

◆ filter2D() [2/2]

void cv::fastcv::filter2D ( InputArray _src,
OutputArray _dst,
int ddepth,
InputArray _kernel )

#include <opencv2/fastcv/blur.hpp>

与不可分离的核进行 NxN 相关性计算。忽略达到半核宽度的边界。

参数
_srcCV_8UC1 类型的输入图像
_dstCV_8UC1、CV_16SC1 或 CV_32FC1 类型的输出图像。
ddepth输出图像的深度。
_kernel滤波器核数据。
另请参见
Filter2D

◆ gaussianBlur()

void cv::fastcv::gaussianBlur ( InputArray _src,
OutputArray _dst,
int kernel_size = 3,
bool blur_border = true )

#include <opencv2/fastcv/blur.hpp>

高斯模糊,sigma = 0,核大小为方形。边界处理方式与 cv::GaussianBlur 不同,导致输出略有差异。

参数
_srcCV_8UC1 类型的输入图像
_dstCV_8UC1 类型的输出图像。
kernel_size滤波器核大小。可选值为 3、5、11。
blur_border如果设置为 true,则通过 0 填充相邻值来模糊边界(常数边界的一种变体)。如果设置为 false,则忽略达到半核宽度的边界(例如 3x3 情况下的 1 像素)。
另请参见
GaussianBlur

◆ gemm()

void cv::fastcv::gemm ( InputArray src1,
InputArray src2,
OutputArray dst,
float alpha = 1.0,
InputArray src3 = noArray(),
float beta = 0.0 )

#include <opencv2/fastcv/arithm.hpp>

两个浮点类型矩阵的矩阵乘法 R = a*A*B + b*C,其中 A,B,C,R 是矩阵,a,b 是常数。它针对高通处理器进行了优化。

参数
src1CV_32F 类型的第一源矩阵。
src2CV_32F 类型的第二源矩阵,行数与 src1 列数相同。
dstCV_32F 类型的结果矩阵。
alphasrc1 和 src2 的乘法因子。
src3可选的 CV_32F 类型的第三个矩阵,将添加到矩阵乘积中。
betasrc3 的乘法因子。

◆ getQcAllocator()

cv::MatAllocator * cv::fastcv::getQcAllocator ( )

#include <opencv2/fastcv/allocator.hpp>

获取默认的高通分配器。此函数返回指向默认高通分配器的指针,该分配器针对 DSP 使用进行了优化。

返回
指向默认 FastCV 分配器的指针。

◆ houghLines()

void cv::fastcv::houghLines ( InputArray src,
OutputArray 输出向量,包含与另一图像中点对应的对极线。每条线\(ax + by + c=0\)由3个数字\((a, b, c)\)编码。,
double threshold = 0.25 )

#include <opencv2/fastcv/hough.hpp>

执行霍夫线检测。

参数
src包含二进制轮廓的 8 位图像。宽度和步长应能被 8 整除。
输出向量,包含与另一图像中点对应的对极线。每条线\(ax + by + c=0\)由3个数字\((a, b, c)\)编码。输出数组,包含检测到的线,形式为 (x1, y1, x2, y2),所有数字均为 32 位浮点数。
RANSAC参数。它是点到像素中对极线的最大距离,超过此距离的点将被视为异常值,不用于计算最终的基本矩阵。它可以设置为1-3左右,具体取决于点定位的精度、图像分辨率和图像噪声。控制检测到线的最小长度。值必须介于 0.0 和 1.0 之间。接近 1.0 的值会减少检测到的线数量。接近 0.0 的值会检测更多线,但可能存在噪声。推荐值为 0.25。

◆ IDCT()

void cv::fastcv::IDCT ( InputArray src,
OutputArray dst )

#include <opencv2/fastcv/ipptransform.hpp>

此函数对输入图像执行 8x8 逆离散余弦变换,在高通处理器上的逆变换情况下,提供比 cv::dct 更快的执行时间。

参数
srcCV_16SC1 类型的输入图像。
dstCV_8UC1 类型的输出图像。

◆ IFFT() [1/2]

void cv::fastcv::dsp::IFFT ( InputArray src,
OutputArray dst )

#include <opencv2/fastcv/fft_dsp.hpp>

计算复数值矩阵的一维或二维逆快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。

参数
srcCV_32FC2 类型的输入数组,包含存储在独立通道中的 FFT 实部和虚部系数。对于 2D 情况,矩阵的维度必须是 2 的幂;对于 1D 情况,高度必须为 1,而宽度必须是 2 的幂。
dst计算得到的 CV_8U 类型的 IFFT 矩阵。矩阵是实数值的,没有虚部。因此 dst 的维度为 (srcWidth , srcHeight)。

◆ IFFT() [2/2]

void cv::fastcv::IFFT ( InputArray src,
OutputArray dst )

#include <opencv2/fastcv/fft.hpp>

计算复数值矩阵的一维或二维逆快速傅里叶变换。对于二维情况,输入和输出矩阵的宽度和高度必须是 2 的幂。对于一维情况,矩阵的高度必须为 1,而宽度必须是 2 的幂。

参数
srcCV_32FC2 类型的输入数组,包含存储在独立通道中的 FFT 实部和虚部系数。对于 2D 情况,矩阵的维度必须是 2 的幂;对于 1D 情况,高度必须为 1,而宽度必须是 2 的幂。
dst计算得到的 CV_8U 类型的 IFFT 矩阵。矩阵是实数值的,没有虚部。因此 dst 的维度为 (srcWidth , srcHeight)。

◆ integrateYUV()

void cv::fastcv::integrateYUV ( InputArray Y,
InputArray CbCr,
OutputArray IY,
OutputArray ICb,
OutputArray ICr )

#include <opencv2/fastcv/arithm.hpp>

YCbCr420 图像的积分。注意:输入高度应为 2 的倍数。输入宽度和步幅应为 16 的倍数。输出步幅应为 8 的倍数。它针对高通处理器进行了优化。

参数
Y8UC1 YCbCr420 图像的输入 Y 分量。
CbCr8UC1 YCbCr420 图像的输入 CbCr 分量(交错)。
IYCV_32S 单通道的输出 Y 积分图像,大小为 (Y height + 1)*(Y width + 1)。
ICbCV_32S 单通道的输出 Cb 积分图像,大小为 (Y height/2 + 1)*(Y width/2 + 1)。
ICrCV_32S 单通道的输出 Cr 积分图像,大小为 (Y height/2 + 1)*(Y width/2 + 1)。

◆ matmuls8s32()

void cv::fastcv::matmuls8s32 ( InputArray src1,
InputArray src2,
OutputArray dst )

#include <opencv2/fastcv/arithm.hpp>

两个 int8_t 类型矩阵的矩阵乘法使用有符号整数输入/输出,而 cv::gemm 使用浮点输入/输出,matmuls8s32 在高通处理器上提供增强的速度。

参数
src1CV_8S 类型的第一源矩阵。
src2CV_8S 类型的第二源矩阵。
dstCV_32S 类型的输出矩阵。

◆ meanShift()

int cv::fastcv::meanShift ( InputArray src,
Rect & rect,
TermCriteria termCrit )

#include <opencv2/fastcv/shift.hpp>

应用均值漂移过程并获得最终收敛位置。此函数将均值漂移过程应用于原始图像(通常是概率图像)并获得最终收敛位置。收敛位置搜索将在达到所需精度或最大迭代次数时停止。Moments 算法中使用的矩以浮点计算。此函数与 cv::meanShift 不完全位精确,但在 Snapdragon 处理器上提供改进的延迟。

参数
src通常基于对象直方图计算的概率图像,为 8 位、32 位整型或 32 位浮点型灰度图像。
rect初始搜索窗口位置,同时返回最终收敛的窗口位置。
termCrit用于结束均值漂移的准则,包含两个终止条件:1) epsilon: 所需精度;2) max_iter: 最大迭代次数。
返回
循环停止时的迭代次数。

◆ merge()

void cv::fastcv::merge ( InputArrayOfArrays mv,
OutputArray dst )

#include <opencv2/fastcv/channel.hpp>

从多个单通道 CV_8U mat 创建一个多通道 mat。针对高通处理器进行了优化。

参数
mv要合并的矩阵输入向量;mv 中的所有矩阵必须是 CV_8UC1 类型且具有相同大小。注意:矩阵数量可以是 2、3 或 4。
dst深度为 CV_8U 且与 mv[0] 大小相同的输出数组;通道数将是矩阵数组中矩阵的总数。

◆ moments()

cv::Moments cv::fastcv::moments ( InputArray _src,
bool binary )

#include <opencv2/fastcv/moments.hpp>

计算图像像素强度高达三阶的所有矩。结果在 cv::Moments 结构中返回。此函数 cv::fastcv::moments() 使用浮点计算矩,而 cv::moments() 使用双精度计算矩。

参数
_srcCV_8UC1, CV_32SC1, CV_32FC1 类型的输入图像。
binary如果为 true,则假定图像为二值图像(0x00 为黑色,0xff 为白色),否则假定图像为灰度图像。

◆ normalizeLocalBox()

void cv::fastcv::normalizeLocalBox ( InputArray _src,
OutputArray _dst,
Size pSize,
bool useStdDev )

#include <opencv2/fastcv/blur.hpp>

计算图像的局部减法和对比度归一化。图像的每个像素都通过以该像素为中心的块的平均值和标准差进行归一化。它针对高通处理器进行了优化。

参数
_src输入图像,应为单通道 CV_8U 或 CV_32F 类型。
_dst输出数组,应为单通道,如果 src 为 CV_8U 类型则为 CV_8S,如果 src 为 CV_32F 类型则为 CV_32F。
pSize用于均值和标准差计算的图像块大小。
useStdDev如果为 1,则均值和标准差都将用于归一化;如果为 0,则仅使用均值。

◆ remap()

void cv::fastcv::remap ( InputArray src,
OutputArray dst,
InputArray map1,
InputArray map2,
int interpolation,
int borderValue = 0 )

#include <opencv2/fastcv/remap.hpp>

对灰度 CV_8UC1 图像应用通用几何变换。

参数
src第一个输入图像数据,CV_8UC1 类型。
dst输出图像数据,CV_8UC1 类型。
map1浮点型 CV_32FC1 矩阵,每个元素作为源图像中映射位置的列坐标。
map2浮点型 CV_32FC1 矩阵,每个元素作为源图像中映射位置的行坐标。
interpolation仅支持 INTER_NEAREST 和 INTER_LINEAR 插值。
borderValue常数像素值。

◆ remapRGBA()

void cv::fastcv::remapRGBA ( InputArray src,
OutputArray dst,
InputArray map1,
InputArray map2,
int interpolation )

#include <opencv2/fastcv/remap.hpp>

使用双线性或最近邻插值对 4 通道 CV_8UC4 图像应用通用几何变换。

参数
src第一个输入图像数据,CV_8UC4 类型。
dst输出图像数据,CV_8UC4 类型。
map1浮点型 CV_32FC1 矩阵,每个元素作为源图像中映射位置的列坐标。
map2浮点型 CV_32FC1 矩阵,每个元素作为源图像中映射位置的行坐标。
interpolation仅支持 INTER_NEAREST 和 INTER_LINEAR 插值。

◆ resizeDown()

void cv::fastcv::resizeDown ( cv::InputArray _src,
cv::OutputArray _dst,
Size dsize,
double inv_scale_x,
double inv_scale_y )

#include <opencv2/fastcv/scale.hpp>

使用指定的缩放因子或尺寸对图像进行降采样。此函数支持单通道 (CV_8UC1) 和双通道 (CV_8UC2) 图像。

参数
_src输入图像数据,CV_8UC1 或 CV_8UC2 类型。
_dst输出图像数据,CV_8UC1 或 CV_8UC2 类型。
dsize期望的输出图像大小。如果为空,则使用 inv_scale_x 和 inv_scale_y 计算。
inv_scale_x宽度的逆缩放因子。如果提供了 dsize,则此参数将被忽略。
inv_scale_y高度的逆缩放因子。如果提供了 dsize,则此参数将被忽略。
注意
如果未指定 dsize,则 inv_scale_x 和 inv_scale_y 必须为严格正值。

◆ sepFilter2D()

void cv::fastcv::sepFilter2D ( InputArray _src,
OutputArray _dst,
int ddepth,
InputArray _kernelX,
InputArray _kernelY )

#include <opencv2/fastcv/blur.hpp>

与可分离核的 NxN 相关性。如果 srcImg 和 dstImg 指向同一地址且 srcStride 等于 dstStride,则将进行原地操作。忽略达到半核宽度的边界。溢出处理方式与 OpenCV 不同,此函数将对中间结果和最终结果进行右移操作。

参数
_srcCV_8UC1 类型的输入图像
_dstCV_8UC1, CV_16SC1 类型的输出图像。
ddepth输出图像的深度。
_kernelXX 方向的滤波器核数据。
_kernelYY 方向的滤波器核数据(对于 CV_16SC1,kernelX 和 kernelY 应相同)。
另请参见
sepFilter2D

◆ sobel()

void cv::fastcv::sobel ( InputArray _src,
OutputArray _dx,
OutputArray _dy,
int kernel_size,
int borderType,
int borderValue )

#include <opencv2/fastcv/edges.hpp>

从源亮度数据创建二维梯度图像,不进行归一化。同时计算 X 方向的一阶导数或 Y 方向的一阶导数,或两者。

参数
_srcCV_8UC1 类型的输入图像
_dx用于存储水平梯度的缓冲区。大小必须为 (dxyStride)*(height) 字节。如果为 NULL,则不计算水平梯度。
_dy用于存储垂直梯度的缓冲区。大小必须为 (dxyStride)*(height) 字节。如果为 NULL,则不计算垂直梯度。
kernel_sizeSobel 核大小,支持 3x3, 5x5, 7x7。
borderType边界类型,支持 BORDER_CONSTANT, BORDER_REPLICATE。
borderValue常数边界的边界值。

◆ sobel3x3u8()

void cv::fastcv::sobel3x3u8 ( InputArray _src,
OutputArray _dst,
OutputArray _dsty = noArray(),
int ddepth = CV_8U,
bool normalization = false )

#include <opencv2/fastcv/edges.hpp>

从源亮度数据创建二维梯度图像,不进行归一化。此函数在 3x3 邻域上计算中心差分,然后将结果与 Sobel 核进行卷积,忽略达到半核宽度的边界。

参数
_srcCV_8UC1 类型的输入图像
_dst如果提供了 _dsty,则为存储水平梯度的缓冲区,否则为 |dx|+|dy| 的 8 位输出图像。缓冲区大小为 (srcwidth)*(srcheight) 字节。
_dsty(可选)用于存储垂直梯度的缓冲区。大小必须为 (srcwidth)*(srcheight)。
ddepth输出图像的深度 CV_8SC1, CV_16SC1, CV_32FC1。
normalization是否对结果进行归一化。

◆ sobelPyramid()

void cv::fastcv::sobelPyramid ( InputArrayOfArrays pyr,
OutputArrayOfArrays dx,
OutputArrayOfArrays dy,
int outType = CV_8S )

#include <opencv2/fastcv/pyramid.hpp>

从图像金字塔创建梯度金字塔。注意:在梯度计算期间忽略边界。

参数
pyr输入金字塔,由 1 通道 8 位图像组成。仅支持连续图像。
dx与 pyr 大小相同的 Sobel 水平梯度金字塔。
dy与 pyr 大小相同的 Sobel 垂直梯度金字塔。
outType输出数据类型,可以是 CV_8S, CV_16S 或 CV_32F。

◆ split()

void cv::fastcv::split ( InputArray src,
OutputArrayOfArrays mv )

#include <opencv2/fastcv/channel.hpp>

将 CV_8U 多通道 mat 分割为多个 CV_8UC1 mat。针对高通处理器进行了优化。

参数
src深度为 CV_8U 的 2、3 或 4 通道矩阵输入。
mv大小为 src.channels() 的 CV_8UC1 矩阵输出向量。

◆ sumOfAbsoluteDiffs()

void cv::fastcv::dsp::sumOfAbsoluteDiffs ( cv::InputArray _patch,
cv::InputArray _src,
cv::OutputArray _dst )

#include <opencv2/fastcv/sad_dsp.hpp>

图像与 8x8 模板的绝对差之和。

参数
_patch第一个输入图像数据,CV_8UC1 类型。
_src输入图像数据,CV_8UC1 类型。
_dst输出图像数据,CV_16UC1 类型。

◆ thresholdOtsu()

void cv::fastcv::dsp::thresholdOtsu ( InputArray _src,
OutputArray _dst,
bool type )

#include <opencv2/fastcv/thresh_dsp.hpp>

使用 Otsu 方法对灰度图像进行二值化。如果像素值大于阈值,则将像素设置为最大值(255);否则,将像素设置为最小值(0)。搜索阈值以最小化类内方差(类内的方差)。

参数
_src输入 8 位灰度图像。缓冲区大小为 srcStride*srcHeight 字节。
_dst输出 8 位二值化图像。缓冲区大小为 dstStride*srcHeight 字节。
type阈值类型,可以是 0 或 1。注意:对于阈值类型=0,如果像素值大于阈值,则设置为 maxValue;否则设置为零。对于阈值类型=1,如果像素值大于阈值,则设置为零;否则设置为 maxValue。

◆ thresholdRange()

void cv::fastcv::thresholdRange ( InputArray src,
OutputArray dst,
int lowThresh,
int highThresh,
int trueValue,
int falseValue )

#include <opencv2/fastcv/thresh.hpp>

根据一对阈值对灰度图像进行二值化。二值化图像将是用户选择的两个值,此函数在 Snapdragon 处理器上提供改进的延迟。

参数
src8 位灰度图像
dst与输入图像大小和类型相同的输出图像,可以与输入图像相同。
lowThresh二值化的下限阈值。
highThresh二值化的上限阈值。
trueValue如果源像素值在阈值对定义的范围内(包含边界),则分配给目标像素的值。
falseValue如果源像素值超出阈值对定义的范围(包含边界),则分配给目标像素的值。

◆ trackOpticalFlowLK() [1/2]

void cv::fastcv::trackOpticalFlowLK ( InputArray src,
InputArray dst,
InputArrayOfArrays srcPyr,
InputArrayOfArrays dstPyr,
InputArray ptsIn,
OutputArray ptsOut,
InputArray ptsEst,
OutputArray statusVec,
cv::Size winSize = cv::Size(7, 7),
cv::TermCriteria termCriteria = cv::TermCriteria(cv::TermCriteria::MAX_ITER|cv::TermCriteria::EPS, 7, 0.03f *0.03f) )

#include <opencv2/fastcv/tracking.hpp>

使用 Lucas-Kanade 算法计算稀疏光流,接受 8 位无符号整数图像。在高通处理器上提供更快的执行时间。

参数
src8U 类型的单通道输入图像,初始运动帧。
dst8U 类型的单通道输入图像,最终运动帧,应与初始帧具有相同的大小和步长。
srcPyr根据初始运动帧构建的金字塔。
dstPyr根据最终运动帧构建的金字塔。
ptsIn初始亚像素坐标数组,应包含 32F 2D 元素。
ptsOut计算出的最终点输出数组,应包含 32F 2D 元素。
ptsEst最终点估计值的输入数组,应包含 32F 2D 元素,可以为空。
statusVec指示每个特征状态的 int32 值输出数组,可以为空。
winSize用于光流搜索的窗口大小。宽度和高度必须是奇数。建议值为 5、7 或 9。
termCriteria包含最大迭代次数、最大 epsilon 和停止条件的终止准则。

◆ trackOpticalFlowLK() [2/2]

void cv::fastcv::trackOpticalFlowLK ( InputArray src,
InputArray dst,
InputArrayOfArrays srcPyr,
InputArrayOfArrays dstPyr,
InputArrayOfArrays srcDxPyr,
InputArrayOfArrays srcDyPyr,
InputArray ptsIn,
OutputArray ptsOut,
OutputArray statusVec,
cv::Size winSize = cv::Size(7, 7),
int maxIterations = 7 )

#include <opencv2/fastcv/tracking.hpp>

LK 跟踪函数 v1 的重载。

参数
src8U 类型的单通道输入图像,初始运动帧。
dst8U 类型的单通道输入图像,最终运动帧,应与初始帧具有相同的大小和步长。
srcPyr根据初始运动帧构建的金字塔。
dstPyr根据最终运动帧构建的金字塔。
srcDxPyrsrcPyr 的 Sobel X 方向导数金字塔。
srcDyPyrsrcPyr 的 Sobel Y 方向导数金字塔。
ptsIn初始亚像素坐标数组,应包含 32F 2D 元素。
ptsOut计算出的最终点输出数组,应包含 32F 2D 元素。
statusVec指示每个特征状态的 int32 值输出数组,可以为空。
winSize用于光流搜索的窗口大小。宽度和高度必须是奇数。建议值为 5、7 或 9。
maxIterations最大尝试迭代次数。

◆ warpAffine()

void cv::fastcv::warpAffine ( InputArray _src,
OutputArray _dst,
InputArray _M,
Size dsize,
int interpolation = INTER_LINEAR,
int borderValue = 0 )

#include <opencv2/fastcv/warp.hpp>

使用提供的变换矩阵对输入图像执行仿射变换。

此函数根据变换矩阵执行两种类型的操作:

  1. 标准仿射变换(2x3 矩阵)
    • 使用仿射矩阵变换整个输入图像。
    • 支持 CV_8UC1 和 CV_8UC3 类型。
  2. 带变换的图像块提取(2x2 矩阵)
    • 从输入图像中提取并变换一个图像块。
    • 仅支持 CV_8UC1 类型。
    • 如果输入是 ROI:图像块从原始图像的 ROI 中心提取。
    • 如果输入是完整图像:图像块从图像中心提取。
参数
_src输入图像。支持的格式:
  • CV_8UC1: 8 位单通道
  • CV_8UC3: 8 位三通道 - 仅适用于 2x3 矩阵
_dst输出图像。将与 src 具有相同类型,并由 dsize 指定大小。
_M2x2/2x3 仿射变换矩阵(逆映射)。
dsize输出大小。
  • 对于 2x3 矩阵:输出图像的大小。
  • 对于 2x2 矩阵:提取图像块的大小。
interpolation插值方法。仅适用于 2x3 变换和 CV_8UC1 输入。选项:
  • INTER_NEAREST: 最近邻插值。
  • INTER_LINEAR: 双线性插值(默认)。
  • INTER_AREA: 基于区域的插值。
  • INTER_CUBIC: 双三次插值。注意:CV_8UC3 输入内部始终使用双三次插值。
borderValue边界像素的常数像素值。仅适用于 2x3 变换和单通道输入。
注意
仿射矩阵遵循逆映射约定,应用于目标坐标以生成相应的源坐标。
该函数使用“FASTCV_BORDER_CONSTANT”进行边界处理,并使用指定的“borderValue”。

◆ warpPerspective()

void cv::fastcv::warpPerspective ( InputArray _src,
OutputArray _dst,
InputArray _M0,
Size dsize,
int interpolation,
int borderType,
const Scalar & borderValue )

#include <opencv2/fastcv/warp.hpp>

使用透视变换对图像进行变换,与 cv::warpPerspective 相同但不完全位精确。

参数
_src输入 8 位图像。
_dst输出 8 位图像。
_M03x3 透视变换矩阵。
dsize输出图像的大小。
interpolation插值方法。仅支持 cv::INTER_NEAREST, cv::INTER_LINEARcv::INTER_AREA
borderType像素外推方法。仅支持 cv::BORDER_CONSTANT, cv::BORDER_REPLICATEcv::BORDER_TRANSPARENT
borderValue常数边界情况下使用的值。

◆ warpPerspective2Plane()

void cv::fastcv::warpPerspective2Plane ( InputArray _src1,
InputArray _src2,
OutputArray _dst1,
OutputArray _dst2,
InputArray _M0,
Size dsize )

#include <opencv2/fastcv/warp.hpp>

使用相同的变换对两幅图像进行透视扭曲。在适用情况下使用双线性插值。例如,同时扭曲灰度图像和 alpha 图像,或扭曲两个颜色通道。

参数
_src1第一个输入 8 位图像。缓冲区大小为 src1Stride*srcHeight 字节。
_src2第二个输入 8 位图像。缓冲区大小为 src2Stride*srcHeight 字节。
_dst1第一个扭曲输出图像(对应 src1)。缓冲区大小为 dst1Stride*dstHeight 字节,类型为 CV_8UC1。
_dst2第二个扭曲输出图像(对应 src2)。缓冲区大小为 dst2Stride*dstHeight 字节,类型为 CV_8UC1。
_M03x3 透视变换矩阵(逆映射)。
dsize输出图像大小。